Author Archives: mine260309

踏青觉岭古道-虹关

    最近有些杂事忙得很,当Daisy召集小型的踏青活动时,第一时间报名了——一定要出去走走换换风景。
    觉岭古道位于江西婺源县北部,靠近安徽,知名度不大,因此游客不多,很适合我们这样的旅游风格。出去玩的人员组成大约是1/3的学友会成员,2/3徒步天涯的驴友以及朋友,因此有很多人都是第一次认识。

    周六晚上出发,一路聊天+自我介绍。特别有意思的是自我介绍环节,从司机后面的开始,每人说一个自己的爱好及名字,后面的人必须接上前面所有人的爱好和名字。比如这回Daisy先说“我是坐司机后面的喜欢睡觉的Daisy”,后面的Lily说“我是坐司机后面的喜欢睡觉的Daisy后面的喜欢吃东西的Lily”,以此类推,当最后一个人介绍时,得记得前面十几个人的爱好和名字以及位置,相当有挑战性!好在我们都喜欢睡觉,因此大多数人的爱好就都是“喜欢睡觉”了,哈哈。
    凌晨3点多到了官坑,住在农家,睡一觉,准备徒步~


    从官坑到岭脚,6.5km左右的山间小道,都是青石板路,很轻松的徒步。这个季节算是繁花似锦吧,除了金灿灿的油菜花,还有粉色的桃花,白色的梨花,白中带点紫的萝卜花,还有不认识的野花,一路都跟着我们的小溪,纯粹的乡土气息。
    找到一片溪边的草坪,大家度地而坐休息看风景吃东西,好不惬意。

    快到岭脚的时候,从山上俯看,一片平房点缀在青山中,很美的画面。

    边走边休息,最后走了3个小时休息了3个小时,从官坑到达了岭脚。
    从岭脚很快就到了虹关,这里有一棵古老的大樟树,宽广的树枝覆盖了一片阴凉,几乎可以和榕树媲美了。一帮人在树下喝茶,吃晚饭,玩牌,真是腐败,哈哈。这回还学了四川的“干瞪眼”的玩法,很有意思!

    虹关村的风景也不错,各种花,还有白菜、竹笋、艾草、马兰头等各种“食材”…

    在虹关的“詹大有饭店”睡到自然醒,这里的老板推荐说附近的有座桥很值得一看,还借了我一辆自行车骑过去,顺道着,老板的狗狗也跟着我一起过去了。这座石桥很有年代感,还是庆元年间建的(庆元已卯年,查了一下,1195年),800多年历史了!可惜老板只有一辆自行车,要不然就喊着大家一起过去看看了。

    在虹关休整完,拍完集体照,准备回上海。不过路上经过黄山屯溪,在屯溪吃个饭,逛一下老街,再悠闲地回到了魔都~

Share

转译者:《金融时报》在政变的传言中北京的神经紧张

在这么一个重庆美剧的第二(甚至第三)季正精彩的时候,有独立博客的可以转些在墙内一定会被删的文章了。
《金融时报》的这篇文章值得一看,原文在此:http://www.ft.com/cms/s/0/650bb0f6-735f-11e1-aab3-00144feab49a.html
不过需要注册才能看,有译文看正好。

—-

《金融时报》在政变的传言中北京的神经紧张

核心提示:一名与中国的安全机构有紧密联系的人士说已有命令,周永康不能再公开露面,或参加高层会议,”某种程度上他已被控制了。”这名人士还说前重庆市委书记薄熙来在家中被软禁,他的妻子因为涉嫌腐败被带走调查。

