在Google App Engine上架设反向代理

参考文献:

反向代理的作用大家可以Google下,上面的文章也有介绍。其实上面的文章已经介绍了如何架设,我只是稍微说得更明白一些。

准备工作
  1. 申请Google App Engine帐号(我很早之前就有了,不知道现在还能不能申请),并创建一个应用,例如myapps;
  2. 安装Python 2.5,这是GAE SDK推荐的,我用的是Python 2.6,看起来问题不大,传送门,安装好之后,需要在环境变量中的PATH加入Python的安装位置(如C:\python26);
  3. 安装GAE SDK,传送门
  4. 下载bs2grproxy,传送门
架设代理

解压缩bs2grproxy,有两个地方要修改:

  1. app.yaml中第一行改为application: myapps,其中myapps是你刚才新建的GAE应用的名称;
  2. bs2grpconfig.py中第15行的TARGET_HOST改为你要反向代理的目标地址,这里其实暂不修改也没关系,可以上传好后再改。

弄好之后就可以开始上传,经过尝试,比较保险的上传方法是(环境:Win7 x64,其它环境大同小异吧):

  1. 打开控制台,转到bs2grproxy所在的文件夹,例如解压在C:\yourdir\bs2grproxy,就转到C:\yourdir;
  2. 执行“appcfg.py update_indexes bs2grproxy/”,可能会提示输入GAE的邮箱帐号和密码,按照提示输入。这个命令是在GAE应用上创建索引(所谓的索引,我现在将它理解成GAE上的虚拟文件夹,细节可以不管),这一步理论上可以跳过,但是有很高的几率导致出错,建议还是不要跳过;
  3. 执行“appcfg.py update bs2grproxy/”,上传反向代理应用的本体。
  4. 架设完毕,尝试用myapps.appspot.com访问反向代理的网站。
配置反向代理

主要就是修改反向代理的地址,在应用首页上进入反向代理应用的沙盒,选左侧的Datastore Viewer,可以看到有且只有一条记录,点进去,拉到最下面,可以看到修改target_host的地方。

外:GAE的索引400错误的处理办法

当上传发生了索引的400错误(可以在上传时观察信息提示,如果发生错误会有error字样)时,直接覆盖上传是无法解决的,网上有人说删除index.yaml可以避免这个错误,经过摸索,我自己的解决办法如下(假设是上述的反向代理发生了错误):

  1. 将index.yaml改名,例如_index.yaml;
  2. 执行“appcfg.py vacuum_indexes bs2grproxy/”,由于没有了index.yaml,所有的索引都将被删除;
  3. 将index.yaml的名字改回来,重新用“appcfg.py update_indexes bs2grproxy/”上传索引。

如果不update_indexes,而是直接update应用的话,发生400错误的概率很高,所以先上传好索引会比较好。

了解了GAE的原理之后觉得还是很赞的,如果不是数据库有限制,我真想把actools放上去。

无线路由器升级惊魂

我的无线路由器:TP-LINK WR340G v5
本本的无线网卡:Intel(R) PRO/无线 3945ABG
环境:Win7 x64,网卡用系统自带驱动

晚上闲着,点进路由器管理界面检查运作情况,看到有软件升级一栏,便到官网上找了下,发现一个09-12-30的升级,于是下下来尝试升级路由器。升级完成之后win7提示网络断开了,找不到自家的AP了,心想大概是路由器升级之后重启不完整,谁知等了许久都没有反应;手动重启路由,依然找不到,慌了,用有线的方式连接了路由器,能够正常地进入管理界面,可是无线方法死活找不到AP,但管理界面中显示路由器的无线功能正常运作中。重启了若干次,还是不行。

因为更改了无线网络的密钥,老爸的台机也连不上了,为了确定问题所在,我到他的房间去看,发现台机的xp能够找到AP,输入正确密钥后能够连上!难道是win 7的问题?弄好台机的无线网络后,马上google了一下,发现也有人出现过这样的情况,遗憾的是没有人给出有效的答案。如果不是win 7的问题,那就是我的无线网卡的问题了,可是五年前的网卡都能连上,为何新网卡却不行呢?也许是驱动程序的问题?可是win 7 x64的驱动本身就不好找。

后来在翻看一些相关的问答网页之后,有人提到,某些网卡可能不支持高频段;正好我先前发现网卡驱动的一个“临时频段设置”最大只能到11,而无线路由器目前使用的频段是13,于是尝试将频段改为11,马上就能找到无线网络了,问题解决。

要总结的话,就是没事别乱升级路由器=.=

