Fix broken miredo in El Capitan

OSX 10.11 introduced System Integrity Protection feature protecting the /usr/sbin folder, which will break existing miredo functionality to connect teredo tunnels.

Steps to fix it:

  1. Copy/move upgrade-migrated miredo command line tools from /Library/SystemMigration/History/Migration-XXX/QuarantineRoot/usr/sbin/ to /usr/local/sbin
  2. Edit /Library/LaunchDaemons/miredo.plist to use new /usr/local/sbin/miredo instead of /usr/sbin/miredo
  3. Re-enable miredo in prefpane

Since El Capitan also force kernel driver signing, if your tun/tap driver has problem to load, install the latest ones from here.

Setup Test Analytics on GAE with Google Apps Account

Test Analytics is a quite good project from Google for testing analysis practice. It is open sourced at http://code.google.com/p/test-analytics/. However the documentation is quite limited and not straight forward for configuration and setup.

Just spend quite a few hours to make it run on GAE with Google Apps account. Here is the  steps:

  1. Create target GAE application in GAE (https://appengine.google.com) with your Google Apps account, select user authentication to Google Apps and set your apps domain (i.e. xxxx.com)
  2. In your Google Apps Administrator Homepage (https://www.google.com/a/xxxx.com/), add services with GAE application id set to the created one
  3. Download or git clone the test analytics project code
  4. In the pom.xml at project dir, add following lines into the maven-gae-plugin <plugin> element:

    <configuration>
    <serverId>appengine.google.com</serverId>
    <sdkDir>${appengine.sdk.root}</sdkDir>
    <appDir>${basedir}/target/test-analytics-1.0-SNAPSHOT</appDir>
    </configuration>

  5. also change gae.version to latest version in pom.xml

    <gae.version>1.7.1</gae.version>

  6. In ~/.m2/settings.xml add: (make sure <id>value is equal to <serverId> of maven-gae-plugin in pom.xml)

    <settings>
    <servers>
    <server>
    <id>appengine.google.com</id>
    <username>google apps account</username>
    <password>google apps password</password>
    </server>
    </servers>
    </settings>

  7. In the appengine-web.xml under src\main\resources, change:

    value of frontend.url to your GAE application url

    value of frontend.localdomain to your Google Apps Domain xxxx.com

    value of frontend.whitelisting to true

  8. in terminal, go to project folder, run “mvn gae:unpack” to install latest gae java sdk to maven repository
  9. run “mvn gae:deloy”
  10. now maven will download all required plugins, compile project and upload it to GAE
  11. check if it works successfully by login with your Google Apps Account, you can enable accessing accounts in GAE application’s  permission settings

add route and dns for VPN connection in Mac

VPN now becomes a ubiquitous way for climbing over GFW in China. However, once the Mac is connected with VPN and sends traffic thru it , VPN’s dns and route setting will take priority over the default network settings, which sometimes is quite inconvenient for fast accessing local sites and using other dedicated network like ipv6.

There’s a combination of configurations to work around the dns and route table of VPN:

1) when connected to the VPN, in Terminal, use the way described to find which VPN’s dns you want modify

2) in Terminal, sudo vi /etc/ppp/scutil_vpn.txt, add following lines, replace the GUID with your target GUID:

d.init
get State:/Network/Service/E6592FF4-8A4F-4C86-B1A2-F865D658D4FF/DNS
d.add ServerAddresses *
set State:/Network/Service/E6592FF4-8A4F-4C86-B1A2-F865D658D4FF/DNS

4) in Terminal, sudo vi /etc/ppp/ip-up,(make it executable), add following lines, and modify the TARGET_IPADDR and MASK of which network subnet you want to go thru the VPN:

#!/bin/sh
/sbin/route add TARGET_IPADDR/MASK $5
/usr/sbin/scutil < /etc/ppp/scutil_vpn.txt

5) install and use dnsmasq to direct wildcard dns resolving for target server names to the VPN dns server

6) in the VPN settings, uncheck “Send All Traffic” box

7) done.

Now when you are connected with the target VPN, you will only go through the VPN to visit target domain names and ip you’ve set, with all other network like ipv6 unchanged. Of course,  the settings could be reversed to send most traffic thru VPN, leaving a few sites accessing locally.

wildcard dns for ipv6

ipv6目前是比较方便易用的绕墙的方法,但往往hosts文件里塞满了一大堆静态v6地址,而且不支持通配符,很难维护。

推荐使用dnsmasq,在loopback interface上绑定监听一个dns服务,既支持本地通配符的匹配解析,也可连接上游upstream dns服务器,提高dns解析速度,同时也完美支持ipv6的域名解析。

mac可通过macports: sudo port install dnsmasq, sudo port load/unload dnsmasq

Google数字图书馆

这次从中央电视台开始到传统作家、著作权协会都开始痛批Google,控诉网络霸权,感叹漠视知识产权、不告而取等等,当然要说一点没道理吧,还是有一些,但就好像当年新文化运动时旧儒生卫道一样,虽然也有其正确的地方,可更应该看到其后的背景和新时代的洪流,想想怎么样去理解这个变化并且开拓它。