原文:Beijing on edge amid coup rumours
作者:JAMIL ANDERLINI发自北京
发表:2012年3月21日
本文由”译者”志愿者翻译并校对

    在数十年来最重大的一次政治清洗之后,中国的首都充斥着猜测、暗语和传言,即使是最有路子的官员们对于未来会怎样也完全摸不着头脑。
    自从上周四,中国最有权势的领导人之一薄熙来被免职以来,官僚们和公众们都焦虑不安,等待着这出扣人心弦的政治大剧的下一个转折点的到来。
    上周,一则网络通告宣告了薄熙来被免职的消息后,中国被严密审查的媒体上就没有再提到他的名字,更不要说为后续情况提供什么线索了。
    但是,中国的网民,特别是利用很难被完全审查的类推特的微博服务的那些网民一直在互联网上发布着大量的信息,从极其难以置信的到看来真实的一应俱全。
    周一晚上,一则广为流传的传言说,周永康发动了一场军事政变,周是薄熙来的盟友,他负责中国的安全机构。在北京的心脏,最高领导人的居住地中南海发生了枪战。
    但在周一晚间,《金融时报》记者开车经过那一地区附近的时候, 看起来一切平静,到周三晚上,看不出有什么异常的情况。
    但是,一名与中国的安全机构有紧密联系的人士说,已有命令说,周永康不能再公开露面,或参加高层会议,”某种程度上他已被控制了。”
    这名人士还说前重庆市委书记薄熙来在家中被软禁,他的妻子因为涉嫌腐败被带走调查,腐败是用来指控在权力斗争中败北的高层官员的常见罪名。
    尽管这些信息无法被立刻证实,互联网上流传的文件和录音(注:可参加另一篇译文《纽约时报》 薄熙来被免职的新细节浮出水面)似乎足以说明薄熙来的家人正在因为腐败而被调查,甚至早于他信任的公安局长王立军二月初逃到美领馆要求避难之前。
    对这一事件出具的一份初步的政府报告文件和录音暗示王立军是在薄熙来解除了他的职务,想要逮捕他,以中断对[薄的]腐败调查之后逃跑的。而中国官员说这些文件看起来是真的,且可能是故意流出。
    前共和党总统候选人和美国驻华大使洪博培曾经多次见过薄熙来,他说薄被免职说明中国的高层领导中有着严重的分歧。
    洪博培说:”在常委中关于改革的分歧现在非常明显,就和1989年天安门时期一样。中国的政治相当艰险困难。现在的事就是公开的证明,在世界都看不到的帘幕后面正在发生着什么。”
    周日,一起致命的车祸涉及一位高层官员的儿子和一辆法拉利,关于这起车祸的信息曾出现在互联网上,但是很快就被审查系统删除,这也为北京增加了诡异的气氛。
    网民和一位接近中国高层领导的消息人士说,一名常委的私生子在车祸中丧生,两名年轻女子严重受伤。
James Lamont对本文有贡献


相关信息:
根据日本《产经新闻》3月20日的报道(原文),称薄熙来已被双规,不允许离开北京。并指薄熙来夫人谷开来涉嫌贪污。还说王立军去年年底之前就因经济问题被调查,如果与《金融时报》的信息源不是同一个的话,可以认为这一信息已被交叉验证;

另据彭博社3月21日的报道(原文),中国外交部首席发言人秦刚在昨晚的一次电话采访中说他从来没有听说过发生了什么政变。而在中南海,举行了一场有前美国商务秘书Carlos Gutierrez等外国高管们参加的一次会议,旨在平息这种风言风语带来的干扰。”政变”的流言在网络上传出后,用来确保中国政府债券不会违约的掉期产品的价格上升了十个基准点,达到107,是自11月9号以来最高的单日增幅。

精力所限,以上两篇不再全文翻译,有需要查证核实者请自行前往
本文版权属于原出版公司及作者所有。©译者遵守知识共享署名-非商业性使用-相同方式共享 3.0许可协议

Share

杂记(2012.02)

过完年后就懒了,很久没写博了,还是随便写点吧。

· Google的Android Market可能因为app实在太多了,我的app很难被搜到、或者说搜到了排名也不靠前,因此下载量和安装量就基本上停滞了。
  不过偶尔还是能收到一些feedback邮件,其中最令我觉得宽慰的是,我的app帮到了一些聋人——短信、来电、邮件的震动以及定时的提醒对于他们来说就是最需要的功能。看到这样的feedback “This app is almost perfect – especially for a deaf person like me!”,想必每个开发者都会很开心的吧?管它多少下载量呢…

· 前段时间看了电影《那些年,我们一起追的女孩》,很有感触,因为它讲的故事太真实了,真实到电影里的台词,一模一样的话,曾经也有那么一个人对我说过。的确,每个男生心中都有一个沈佳宜,只不过,只是在心中而已。