远离底层

要为actools添加用户收藏功能。按照原来的开发方法的话,要完成这个功能大约是2~3天的时间,不过我并不急于开发出这个功能,而且受到以下事件的影响:

  • bilibili.us强势开张,证件齐全还提供rss,而acfun的管理现状让人担忧,不想随意地投入精力到里面;
  • 本地的开发和调试环境,包括eclipse PHP、LAMP等最近才配置好,在配置好之前,无法实现增量开发,导致开发动力下降;
  • 在思考OO的过程中不断产生疑问,对现有的代码感到不满,并花费了大量时间去修改;
  • 发现了一些奇怪的php语法(例如@和&),然后受到打击停滞不前;
  • 毫无压力,喜欢就做一下,不喜欢就玩一下。

于是一拖再拖。作为一个业余得不能再业余的web编程人士,我试图通过看别人的优秀设计来获得长进;我深知不可能看几篇速成就能成为经常鄙视别人和被人鄙视的砖家,不过我也不计划成为那样的人,去和别人争论效率啊思想啊什么的,只要能过自己心里认为过得去就行而目前的设计方法连自己都看不下去,所以才会有动力去研究,去思考。

目前的情况就是,我不敢轻易地从底层的东西开始写,而打算在一个足够开放的轻量级框架下拼凑他人写好的代码;拼凑不只是简单的c&p,我还是有把握拓展他人的代码使其和现有框架接合的,但总体来说,除了独特的功能例如fetch之外,通常的工作例如用户管理和一般的数据库操作,我都希望尽可能用别人的东西,因为,例如数据库查询,我只能想出『传递sql返回查询结果』这种级别的封装,从思想上就很难做到Active Record级别的考虑。

于是远离底层。

《网瘾战争》:感到有义务传播

我不玩WOW,但这不妨碍我认为这是好作品;看完全片,我最直接的感受就是,比起只在微博上广为流传的冷嘲热讽,热血的话语更能感染人;尤其喜欢众人保持沉默,但用钟声传递力量那段,因为这样的话,此片就不会被别有用心的人评价为“由落后阶级领导的抗争、是农民阶级的幻想”,从而更加贴近现实的诉求;Ac上的有名职人亦参与其中,关键是还有荼荼丸大人献身

感觉需要WOW、Acfun和09年非主流时事基础才能看明白,以本人的水平还是基本懂了。

NGA原出处

Acfun版本,荼荼丸大人献声的一小段被砍了,建议下高清版。

高清版:纳米盘|电驴

《网瘾战争》完全手册 by @duck_1984

原声带

Win7 x64安装手记

在Win7 32位环境下,曾经有几次出现虚拟内存不足(没开什么大程序,仅仅是若干下载工具+若干浏览器+若干IM),让我感到Win7对内存的潜在消费能力还是很强大的,于是萌生了加内存的想法;无奈国庆以来内存基本上都在涨价,在等了很久之后终于等不住了,决定还是趁着DDR2还流行的时候一次加个够(因为退市的1G DDR1比2G DDR2还贵,恐怖死了)。又找了些资料,知道32位系统最高只支持3G左右的内存,所以必须要换64位系统。

前期工作主要是检查兼容性。CPU和主板之类的是没问题的,而一般的32位程序也能在64位系统下良好运行。最大的问题:驱动。本来laptop的驱动就特别难找:索尼不会更新旧型号的驱动,而硬件厂商则说那是特别版,通用版不支持。寄望于M$自带驱动能够尽量支持,于是找了些评估兼容性的程序来试了下,看起来是没问题的。

然后开始装……由于要求主分区20G,我总结了win7下的使用习惯,决定将C、D盘合并,在这之前用ghost备份了这两个分区;进入安装界面,删除了两个分区并试图重建分区,突然提示说要建立一个100M的隐藏分区。什么啊……装32位的时候没见过,幸好家里电脑多,查了查,原来这个隐藏分区是个很麻烦的存在,据说创建了不能随便删掉,而想不创建来安装win7也很麻烦,要先格式化好再装系统。此时旧系统已经进不去,无奈之下刻了张YLMF_XP_SP3安装盘,然后打开PQ,竟然提示分区表损坏,修复后发现连放其他私人数据的E盘都没了!连忙找如何修复分区表的资料,无果,万念俱灰下重新将win7安装盘放进去,发现win7却能够识别出E盘。此时不敢随便乱动,继续找资料,发现win7安装盘的命令行模式自带分区工具,于是慎重地使用它分好区,最终安装完成。