对于读者,Google数字图书馆的好处无庸多谈,终于可以绕过我国极烂的图书馆体系查阅大量实体书籍了。还是说说貌似被盗取了的作者。

其实对于中国的作者,这根本算不上是件事儿。盗版猖獗早不是一天两天了,作家们反传统盗版的能力就极为贫乏,几乎毫无还手之力,除了特别官方的如朱爷爷,其他的什么韩寒、余秋雨哪个能真的对付得了盗版,可这么多年怎么不见中央电视台、作协跑出来大轰一通大干一场呢?这不更是它们的份内之事吗?因为,国内盗版的现实利益格局都已经确定了,包括各个出版商、印刷厂、分销商,贯穿在各个地市各个书店各个街头摊贩,对于这些既定利益,上面的衙门既没能力也不愿意监管和执行下去。而且就算是正版书籍,大部分利润又何尝分给了创作者?还不是截留到倒卖书号的书商出版社、隐瞒印数的印刷厂和垄断的分销渠道里去了?而这时候痛哭流涕的作家们怎么屁都不敢放一个了呢?因为这些人是对他有直接影响力的人,不靠这些大爷,他连书都难出,而且就算撕破脸,想扳也扳不倒。所以,尤其对中国作者而言,Google数字图书馆计划不仅不会带来什么损失,反而会带来前所未有的新读者和新数字权益,而且这里没有人会为难你克扣你,一切都有很明确的收入分成协议;你不想合作,没问题,还有Amazon、B&N、一排的人等着你。额外的,你的合作者还是世界上最大的网络中央电视台,它的后面是以亿计的数字文本读者。那么,为什么要急着说不呢?

但,Google这件事唯一不利的是谁?是传统出版领域的商人。外国的事不好说,不过在中国,这些人就活该被淘汰,他们有高的效率吗?他们诚实吗?他们为广大人民散布知识和真相了吗?他们给辛苦创作的作者们公平的报酬了吗?现在,有了全新玩法的数字时代的挑战者,他们恐惧了,恐怕失去旧有的垄断僵化的机制和利益,所以CCAV和坐协之流跳出来疯咬,因为它们就是他们的代言人,可奇怪了,我国蛋头作家们竟然也想都不想就一起哭诉了。

就让这些旧社会的文人哭诉去把,他们只能生存于旧时代,而与这个全新的时代无关。假如我是一个作者,我会非常高兴的把我的电子书收进数字图书馆服务器的硬盘上,因为会有更多的人可以看到,因为至少,和我打交道的这个网络人承诺过不会作恶。

电信劫持网页广告

我国真是癫狂了,一方面g*f*w疯狂屏蔽,一方面电信疯狂劫持网页添加广告,过一段时间就在http请求结果里放自己的广告页面:

<html><head><title></title><link rel=”stylesheet” type=”text/css” href=”http://202.96.199.51:80/1.css”><script type=”text/javascript”>var g=”http://news.sina.com.cn”;var location;window.onerror=function(){document.URL=g;}</script><script type=”text/javascript” src=”http://202.96.199.51:80/1.js”></script></head><body id=b rightMargin=0 topMargin=0 leftMargin=0 scroll=no onload=”pos()” onresize=”pos()”><iframe src=”http://202.96.199.51:80/a/p?s=1531890936″ style=”display:none”></iframe><table id=t width=100% border=0 align=”center” ><tr><td><iframe id=a src=”http://sh.vnet.cn/portal/iptv/hw.html” width=100% height=”330″ frameborder=0 scrolling=auto></iframe></td></tr><tr><td align=”right”><span id=x onmouseout=”d(this);”  onmouseover=”d2(this)” onclick=”h()” title=”Close”><a href=”#” onclick=”h()”>x</a></span></td></tr></table> <iframe id= c name=cn src=”javascript:parent.w” frameBorder=0 width=100% height=100% scrolling=auto></iframe></body></html>

这种政治经济的组合到达癫狂的时候,也就离崩溃不太远了。

Google Chrome OS

可以说在chrome推出的时候,就很明确是奔着OS去的,不管是资源调度,还是进程管理,或是非阻塞执行,都是原来操作系统负责的角色,chrome甚至还有自己独立的task manager,对于浏览器来说简直太过了;所以google宣布自己的OS,只是一个时间问题。对于chrome os,Cringely在NYT有一篇分析,也很有见地,这里谈一点不同的看法。

你看google在chrome上的投入,简直每两天就release一个版本,这种节奏可不是同为大开源社区的Firefox所能比拟的,也可以看出google对chrome寄予的希望:这是一个真正的颠覆性的搅局者。重点不在于搅局,而在于颠覆。