· 预定的《最终幻想13-2》的中文版发售的第二天就入手了,这个月在好好地玩这款游戏。许久没有玩到好玩的RPG的我,显然对这款Fami通满分游戏也赞不绝口——不说别的,沿用FF13唯一的亮点,战斗系统,再估一个新游戏出来,只要各方面别太差,就是个好游戏了。而FFB-2的各个细节都很赞,尤其是每次读取进度时的“前情提要”,让人有种看美剧的感觉,也能回忆起之前的剧情;而Noel’s theme也是听一次就会喜欢上的音乐;剧情是弱了点,但是Live Trigger和多结局的设置,通关后可以随意体验每一段故事,和“穿越时空”的主题也很契合。
  目前已经看了各个悖论结局,人物也已经升到顶级,我的评价就是,不愧为满分游戏!

· 最近项目很忙,很想吐槽,但是又不知道从何吐起。总觉得各个项目之间的管理很混乱,或者说就没有这样的管理,因此时不时就会发现,两个独立的项目,居然之间有dependency,让人很无语。不过,这种情况应该怎么处理,也是件难事,也许SVN就是不适合有太多分支同时多个项目共存的情况吧。

Share

[Android Dev] Gmail OAuth (2)

这一部分主要介绍如何使用已获得的Access Token去获取Gmail以及计算未读邮件的数量。

1. 从上一篇博客里获得的AccessToken以及Secret,生成OAuthConsumer,非常简单。

CommonsHttpOAuthConsumer consumer =
  new CommonsHttpOAuthConsumer("anonymous", "anonymous");
consumer.setTokenWithSecret(token, secret);

2. Gmail提供了RSS Feed,只需要使用token取得RSS Feed,就拿到了Gmail的内容。其中:
https://mail.google.com/mail/feed/atom/ 对应Inbox里的未读邮件
https://mail.google.com/mail/feed/atom/unread/ 对应所有的未读邮件
https://mail.google.com/mail/feed/atom/labelname/ 对应某个label的未读邮件
我只需要取得用户的Inbox的未读邮件,因此code是这样的:

HttpGet request = new HttpGet("https://mail.google.com/mail/feed/atom/");
// sign the request
try {
  consumer.sign(request);
} catch (Exception e) {
  e.printStackTrace();
}
// send the request
HttpClient httpClient = new DefaultHttpClient();
org.apache.http.HttpResponse response;
try {
  response = httpClient.execute(request);
  feedString = read(response.getEntity().getContent());
} catch (Exception e) {
  e.printStackTrace();
}

feedString里就保存了Google返回的feed的内容。而函数read是为了把response里的内容读出来生成String. 这个是从网上抄来的…

private static String read(InputStream in) throws IOException {
  StringBuilder sb = new StringBuilder();
  BufferedReader r = new BufferedReader(new InputStreamReader(in), 1000);
  for (String line = r.readLine(); line != null; line = r.readLine()) {
    sb.append(line);
  }
  in.close();
  return sb.toString();
}

3. 有了feed,就剩下计算unread count的工作了。这分成两部分。
i) 从String生成XML Document,其实是一个DOM tree;
ii) 在XML Document里parse数据,取得unread count.
关于i) 也是网上有相应的code:

private static Document XMLfromString(String xml){
  Document doc = null;
  DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
  try {
    DocumentBuilder db = dbf.newDocumentBuilder();
    InputSource is = new InputSource();
    is.setCharacterStream(new StringReader(xml));
    doc = db.parse(is);
  } catch (ParserConfigurationException e) {
  // XML parse error
  return null;
  } catch (SAXException e) {
  // Wrong XML file structure
  return null;
  } catch (IOException e) {
  //I/O exeption
  return null;
  }
  return doc;
}

关于ii) Gmail的一个个邮件是放在一个个entry里的,所以只需要parse entry就行了。

NodeList nodes = feedDoc.getElementsByTagName("entry");
unread_count = nodes.getLength();

这就搞定了未读邮件数量的计算。

4. 虽然正常情况下都没问题,但是假如用户改了密码,token就无效了,应该检测这种情况,然后让用户重新进行authenticate。虽然这不常见,但也得处理。
假如Token变得无效,Gmail会返回一个显示Unauthorized的网页。因此最简单的方法是通过字符串判断. 注意如果是正常的feed,string是以<?xml为开头的,而如果是unauthorized的网页,就以<HTML>开头。

private static boolean verifyValid(String doc) {
  return !(doc.startsWith("<HTML>") && doc.contains("<TITLE>Unauthorized"));
}

这样就解决了。

Q.E.D.

Share