然后开始装驱动。大部分硬件都装上了,除了一个似乎是存储卡设备的驱动找不到,不过也无所谓;关键是显卡驱动变成了默认的标准驱动,Aero都开不了;原来的32位驱动装不上,N卡官网的驱动装不上,VAIO网站上如所料地没有提供更新。最后用nvidia vaio 64 bit做关键词,找到一个专门给N卡做laptop驱动mod的网站,试装成功后,驱动这块就搞定了。后面就是繁琐的重装软件工作……

总结:laptop的非通用设备太多,装64位版本还是有点勉强。但无论如何是装上了。可惜大部分软件都是32位版本,希望以后更多软件开发出64位版本,使得64位系统变得更有意义。

更换了些软件

考研结束后稍微闲下来了,在写完想写的程序后,决定根据近来的一些情报修改下使用得软件。

总体思路:

  • 绿色版换回正式版,因为绿色版和系统的集成做得不太好,例如Firefox Portable就不能很好地锁定在Win任务栏;
  • 非官方版换回官方版,前提是官方版足够好,例如迅雷就算了;
  • 尽可能放弃有谣言指有不轨行为的软件,例如360(哎。),TM是没办法的啦,我们都被绑架了。
  • 破解软件换成免费软件,破解软件有风险,嗯。

基于CI框架的ac娘工具

http://actools.tk/

终于完成了,基于CI框架的php版的ac娘工具,功能和原来的python版是一样的。

开发心得:

  1. php的array有一个好处:有各种各样的array操作函数。在查阅到这些函数的之前,我的大部分精力都花在研究如何处理数据结构上了。
  2. 写这个程序使我对MVC的认识加深了很多。在写search功能的时候其实还没有很好地区分开来,以至于代码非常的混乱;到了写fetch的时候就已经区分得很凌厉了,写出来的代码看着非常的自豪XD。
  3. 与python版相比,php版降低了查询数据库的次数(得益于array操作);不过在试图放在一个免费空间上运行的时候,似乎会由于SQL语句执行时间过长而无法运行fetch功能。发生这件事后,我修改了一个SQL语句,尽可能减少查询的规模。
  4. php的错误竟然不能直接try-catch,还要定义一个handler来将其抛出,不知道是出于什么考虑。像数组越界这样的错误,为什么只是给出Notice呢?我觉得足以使得整个程序crash了。

最终把ac娘工具也放在博客的空间了;原先为它准备的一个加拿大免费空间空闲出来了,弄成twitter站传教用好了。

.tk域名挺不错的,我搜了一下,有36w个中文站搜索结果,太可怕了,记得co.cc被人拿来钓网监钓得整个域名被封杀,希望.tk能够一直安然无恙。

一点一点地整理旧博客文章

这个博客已经放在一个非常通用的平台了,这使得整理它很有意义,毕竟以后的批量操作都可以用过数据库完成。

整理工作包括:

  • rss改回全文输出
  • 将旧文章(约300篇)好好分类
  • 文章标签尽可能改成英文(除了像“碧桂园”这样的专有名词)
  • 标签和分类的意义明确:标签=>话题,分类=>内容的范畴
  • 删除一些链接失效的文章,将中二文标上meaningless标签

参考了这篇文章的一些意见。

[翻译]Google的怯懦

@译者:

  1. 阅读了原文作者博客的版权声明,除了基本的指明出处等条款之外,作者表明摘录其内容不可以超过300字,但没有关于翻译的条款。那么先翻译过来好了,放一个英文的提示给原作者看。
  2. 翻译水平有限,尽量做到信雅达,不一定是直译,我自行添加的词或意思都用括号表示了,见谅。
  3. 本文转载时请标明原文出处,不要标明译文出处。

Notice: If you find this article violated your copyright, contact me immediately to get it deleted.

原作者:Adam Minter of Shanghai Scrap

原文:Google’s cowardice

译文:

一年半之前,我收到一封电子邮件,是一位在中国的一个大型NGO工作的熟人发给我的。邮件包含了一个附件,由于我和发邮件给我的人相熟,我(直接)选择了将它打开。几秒之后,我的安全软件提示我那是恶意软件并隔离了它。到了这时,我仔细的看了下邮件内容,注意到几个细节,其实早已向我表明这并非来自我朋友的消息,而是极具迷惑性的钓鱼攻击。无论如何,我马上联系了这位熟人,告诉他发生了的事。他在回复中感谢我,并且告诉我,他已经从地址本上的数十位朋友那里收到了类似的信息,并且他——和他所在的NGO——感到他们遭到了黑客攻击。