操作系统的真正核心要素是用户界面和开放性。比方Windows的成功,最重要就是因为有统一易用的用户界面——窗口系统,以及大量来自第三方的应用和驱动支持。而Vista的失败是因为完全不考虑用户体验的前者,Linux在后者也有着无法弥补的缺陷。至于操作系统底层的技术先进性,其实倒在其次,用户是不直接感知这一层面的好坏的。但在Chrome,用户体验和第三方支持却恰恰都是天然的强项:Web的使用对用户而言,已经没有额外学习成本;网络应用的开发和分发又毫无困难,甚至是无缝的安装升级;至于底层则由于能完全和硬件绑定,也可以避开linux大量驱动支持的问题。所以,从使用上来看,Chrome完全有理由得到用户彻底的接纳。

反过来看微软的Bing,虽然也可能是个搜索市场的搅局者,但谈不上颠覆性,因为所有的玩法都是一样的,只是竞争一下第二名的市场份额而已。但是Chrome OS可不一样。想象一下一个笔记本电脑,你每月付150元人民币(250美元/年),签一二年协议,机器免费送你,无线网络随便用,里面的应用和内容比如:Email/画图/办公/聊天/游戏/炒股票/听音乐/看电影等等全部免费使用,全部正版,不用安装,不用设置,如果有了新应用还可以不断加入(当然你也可以从应用商店花几元买一个貌似更好的),所有数据都在远程,如果机器坏了,直接客服电话一打,直接给你换台新的,开机啥都不用做,什么全都还在。到期了只要续约,免费升级机器,说不定已经可以玩3D游戏了。这样的笔记本,你会用么?

八成会,因为手机就是这么玩的,甚至还不如这个玩的好,换了手机,个人数据等等还做不到这么无缝升级。这样一搞,将彻底改变中低端PC市场机制,从买设备变成为买运营服务的模式,对于用户来说,出钱更少,还更省心。运营商,硬件厂商,Google,用户都皆大欢喜,无疑将大大提高中低端笔记本的普及率和使用率,买个笔记本就和买个手机的感觉一样。但可惜,这里没有微软什么事儿,除非MS也彻底免费提供操作系统或办公应用,可他又为什么要这么干?

也许你会反问,那中高端市场呢?没错,那里有Apple。

New Browser War?

很奇怪,最近中国关于浏览器的话题甚嚣尘上,一会儿是对IE6用户升级的讨论,一会儿是对Firefox中国的指责,感觉浏览器大战率先在中国IT评论界爆发了。

其实谈不上新的浏览器战争,因为很明显,无论怎么打,微软都在失掉这个战场。拿我自己举例,windows下,我默认使用的浏览器是Firefox,除了网银,以及msn messenger缺省调用IE,我只会在显示网页有问题有困难的时候,用IE去看看。当然,在Mac下,我用Safari 4 Beta,和Firefox 大约5-5开。所以在整个网络浏览的时间里,估计10%都不到才用IE,60% Firefox,30% Safari。当然我也装了Chrome,不过自从Safari 4推出后,那个超炫的Start Page和快速性能,取代了原先Chrome的地位。

我保留了IE6,甚至没怎么用过IE7,更不用说IE8了,Why?

Why Not? 因为根本没必要升级,既然IE的作用是让网银工作和在最后时刻”正常“显示网页,那么不升级显然是最保险和最省事的。而提高效率的部分,自然有支持插件、满足各种额外功能要求的Firefox来负责,而好看美观快速呢,则交给Safari来搞定。所以我这里分工很明确:当要搜索、发现新的信息与处理信息、更和工作相关的,就用Firefox;而如果看看新闻、视频、RSS阅读,和休闲相关的就用Safari。至于IE,反正不可能卸掉,那就留着备用呗。

但,还不得不提Chrome。我想,如果真有所谓第二次Browser War,真正的导火索不是Firefox,而是Chrome。是Chrome确立了新一代浏览器的发展方向。举个例子,原先我很少用Mac的Safari3,而多用windows下的Chrome来看常去的网站,因为觉得没必要,Safari和Firefox差不多嘛,但Mac下的4 Beta出来后,有两个feature让我立刻转了过去,一个是超炫又可以显示页面更新预览的Top Sites,这个现在Firefox也在学,推出了Newtabs 插件;另一个则是非常的快速和稳定,这和Firefox一比就比出来了,估计启动速度快一倍,而且基本不崩溃。而这两个核心feature恰恰都是来自Chrome。而把浏览器环境,当作有进程调度、资源管理、讲究效率的操作系统一样来看待,也是真正的了不起的出发点。

所以这些新浏览器之战的参与者们,是去真正贴近使用互联网的用户,看看怎么样才能帮助他们更有效的浏览、节省哪怕10秒钟的时间,怎么样才能更好看更美观的显示页面的内容和信息,又怎么样才能帮助用户达到和实现一些特别的浏览功能等等,而所有这些事情,微软都已经不干太久了。

用户已经不是十年的用户了,仅仅去争一些市场份额的浏览器策略,对于发展到现在的互联网,早已经过时。