由于显而易见的原因,我不会指出他和他的组织的详细信息。公平地说,我亦不能确定地说通过对我朋友的地址本(和我)的攻击的源头是否来自中国,或者和中国有关(某种类型的调查正在进行,不过我并不知道结论)。但我确实知道,我正在谈及的朋友,以及他的组织,在被黑之前已在中国经营多年,尽管遭受了各种各样的压力,但到目前为止,和邮件攻击有关的一切并没有动摇他们将继续在中国工作下去的诺言。

昨天,在Google基于gmail受到攻击而宣布它正在重新考虑“在中国的商业运营的可行性”之后,我一直在想这位朋友、他的NGO,以及他不顾任何阻碍都要使其在中国继续工作的决心。我同时注意到Google的声明中的这一段:

第二,我们有证据显示,攻击者的首要目标是进入中国人权活动人士的Gmail账户。我们迄今为止的调查结果让我们相信,这些攻击没有达到预期目标。只有两个Gmail账户被进入,而且其活动仅限于帐户信息,比如帐户何时创建、以及邮件标题,具体邮件内容未被染指。

第三,在与谷歌受攻击无关的整体调查中,我们发现数十个在美国、中国及欧洲的中国人权活动人士Gmail帐户经常被第三方侵入。入侵这些帐户并非经由谷歌的任何安全漏洞,而很可能是通过在用户电脑上放置网络钓鱼或恶意软件。

(注:该段译文来自华尔街日报

第一段中,Google并没有指出讨论中的人·权活动家的所在。然而第二段中,Google清晰地指出部分被钓鱼欺诈所攻击的gmail用户来自中国。这使我产生一个疑问:这些活动家当中是否有人采取像Google那样的做法?也就是说,Gmail被入侵是否使得人·权活动家们重新考虑“在中国行动的可行性”?

我并不清楚哪些人的Gmail被入侵了,但我可以大胆推测这一问题的答案——至少那些人·权人士的答案——将会是一致的“不”。那就是说,他们将继续在中国活动,无论是邮件入侵还是政府阻碍。为什么?每个NGO和每个活动家,都会有完全不同的一系列理由,但我很肯定,在他们为承诺的事业而奋斗时所遇到的困难中,邮件账户被入侵只是很小的、完全不让人感到惊讶的困难。他们相信,如果你想要成为中国未来的一部分,就要首先成为中国现在的一部分。

如果你注意到Google周三的陈述的语气,以及一些媒体反应的说明事项(《中国进入了布什-切尼时代》或者–喘气–《中国黑客攻击网上媒体活跃人士和公司》),你可能会感到中国正从启蒙时代进入到恐怖统治时期。的确在去年,(中国的)网络控制被收紧了,但我很难接受认为中国突然变成极度专制的地方的观点。多年以来,(中国)都像现在那样(@译者:原文. It is what it is, and has been for several years,我无法很好地翻译,大约作者意思是中国几年来在专制程度或网络控制方面变化不大);至少NGO能够继续应付它所遇到的困难。

表面上,Google选择了不再应付这些困难,并且它这样做使得它在某些人眼中成为了英雄,而这些人似乎认为退出(或威胁要退出)中国是一个能有效影响中国的方法。也许如此。但我可以指出许多NGO、活跃分子和公司,它们比Google经历过更严重和更长时间的烦扰,而它们选择了留在中国并成为中国未来的一部分,并且已经取得了一些成就。Google(从决定进入中国之后)过了仅仅四年,便威胁着要将它的服务器搬回家,表明它并没有分担它们的义务。当然,这就是他们的选择,这就是他们,但我们应该清楚认识到:它丫并不是英雄。

果然还是要php化

heliohost又挂了,尽管对于免费空间我们不能够期待太多,不过放在上面的ac娘工具变得不稳定,而且域名又不美观,促使我考虑为它寻找绑定一个免费的二级域名,外加一个稳定点的免费空间。

在寻找的过程中,我惊讶地发现,原来heliohost确实很强大,支持python+mysqldb,这种程度的配置原来不是每个free host都支持的!我找到了vps-hosting.ca,打算搬过去的时候才发现,python cgi中居然没有MySQLdb模块。

于是我想,能运行当前的ac娘工具的环境真是少之又少,heliohost是一个很不错的新技术实验平台(估计因此而经常当掉)。无论如何,为了让它到处可用,继续我的CI化ac娘工具的计划。

推上有人介绍一个网站,可以加密字符串:http://fliptitle.com/