Sunday, 3 May 2015

Learn REST: A Tutorial

Credit! Following Materials from: http://rest.elkstein.org/

1. What is REST?

REST stands for Representational State Transfer. (It is sometimes spelled "ReST".) It relies on a stateless, client-server, cacheable communications protocol -- and in virtually all cases, the HTTP protocol is used.
REST is an architecture style for designing networked applications. The idea is that, rather than using complex mechanisms such as CORBA, RPC or SOAP to connect between machines, simple HTTP is used to make calls between machines.
  • In many ways, the World Wide Web itself, based on HTTP, can be viewed as a REST-based architecture.
RESTful applications use HTTP requests to post data (create and/or update), read data (e.g., make queries), and delete data. Thus, REST uses HTTP for all four CRUD (Create/Read/Update/Delete) operations.
REST is a lightweight alternative to mechanisms like RPC (Remote Procedure Calls) and Web Services (SOAP, WSDL, et al.). Later, we will see how much more simple REST is.
  • Despite being simple, REST is fully-featured; there's basically nothing you can do in Web Services that can't be done with a RESTful architecture.
REST is not a "standard". There will never be a W3C recommendataion for REST, for example. And while there are REST programming frameworks, working with REST is so simple that you can often "roll your own" with standard library features in languages like Perl, Java, or C#.

2. REST as Lightweight Web Services

As a programming approach, REST is a lightweight alternative to Web Services and RPC.
Much like Web Services, a REST service is:
  • Platform-independent (you don't care if the server is Unix, the client is a Mac, or anything else),
  • Language-independent (C# can talk to Java, etc.),
  • Standards-based (runs on top of HTTP), and
  • Can easily be used in the presence of firewalls.
Like Web Services, REST offers no built-in security features, encryption, session management, QoS guarantees, etc. But also as with Web Services, these can be added by building on top of HTTP:
  • For security, username/password tokens are often used.
  • For encryption, REST can be used on top of HTTPS (secure sockets).
  • ... etc.
One thing that is not part of a good REST design is cookies: The "ST" in "REST" stands for "State Transfer", and indeed, in a good REST design operations are self-contained, and each request carries with it (transfers) all the information (state) that the server needs in order to complete it.

3. How Simple is REST?

Let's take a simple web service as an example: querying a phonebook application for the details of a given user. All we have is the user's ID.
Using Web Services and SOAP, the request would look something like this:
<?xml version="1.0"?>
<soap:Envelope
xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
 <soap:body pb="http://www.acme.com/phonebook">
  <pb:GetUserDetails>
   <pb:UserID>12345</pb:UserID>
  </pb:GetUserDetails>
 </soap:Body>
</soap:Envelope>
(The details are not important; this is just an example.) The entire shebang now has to be sent (using an HTTP POST request) to the server. The result is probably an XML file, but it will be embedded, as the "payload", inside a SOAP response envelope.
And with REST? The query will probably look like this:
http://www.acme.com/phonebook/UserDetails/12345
Note that this isn't the request body -- it's just a URL. This URL is sent to the server using a simpler GET request, and the HTTP reply is the raw result data -- not embedded inside anything, just the data you need in a way you can directly use.
  • It's easy to see why Web Services are often used with libraries that create the SOAP/HTTP request and send it over, and then parse the SOAP response.
  • With REST, a simple network connection is all you need. You can even test the API directly, using your browser.
  • Still, REST libraries (for simplifying things) do exist, and we will discuss some of these later.
Note how the URL's "method" part is not called "GetUserDetails", but simply "UserDetails". It is a common convention in REST design to use nouns rather than verbsto denote simple resources.
The letter analogy
A nice analogy for REST vs. SOAP is mailing a letter: with SOAP, you're using an envelope; with REST, it's a postcard. Postcards are easier to handle (by the receiver), waste less paper (i.e., consume less bandwidth), and have a short content. (Of course, REST requests aren't really limited in length, esp. if they use POST rather than GET.)
But don't carry the analogy too far: unlike letters-vs.-postcards, REST is every bit as secure as SOAP. In particular, REST can be carried over secure sockets (using the HTTPS protocol), and content can be encrypted using any mechanism you see fit. Without encryption, REST and SOAP are both insecure; with proper encryption in place, both are equally secure.

4. More Complex REST Requests

The previous section included a simple example for a REST request -- with a single parameter.
REST can easily handle more complex requests, including multiple parameters. In most cases, you'll just use HTTP GET parameters in the URL.
For example:
http://www.acme.com/phonebook/UserDetails?firstName=John&lastName=Doe
If you need to pass long parameters, or binary ones, you'd normally use HTTP POST requests, and include the parameters in the POST body.
As a rule, GET requests should be for read-only queries; they should not change the state of the server and its data. For creation, updating, and deleting data, use POST requests. (POST can also be used for read-only queries, as noted above, when complex parameters are required.)
  • In a way, this web page (like most others) can be viewed as offering services via a REST API; you use a GET request to read data, and a POST request to post a comment -- where more and longer parameters are required.
While REST services might use XML in their responses (as one way of organizing structured data), REST requests rarely use XML. As shown above, in most cases, request parameters are simple, and there is no need for the overhead of XML.
  • One advantage of using XML is type safety. However, in a stateless system like REST, you should always verify the validity of your input, XML or otherwise!

12.2. Using REST in Java

Issuing HTTP GET Requests
The key class here is HttpURLConnection, obtained by invoking openConnection on a URLobject. Sadly, openConnection method's signature specifies that it returns the superclass type, URLConnection, and we have to downcast the result.
The following method issues a request and returns the entire response as one long string:
public static String httpGet(String urlStr) throws IOException {
  URL url = new URL(urlStr);
  HttpURLConnection conn =
      (HttpURLConnection) url.openConnection();

  if (conn.getResponseCode() != 200) {
    throw new IOException(conn.getResponseMessage());
  }

  // Buffer the result into a string
  BufferedReader rd = new BufferedReader(
      new InputStreamReader(conn.getInputStream()));
  StringBuilder sb = new StringBuilder();
  String line;
  while ((line = rd.readLine()) != null) {
    sb.append(line);
  }
  rd.close();

  conn.disconnect();
  return sb.toString();
}
(This code is very raw; it should be properly padded with try/catch/finally blocks to ensure the reader is closed, etc.)
Remember that if the request URL includes parameters, they must be properly encoded (e.g., a space is %20, etc.). The class URLEncoder can be used to perform this encoding.
Issuing HTTP POST Requests
URL encoding is also required for POST requests, as shown in the following method:
public static String httpPost(String urlStr, String[] paramName,
String[] paramVal) throws Exception {
  URL url = new URL(urlStr);
  HttpURLConnection conn =
      (HttpURLConnection) url.openConnection();
  conn.setRequestMethod("POST");
  conn.setDoOutput(true);
  conn.setDoInput(true);
  conn.setUseCaches(false);
  conn.setAllowUserInteraction(false);
  conn.setRequestProperty("Content-Type",
      "application/x-www-form-urlencoded");

  // Create the form content
  OutputStream out = conn.getOutputStream();
  Writer writer = new OutputStreamWriter(out, "UTF-8");
  for (int i = 0; i < paramName.length; i++) {
    writer.write(paramName[i]);
    writer.write("=");
    writer.write(URLEncoder.encode(paramVal[i], "UTF-8"));
    writer.write("&");
  }
  writer.close();
  out.close();

  if (conn.getResponseCode() != 200) {
    throw new IOException(conn.getResponseMessage());
  }

  // Buffer the result into a string
  BufferedReader rd = new BufferedReader(
      new InputStreamReader(conn.getInputStream()));
  StringBuilder sb = new StringBuilder();
  String line;
  while ((line = rd.readLine()) != null) {
    sb.append(line);
  }
  rd.close();

  conn.disconnect();
  return sb.toString();
}
As you can see, it's not a pretty sight (and that's before adding proper try/catch/finallystructures). The problem is that, out of the box, Java's support for handling web connections is pretty low-level.
A good solution can be found in the popular Apache Commons library, and in particular the httpclient set of packages. See Yahoo! guide to REST with Java for details and examples. The documentation covers several interesting extras, such as caching.

Monday, 13 April 2015

Install Adobe Reader in Ubuntu 14.04 Trusty

Credit, from: http://ubuntuhandbook.org/index.php/2014/04/install-adobe-reader-ubuntu-1404/ 
Adobe Reader was available in Canonical Partners repository then dropped since Ubuntu 13.10 Saucy. This tutorial will show you how to install Adobe PDF Reader in Ubuntu 14.04 LTS from the official package.
Tutorial Objectives:
  • Install Adobe Reader in Ubuntu 14.04
  • Enjoy!
To get started:
1. Download the DEB package:
UPDATE: Adobe Reader has recently removed support for Linux. Thanks toEnkouyami, if the above link is broken, you can install Adobe Reader from Canonical Partners repository, see this post.
2. Install Gdebi to handle the DEB package. Press Ctrl+Alt+T on keyboard to open the terminal. When it opens, paste the command below and run:
sudo apt-get install gdebi
3. Now install the package via Gdebi. It’ll also install the dependencies.
cd ~/Downloads && sudo gdebi AdbeRdr9.5.5-1_i386linux_enu.deb
4. If Adobe Reader is still missing libraries after installation. Run the command below to install them:
sudo apt-get install libgtk2.0-0:i386 libnss3-1d:i386 libnspr4-0d:i386 lib32nss-mdns* libxml2:i386 libxslt1.1:i386 libstdc++6:i386
That’s it. Enjoy!
adobe reader on ubuntu 14.04
(Optional) To remove Adobe Reader:


sudo apt-get remove acroread; sudo apt-get autoremove

Saturday, 28 March 2015

中国医疗大数据发布


  近日,国际知名的咨询公司德勤咨询发布了《2020年健康医疗预测报告》,这其中也反映了中国人群的医疗大数据。
  在总人口为13亿多的中国人中,中国高血压人口有1.6~1.7亿人,高血脂的有将1亿多人,糖尿病患者达到9240万人,超重或者肥胖症7000万~2亿人,血脂异常的1.6亿人,脂肪肝患者约1.2亿人。有研究数据显示:平均每30秒就有一个人罹患癌症,平均每30秒就有一个人罹患糖尿病,平均每30秒,至少有一个人死于心脑血管疾病。
  中国医疗大数据现状:压在百姓身上的3座健康大山
  第一座健康大山——跑步进入老龄化社会
  之所以会出现上述触目惊心的数据结果,根据德勤最新发布的《2020年健康医疗预测报告》,中国的老龄化趋势严重。
  到 2012 年止,世界经济合作与发展组织国家(Organization for Economic Co-operation and Development,OECD)人均寿命预期为 80 岁,相比 1990 年呈现大幅老龄化现象。
  其中日本最为严重,平均寿命预期为 84 岁,英国为 81 岁,美国 79 岁,中国 75 岁,而印度为 66 岁。
  预计到 2018 年,超过 65 岁人群数量会达到 5.8 亿,占全球人口 10%,也就是说,其中每10个日本人中就有一位超过 65 岁的老年人。到2020年,我国正式进入老龄化严重阶段!
  在发达国家,发达国家进入老龄化时,人均GDP在5000~8000美元,2014 年健康医疗支出占总支出 77%。
  相比在中国,从2003年开始我国未富先老,人均GDP为1000美元。2014年的健康医疗支出占总支出 23%, 预计到 2020 年,健康医疗支出占总支出 上升到 32%。
  全世界痴呆病人已达2400多万,平均每7秒增加一个,中国老年痴呆患者约占全世界病例总数的四分之一,平均每年增加30万的新发老年痴呆病例。
  骨质疏松症已跃居常见病、多发病的第七位,60岁以上的人群患病率为56%,女性发病率为60~70%。其中骨折率发生率接近三分之一,每年医疗费用按最保守的估计需要人民币150亿。
  第二座健康大山——癌症年轻化
  根据统计数据:2005年~2015年间中国因疾病而导致生产力丧失将累计给中国造成5500亿美元的经济损失,其中中国一年用于心脑血管疾病的治疗经费达到3000亿人民币元人民币;中国的肝炎的直接经济损失达3600个亿。2013年到2014年,35岁~46岁死于心脑血管病的人,中国是22%,美国是12%。
  目前我国主流城市的白领亚健康比例高达76%,处于过劳状态的白领接近六成,真正意义上的健康人比例不足3%。白领女性更容易受到妇科、心脑血管疾病的威胁,男性则面临猝死、过劳、癌症等问题!
  根据不完全统计,中国平均每个月都有报道较为年轻的企业高管、影视明星患有癌症或者离世,最高个人资产可达14个亿,包括百视通COO吴征、德尔惠股份创始人兼原董事长丁明亮、兴民钢圈董事长王嘉民、成都百事通总经理李学军等12位高管,均因疾病离世,比例高达63%,其病因主要是癌症和心脏病,其中,像吴征、李学军等近半数为突发疾病逝世。
  2013年,慢性病患病率已达20%,死亡数已占总死亡数的83% 。过去十年,平均每年新增慢性病例接近了2倍。心脏病和恶性肿瘤病例增加了近1倍!
  美国《保健事物》杂志报告,中国人的腰围增长速度将成为世界之最。肥胖人口将达到3.25亿,未来20年将会增长一倍,腰围只要增长一英寸(2.54厘米),血管就会增长4英里,患癌风险高8倍!
  在中国人群中,糖尿病或许成为最为常见的慢性病,全球糖尿病患者将达到3.82亿,而每四个人中有一个是中国人。总患病人数将比德国和葡萄牙人群总数之和还要多。
  从2014到18年,全球药品支出将以每年6.9% 增长,从2014年的1.23万亿美元到18年的1.61万亿美元。其中肿瘤疾病花费最高。
  医疗支出上,基因工程将占有最大比例,从26.1亿美元(2012 年)上升到42.1亿美元(2017 年),涨幅 36%。 
  第三座健康大山——新生儿生命"先天缺陷"
  每年的9月12日是我国“预防出生缺陷日”,2009年监测显示,每隔30秒就有一个缺陷儿出生,相当于每小时30个,每天720个!
  导致出生缺陷的因素非常多,最常见的就是遗传有关,此外还有环境因素和感染因素。一些问题我们可以通过预防来解决,比如积极治疗基础病、避开危险环境、避免滥用药物和防止病毒感染等。但是还有些问题我们是很难阻断和改变的,例如遗传因素,我们只能做到尽早发现异常、尽早采取措施,因此必须采取规范的产前检查。
  遗传代谢病很多人觉得陌生是导致儿童夭折或残疾的主要病因之一。我国婴儿患病病例较高,每年约2000万的出生人口中,有40万到50万名儿童患有遗传代谢病。可怕的是,患儿在新生儿时期常没有特别的临床表现,一旦出现异常,孩子已经造成智力和身体的终生残疾。一般地,每当一个普通家庭出现了患有“先天缺陷”的新生儿,这个家庭将永远被压在健康大山之下,难有出头之日。
  除此之外, 2013—2014年度,北京中小学肥胖检出率为19.5%,其中10%出现脂肪肝,而全国肥胖儿中脂肪肝发生率40~50%。2型糖尿病发病率20年间增长了11~33倍。
  教育部《2013年全国学生体质健康监测报告》显示近年来小学生近视率32.5%; 初中生59.4%;高中生77.3%;大学生80%; 沿海城市高中毕业生视力低下率85%,高度近视率呈急剧上升趋势。
  面对严峻的健康挑战 怎样推翻压在身体上的“三座大山” ?
  2014至2018的年平均医疗支出预计将从西欧国家的2.4%增长到北美的4.9%;从亚洲和澳大利亚的8.1%到中东和非洲的8.7%;全球医药支出总额预计将从2014年的1.23万亿美元以每年6.9%的速度增长到2018年的1.61万亿美元,而肿瘤将成这个领域的主要贡献者;仿制药将占取全球药品消费市场更大的份额,从2012年的27%(2610亿美元)增长到2017年的36%(4210亿美元);内服药领域销售预计将从2013年的3638亿美元增长到2020年的5135亿美元,体外诊断将达最高;2013年,纵观七国(G7)市场,几乎每个工作日都有226个伴随诊断协议交易,而2009年还仅8个交易每天。
  在中国每年卫生资源消耗6100多亿元,因疾病、伤残造成的损失约7800多亿元。总计一万四千多亿元。这是个惊人的数字,因为“三峡工程”十五年的总投资才是2000亿。
  面对越来越称重的“三座健康大山”,我们应该尽早改变意识,未雨绸缪,认识到“预防大于治疗”才是健康的真谛。
  在此,德勤咨询也预测了2020年医疗服务可能发生的变革。
  1.实现患者、医疗机构、企业之间的互动
  医疗机构与患者通过社交媒体接触,根据预算和医疗要求定期评估需求和推荐他们合适的产品和服务;在线病人社区呈指数级增长,并且成为众包数据的丰富来源,也成为药物和医疗保健的评级系统;通过分析社区病人的聊天信息,提供一个更好的治疗方案,允许实时截取药品信息和服务。提供疾病早期警报,如流感;企业和政府部门与社区的病人、医院和纳税人一起找出最佳实践和具有高效益的治疗方法;新的供应商和行业模式,包括互助组织和其他形式的协作和合作方式,帮助降低成本,改善护理。
  2.建立医疗新观念
  消费者学会主动,对健康更加关注,更加坚定良好行为的锻炼,从降低支付到减少税收(例如,不吸烟);数据的隐私和安全仍然令人担忧,但有一个好处就是数据共享了;纳税人和提供者能接受复杂的患者,找寻通向治疗新途径的分析方法和项目;医生们从不愿意参与电子健康信息到积极参与并发展和改善技术;在发达国家,大多数病人已经有了自己的电子健康记录,并分享在社交网站。
  3. 新的商业模式和概念
  在未来,新的商业模式和概念会大面积在移动健康医疗领域爆发,病了都有APP。举个例子:玛丽知道她有患乳腺癌的风险,在她母亲死于这种病后,基因测试显示她携带相同基因。然而,更令她担心的是最近飙升的体重意味着她的糖尿病越来越难控制,并附带增加乳腺癌的风险。这一切都始于她不得不放弃工作来照顾重病的母亲,于是吃成了她主要的安慰方式。她手机APP上的数据暗示她的健康恶化,包括记录健康的家庭秤。更重要的是,她的糖尿病护理专家已经在三个月里每两周来检查她的身体。
  她也知道她没办法既控制体重又能降低血糖水平。如果她没有让她的BMI指数降到一个可接受的水平,她希望在线支持组织和APP“Be the Local Loser”能帮助她减肥和降低风险。
  3. 健康数据化,市场对相关器具和计算模型需求增加
  根据《2020年健康医疗预测报告》,初级保健医生如何充分利用新技术的在线互动课程推出,他们中许多人往往比医生更了解;且医学模型逐渐向“4P”医学迈进。到时候会有针对“P4-Medicine”医药新规范出台,以及将会出现一些类似于 PatientPeoplePower.com的新兴互动平台,在病人宣传运动具有极高的影响力。
  4. 相关监管会更为完善
  从2014年开始病人越来越像消费者,然而就目前来说,虽然大多数行业已经接受了客户第一的意识,但医疗行业还远远落后。才意识到医疗服务提供者今天遇到的挑战是他们仍停留在把顾客放在做事上,而要从根本上改变家长式的管理方法,重塑患者、供应商和纳税人之间的关系。因此,伴随着人民对健康要求的越来越高, 相关监管会更为完善,特别是针对新的技术和研究成果。
  就像2014年10月,沃尔玛开了一系列诊所,在那儿人们有没有买保险都有一个高效率的医疗治疗,而且在那有大量员工,不用担心拥堵。并推出了在诊所看病仅需40美元的诊治服务(是目前行业标准的一半左右),且沃尔玛美国雇员和家属看病只需要4美元,怀孕检验只需3美元,胆固醇检验仅需8美元。
  5. 对药品广告的效果期望会增加
  新社交媒体部门已经运营了三年,在支持重要品牌推出和赢得许多新媒体奖上享有许多显著的成就,这个部门主要负责帮助患者和纳税人了解药品功效和更优秀的服务方案,它也鼓励患者养成良好的行为习惯,创造长期持续的健康方式,以此降低成本。
  在未来,生物信息类网站将会越来越多,他们站在科学客观的角度直接向终端用户宣传健康生活方式,告知相关药品的审批情况、疗效及不良反应,并在患者、医生和制药公司关系上起着协调的作用。
  6.新进入者们正在改变医疗健康
  例如,美国零售商店为响应消费者的需求开始提供初级医疗服务。提供廉价、快速、方便的医疗,一周七天,每晚都可(找一个初级保健医生成了一个挑战),服务包括接种疫苗、筛查和慢性病的管理,大多数零售诊所同意承保和以现金支付。逐渐地,诊所有了合作关系,当地的医疗保健系统,使他们能够共享数据和访问病人的电子健康记录。消费者不需要预约,直接输入在数字屏幕上输入信息,就能在几分钟内接受治疗。

三个对中国国籍法的重大误解 -- 中国国籍法实际已默认双重国籍

三个对中国国籍法的重大误解 -- 中国国籍法实际已默认双重国籍

中国国籍法实行三十年来,由于并没有一个明确的实施细则,造成了人们的很大误解,每个人都根据自己的理解去解释国籍法,来对自己的情况作出判断. 而因为大部分人并不是法律专家,结果造成很多流传甚广,以至于大家都普遍接受的错误结论, 很多人甚至稀里糊涂的以为自己丧失了中国国籍. 最主要的误解是以下三个: 
1. 一个中国公民加入外国国籍后,即自动丧失中国国籍;
2. 本人在外国出生时具有外国国籍的,即不具有中国国籍;
3. 中国国籍法既不承认双重国籍,也不默认双重国籍.

笔者做为一名具有十多年执业经验的律师,在这里对以上重大误解进行一下解释.

1. 一个中国公民加入外国国籍后,即自动丧失中国国籍:
这一误解,是基于对中国国籍法第九条的规定: '定居外国的中国公民,自愿加入或取得外国国籍的,即自动丧失中国国籍'。实际上,根据这一规定,自动丧失中国国籍,要具备两个构成要件:第一,本人已经定居在外国; 第二, 本人自愿加入或取得外国国籍. 如果只具备第二个条件,而本人并未定居在外国,则并不会因为加入或取得外国国籍而丧失中国国籍. 定居可以有很多解释,而中国国籍法对定居并没有清晰的界定. 有很多海外华人,虽取得外国国籍,但并没有决定定居在外国,甚至在取得外国国籍后,便很快回中国发展,这样的情况,便不会丧失中国国籍.那么,读者可能会问,中国国籍法第三条不是明确规定中国不承认双重国籍吗,这样的情况是不是和国籍法第三条的规定矛盾? 回答是,不矛盾,因为第三条只是说不承认双重国籍,也就是说,中国对该中国公民获得的外国国籍不予承认.所以,如果你并没有定居在外国,而通过某种途径合法取得了外国国籍,在中国政府眼中,你还是中国公民,并不具有外国公民身份.

2. 本人在外国出生时具有外国国籍的,即不具有中国国籍:
 这一误解,是基于国籍法第五条的规定:'父母双方或一方为中国公民,本人出生在外国,具有中国国籍;但父母双方或一方为中国公民并定居在外国,本人出生时即具有外国国籍的,不具有中国国籍'。对于这一误解,最典型的例子,是留学美国的中国学生,他们在美国所生的子女,根据美国法律的规定,自动具有美国国籍.因此,很多人便认为他们的子女并不具有中国国籍. 这是完全错误的. 实际上,根据第五条的规定,'本人出生时即具有外国国籍的,不具有中国国籍' 是有条件的,条件就是'父母双方或一方为中国公民并定居在外国'. 如果本人出生即具有外国国籍,但父母任何一方都没有定居在外国,比如父母为留学生,则本人同样具有中国国籍,再根据第三条的规定,其获得的外国国籍中国不予承认.

3. 中国国籍法既不承认双重国籍,也不默认双重国籍.
近来,很多人呼吁中国政府即使不能承认双重国籍,但可以象很多其他国家一样,默认双重国籍. 默认双重国籍的意思是说, 中国公民可以获得外国国籍,但中国政府并不予以承认, 除非本人正式声明放弃中国国籍. 实际上,这一呼吁是不必要的,因为根据对前面两个误解的解释,中国国籍法已经默认了双重国籍.

另外,中国国籍法第十条规定, '中国公民具有下列条件之一的,可以经申请批准退出中国国籍:一、外国人的近亲属;二、定居在外国的;三、有其它正当理由'。但是一个隐含的条件是,该中国公民已经通过某种途径获得了外国国籍,否则, 如果该中国公民在未获得外国国籍前, 便申请退出中国国籍, 便会出现一个荒唐的结果: 他将在申请批准后,变成一个无国籍人. 结合中国国籍法第九条的规定,我们便得出结论: 如果本人定居在外国,并获得了外国国籍,虽然会自动丧失中国国籍,但在程序上,还必须经过正式申请得到批准后才能生效,因为本人是否定居,是确定是否丧失中国国籍的法定条件,需要在申请中进行详细审查, 如果申请人确能证明自己已经定居外国,便可以认定该申请人已自动丧失中国国籍,可以对其退出中国国籍的申请予以批准,但在批准生效之前,还将被看成中国公民来对待. 实际上, 这已经等同于默认双重国籍了.

其实,中国国籍法还有许多模糊不清的规定,时间限制,暂时先做以上澄清.

后记: 实际上中国国籍法有很多混乱和自相矛盾之处.以上的解释,是最合乎逻辑的理解.不过,这部法律是三十年前制定,文化大革命刚刚结束,当时法律制定者的法律水平,可想而知. 而且中国当时对外交往才刚刚开始,这部法律也没有什么用处,制订者在当时也并没有认真对待这部法律. 所以,直到现在,连一个实施细则都没有,以至于这部法律在实施中,非常任意, 问不同的大使馆,不同省市的公安出入境部门,以及在不同的时间(或不同的领导),都可能得出不同的回答. 当务之急,是拿出一部详细的实施细则,对国籍有关问题作出详细而权威的解释, 对实施中以及法律本身的混乱予以澄清.

中华人民共和国国籍法

(一九八0年九月十日第五届全国人民代表大会第三次会议通过)








   第一条 中华人民共和国国籍的取得、丧失和恢复,都适用本法。 

   第二条 中华人民共和国是统一的多民族的国家,各民族的人都具有中国国籍。 

   第三条 中华人民共和国不承认中国公民具有双重国籍。 

   第四条 父母双方或一方为中国公民,本人出生在中国,具有中国国籍。 

   第五条 父母双方或一方为中国公民,本人出生在外国,具有中国国籍;但父母双方或一方为中国公民并定居在外国,本人出生时即具有外国国籍的,不具有中国国籍。 

   第六条 父母无国籍或国籍不明,定居在中国,本人出生在中国,具有中国国籍。 

   第七条 外国人或无国籍人,愿意遵守中国宪法和法律,并具有下列条件之一的,可以经申请批准加入中国国籍: 

  一、中国人的近亲属; 

  二、定居在中国的; 

  三、有其它正当理由。 

   第八条 申请加入中国国籍获得批准的,即取得中国国籍;被批准加入中国国籍的,不得再保留外国国籍。 

   第九条 定居外国的中国公民,自愿加入或取得外国国籍的,即自动丧失中国国籍。 

   第十条 中国公民具有下列条件之一的,可以经申请批准退出中国国籍: 

  一、外国人的近亲属; 

  二、定居在外国的; 

  三、有其它正当理由。 

   第十一条 申请退出中国国籍获得批准的,即丧失中国国籍。 

   第十二条 国家工作人员和现役军人,不得退出中国国籍。 

   第十三条 曾有过中国国籍的外国人,具有正当理由,可以申请恢复中国国籍;被批准恢复中国国籍的,不得再保留外国国籍。 

   第十四条 中国国籍的取得、丧失和恢复,除第九条规定的以外,必须办理申请手续。未满十八周岁的人,可由其父母或其他法定代理人代为办理申请。 

   第十五条 受理国籍申请的机关,在国内为当地市、县公安局,在国外为中国外交代表机关和领事机关。 

   第十六条 加入、退出和恢复中国国籍的申请,由中华人民共和国公安部审批。经批准的,由公安部发给证书。 

   第十七条 本法公布前,已经取得中国国籍的或已经丧失中国国籍的,继续有效。 

   第十八条 本法自公布之日起施行。

Sunday, 22 March 2015

再也不上Facebook 立此帖为证

再也不上Facebook 立此帖为证

癌症过后,他决心用 iPhone 讨回健康


health
2011 年,MacStories 的博主费德里科(Federico Viticci)被确诊患上了“霍奇金淋巴瘤”,也就是俗称的淋巴癌。他详细地记录了自己与病魔对抗的历史——实际上,作为一名 MacStories 的读者,我很难想象那一篇篇评测是出自他的病床上。然而,事实如此,他在病床上学会了简单的 Python 编程,并测试了应用 Pythonista。
2012 年费德里科接受化疗。到 8 月,淋巴癌没有丝毫好转的迹象,于是医生建议采用更加现代、激进的化疗方式,吞服更高剂量的药物,彻底摧毁自己的免疫系统,然后再利用自己的干细胞“重建”自己的免疫系统。结果是,他躺在病床 10 天,不能吃也不能动,那时他心情很绝望,以为自己很快就不存世上。他甚至将网站的密码告诉了女朋友,有备无患。
2013 年,他在个人博客记录,再次接受 PE 检查后情况不乐观,最后写道,“致那些告诉我不能活下去的肿瘤学家们:去你丫的。”
费德里科承认自己以前的生活方式不健康。他长时间坐着,不怎么运动,经常抽烟,呼吸不到新鲜的空气,周六晚又会在酒吧里泡通宵。所以从 2014 年 6 月开始,他利用各种各样的数字工具,记录自己的方方面面,包括健康状况、生活习惯、饮食、休闲、工作、家庭、睡眠等等。而因为费德里科是 iPhone 用户,所以他主要通过苹果的手机,以及上面的应用,帮助自己建立健康的生活习惯。——如果有 Android 用户用手机建立健康生活习惯,其实也是一样的。
费德里科购买了 Fibit 和 Jawbone 的手环,Withings 的智能称,测试了 MyFitnessPal 和 Lifesum,还注册了 FitStar,另外他还使用 iOS 8 的 Health,总之为了帮助自己建立健康的生活习惯,他使用了大量工具,而且付诸行动。
经过 9 个月的调整,他骄傲地说,“我宣布,我感觉比以往都要强健。”

散步

在这 9 个月的时间里,他首先建立的习惯是散步。为什么不是跑步?因为他的股骨头曾经坏死,现在正恢复当中,跑步太激烈会对恢复造成影响。
在开头的数月里,他是在一个跑步机上行走,每天大概走 5000 – 7000 步,戴着 Jawbone Up。不过,他更喜欢在下午的时候,陪女友去市场买东西遛狗,真正在室外散步。这能够给他带来更积极的影响,比在跑步机上走半小时,但在室内坐一下午强得多。
Photo-2015-03-02-22-50
如果浏览单独一天的计步量,费德里科会用一个叫 Pedometer++ 的应用,它会从 M8 协处理器读取当天的步数,然后用柱状图显示出来,同时在图表上用一根绿线表示每天的运动目标。费德里科也会用一个叫 Today Steps 的应用,它的界面简单明晰,也可以一眼就知道自己运动量如何。
费德里科使用 iOS 8 内建的“健康”应用来通览与健康相关不同的数据。主要是苹果发布了 HealthKit 之后,“健康”就可以引入第三方健康应用的数据,包括步数、卡路里、爬楼数、心跳、摄入的糖分等等,分类十分详细。
Photo-2015-03-02-22-45
“健康”采用卡片式设计将不同数据展示出来,数据的变化直接显示在卡片上,而不同类别的数据会用不同的颜色来表示,比如说咖啡因摄入量用绿色,而睡眠时间用蓝色,通过这样的设计,人们可以一眼就看到不同类别的健康数据。
——费德里科说自己受够了分裂在不同应用里的数据,而且不同的健康类应用,包括 Runtastic、MyFitnessPal、Jawbone、Withings、Argus、Human 等等。如果你在这些应用里切换来切换去,过去的运动数据就无法继承。更烦人的是,许多健身类应用往往会推出一个硬件,希望可以锁定用户。所以作为一个通用的健康数据浏览面板,“健康”相当于解放了用户。
Photo-2015-03-02-22-49
费德里科说,在患上了癌症之后,每一天取得微小进步,都是一次狂欢。

锻炼

当费德里科的身体状况有了明显好转之后,他准备开始锻炼身体,减少坐着的时间。他选择 FitStar 作为虚拟教练,还买了月度订阅。
费德里科不打算去健身房,也不想买一大堆健身器材,他只想利用传统的锻炼方式,让自己变得强壮。另外,出于费用原因,他也不不打算请教练。
Photo-2015-03-02-23-12
FitStar 主要通过视频教导用户健身,有四个健身课程。费德里科喜欢 Daily Dose 和 Get Lean 这两个。前者是一系列 10 到 15 分钟的日常健身动作,而后者则是将目标放在燃烧脂肪、减轻体重上。FitStar 可以将不同的健身方式添加到每日健身课程当中,此外它还可以让人尝试不同新的锻炼方法。而且,它还聚合了其它健身课程,比如 Srava 和 Runtastic 赞助的 Date Night、Boot Camp。
费德里科喜欢 FitStar,因为它既有时间长达 30 到 50 分钟的锻炼课程,也有短到 10 分钟左右的基本训练课程。而且,正在进行锻炼课程的时候,除了当前正在进行的锻炼项目外,它还可以显示接下来的那个,以及当天会消耗多少卡路里。
FitStar 里的锻炼视频通常来自橄榄球明星托尼(Tony Gonzalez),专业人士,很了解人体。费德里科说视频里的教练总是能够知道学员们什么阶段的感受是什么,简直就好像有教练在现场一样。
一般费德里科会把手机放在地上或者桌上,然后参照演示视频开始锻炼,直到声音提示他停止为止,他在锻炼过程中不必一直盯着屏幕。另外,在锻炼过程中,你也可以暂停课程,稍微休息一下,让呼吸回复平稳,然后再继续开始。
每一个锻炼项目结束后,FitStar 都会让用户在“刚刚好”、“轻松”、“困难”三个选项中评价自己的锻炼。而锻炼完毕之后,它会给出一个报表,总结自己的锻炼状况。应用称,会根据用户的锻炼情况来调整锻炼项目的难度。
费德里科是如此钟爱锻炼,不顾安全方面的顾虑,以至于置于胸腔内的内植式输液管也都弄破了,最终通过外科手术把输液管给取出来了。——不管如何,费德里科觉得自己坚持锻炼,令自己的手臂和肩膀变得更加强壮,而腿的恢复状况也不错,可以更加自由的动作。

饮食

在意大利,费德里科发现自己很难用饮食追踪应用来计算自己每天摄入的卡路里。意大利面食、新鲜的蔬果、肉食可没有二维码!不过,他还是找到合适的方式,在煮饭之前去超市买相关的蔬菜瓜果,然后计算其中包含的营养物。
而经过 9 个月的使用,他发现,饮食追踪应用绝对没办法把卡路里的摄入量精确地计算出来。比如说如果吃了比较多的水果,摄入的纤维自然增加了。但混合了多种食物原料而炮制出来的意大利面如何计算呢?尽管计算不出来,但 100 克的意大利面还是 100 克的意大利面。而放弃了精确测量的努力后,他以一个更广阔的视角来看待饮食应用,记录自己的饮食轨迹,然后获得健康的饮食建议。
不过,有一次与朋友在外度假,当他迷惑于要如何记录自己的饮食的时候,被朋友们取笑。经历了这样的事情之后,他可以与朋友度过美好的时光,而不拘泥于量化一切。而他知道晚餐最好别吃意大利面,以及瞥一眼应用,看到它建议自己推荐水果沙拉。——而通过记录自己的饮食,他可以明确地知道自己身体对糖分、蛋白质会作出怎样的反应。
Photo-2015-03-02-22-57
而在尝试了好几款饮食追踪应用后,费德里科的选择是欧洲开发者开发的 Lifesum。它是一款免费增值应用,可以与将数据分享到 Health,拥有 iPad 版,而且还可以与 Withings 的智能称同步,跟踪自己的体重。
它将一天的饮食分为四种,早餐、午餐、晚餐、快餐。它可以扫描二维码,然后将食物记录到饮食日志里。它的食物数据库很庞大,足以代替一些识别不出来的产品。当你添加食物的时候,它会显示过去添加的记录,可以重复添加,而且,添加食物的重量时,它不会用含糊的量词把人弄晕,比如说“一大汤匙”之类,而是精确到克。
每类食品的成分,Lifesum 都会用图表的形式表示出来,比如说包含多少糖分、脂肪之类。费德里科通常用它来帮助自己决定吃什么,比如说是否吃意大利面、披萨,还是吃鱼或肉。
Photo-2015-03-02-22-58
每当统计完摄入了什么食物后,Lifesum 都会根据费德里科的饮食状况给出建议,尽管并不是那么详细。它会告诉费德里科,到底哪一顿吃多了,哪一顿吃少了。费德里科喜欢它的统计功能,因为可以知道自己的饮食习惯到底如何,了解跟踪并进行改进:
  • 卡路里(肉)摄入量:早餐 10%、午餐 33%、快餐 14%、晚餐 44%;
  • 卡路里(种类)摄入量:面包 37%、绿色蔬菜 19%。
通过 Lifesum,费德里科可以控制自己对红肉的喜爱,饮食结构变得更加平衡。而为了保护自己的胃,费德里科还想控制自己的咖啡摄入量。过去他一天要喝 8 杯,现在则想控制到 4 到 5 杯一天,而且永远不要空腹喝。为了达到这个目标,他下载了 Jawbone 开发的应用 Up Coffee,和其它应用一样,它可以量化数据,并展示目标。
每次费德里科喝咖啡之前,他都会打开 Up Coffee 然后进行记录。由于数据可以共享到“健康”去,所以一般他会通过“健康”来检查自己的咖啡因摄入量。
不管怎样,Lifesum、Up Coffee 以及“健康”都帮助他建立了更加健康的饮食结构,让他的生活发生很大的变化。

睡眠

6 年前,费德里科创办了 MacStories,他不得不承认在那之后自己的睡眠质量就变差了。他以为自己每天只要保持 5 个小时的睡眠就够了,然后其余时间都拿来工作。现在,他努力确保自己有每天 7 小时的睡眠时间。
而睡眠时间的增加令他的精力变得充沛,工作变得高效,即便完成多个任务也不感到疲惫,也不容易感到昏昏欲睡,他还有时间去散步,和陪伴自己的女朋友。
过去数月,费德里科通过 Jawbone Up 来追踪自己的睡眠时间。最近,他用 Pillow 来追踪自己的睡眠时间,因为它可以共享数据给“健康”。
Photo-2015-03-02-22-43
每晚到了睡眠时间,Pillow 都发出提醒,费德里科把它打开然后将 iPhone 正面朝下放在床上。Pillow 可以测试人在睡眠时的扰动,以及记录鼻鼾。它还可以播放音乐助眠。当人醒来之后,Pillow 会咨询用户心情如何,再用图表的方式来展示睡眠的质量。
除了分享数据到“健康”,Pillow 还可以从“健康”中读取相关、不同类别的数据。这是很有趣的部分,因为它能展示出睡眠质量好不好,与个人生活的关系——如果说睡得好,那么那一天的饮食也会比较健康,卡路里摄入量就会变低;而睡得差,人就变得很渴望快餐。

可视化

经过 9 个月量化自己的生活,并培养健康的习惯,费德里科希望“健康”应用可以变得更加可视化,而且给出真正有效的建议。他希望 iPhone 可以内置一个个人健康助理。
现在,有许多应用可以读取“健康”的数据,并用可视化的方式展示出来。
FitPort 是费德里科的选择之一,它可以根据不同的类别的健康数据,生成环状图,而且可以设立目标。此外,进入了每日、每周的统计页面时,可以统计平均数据以及提供相关预测。每当费德里科想获得更多信息的时候,他就会打开 FitPort。
Photo-2015-03-03-15-58
费德里科还会用 Get Moving 展示每天的活动量。这款应用会用可视化的方式告诉你每天活动的时间,距离,以及燃烧了多少卡路里。它还可以统计每天不活动的时间有多长。费德里科喜欢它的每周统计视图。
Photo-2015-03-02-22-50
关于体重数据,费德里科会用 Withings 开发的 Health Mate。每天早上,他都会称一下自己有多重,然后再通过软件回顾。这款应用可以将数据共享给“健康”,它也可以自己形成可视化的图标。另外,费德里科还养成了用 Health Mate 测量心率的习惯。
Photo-2015-03-03-04-18
数据记录下来了之后,费德里科更加希望出现根据这些数据进行深入分析,明白数据之间关联性的人工智能。比如说,当一个人吃了更多的蔬菜而不是肉的时候,是否意味着睡眠质量可以得到提高?以及说,哪个地点更加适宜散步?还有咖啡因摄入量与睡眠的关系是?
于是费德里科尝试了 Lark,这是一个会根据“健康”记录的数据,然后自动为人提供建议的应用,界面感觉像是 IM,建议会以文字信息发出来。不过,最近这款应用有 Bug,日常记录里会一直显示“载入数据中”。
Photo-2015-03-03-04-00
相似的, Addapp 这款应用通过收集包括“健康”在内、Withings、Jawbone 以及 Fitbit 的数据。而它还会人推送不同的健身 blog 以及科学研究。
Photo-2015-03-03-03-57

最后

在费德里科的例子上,iPhone 成为他数字健康的中枢,不管是散步、锻炼、饮食、睡眠,他都可以在 App Store 当中找到相对应的应用,而且这些应用将数据共享给“健康”,其它应用也可以通过“健康”利用到这部分数据。而更重要的是,作为一名淋巴癌患者,费德里科的确通过数字工具找到平衡的生活方式,从而让自己的身体变得健康,让生活变得健康。
我相信,这是非常有益的启示。

华大基因王俊:IT 与 BT 融合引爆产业

  谢谢市长,今天我演讲的题目叫做“IT和BT融合产业的爆发点”,这个题目本来不是我选的题目,我选的题目本来叫“生命的语言”,但是最后被组委会否了。我是一个做基因科技的人跑到IT领袖峰会来讲,所以我必须有一些题目能够反映IT,所以我改了一个题目当BT遇上IT谁会爱上谁。后来我的助理告诉我不能用这个题目,一定会被打回来,然后我就想了一个一定不会被打回来的题目。虽然这个题目听起来平淡无奇,但是一定会过审批。我这个人比较固执,所以我还是很愿意讲一讲生命的语言,为什么用生命的语言来阐述今天的题目?
  当我们讲数字化的时候,讲计算机,讲IT,习惯于以硅为体系。但是在讲到生命的时候是以碳为体系。生命的基础是碳,生命是数字化的,为什么讲生命是数字化的?它能够储存吗?能够编程吗?能够用不同的程序改变来实现不同的生命形式吗?可以做克隆吗?行还是不行?当然是行的,我们是很容易做克隆的。它能存储吗?能,为什么能那么简单从一个羊身上提一个细胞变成另一个羊呢?因为那个羊的细胞储存了所有羊的生命程序。一个巴掌大的DNA可以储存多少年呢?事实上可以达到上亿年的储存时间,最起码可以上百万年。现在没有任何一种存储介质可以把这样的信息载体储存上百万年的时间,所以DNA是可以存储的。他能够计算吗?当然能够。因为计算和编程最核心基本单位是基因,基因是生命体最基本构成单位。我们每个人身上蕴藏所有信息组合就是一套生命信息基本程序,这套基本程序就是生命的语言。它的语言怎么形成的呢?在最开始的时候,就像每个程序员写出一个功能模块希望所有人都用他这个功能模块一样,在生命体里形成一些基因、一些蛋白质、一些小分子,基因、蛋白质、小分子也希望不断扩张自己,在不断扩张自己同时,其实在美国有一本书非常出名,整个不断过程就是不断复制、不断扩张、不断延展,有时候发现一个基因并不够用,可以和其他基因一起合作,两个基因、三个基因一起合作更好的时候,当一堆基因合作更好的时候,就形成个体。我们人身上有2-3万个基因,水稻有5万多基因,不同物种有不同基因,比如我们现在看到一个酵母菌用4000个基因,所有不同基因组合形式不同的生命程序,不同生命程序就形成你这个个体与周围环境适应。你的每一套程序代表着不同的生存策略,这套不同的生存策略事实上针对于不同环境体系而来。在他检查你的程序到底好用不好用唯一标准就是你这套程序能不能活下去,传播更多后代。当你选择传播更多后代的这套程序就叫做可以适应于这套环境的生命语言。所以我们看见所谓的达尔文进化学说、适者生存都是这个基础上建立,我们每个人更基因信息的载体,每个人跟微小虫子相比都发现了相似性,很多基因从那儿传到我们身上。
  对于个体来说也是一样的,每个人一套生命程序也是不一样的。为什么西藏人可以高山适应,为什么我们上了高原有非常强的高原反应,是因为身体一套程序没有写进高山适应的基因,藏族人有一套基因,有这个基因的人群可以在高原体系上没有反应,像我们在上面就不行。在汉族人体系里就只有5%人有这个基因,而藏族人达到95%。这样的东西不仅仅单纯存在在西藏特别复杂极端的环境里,还有很多东西跟饮食相关,比如南方傣族人因为在祖先经常吃槟榔,所以体内基因很多跟槟榔适应。等等。我可出举很多例子。这是个体水平的变化。个体水平为什么会变化呢?为什么西藏人跟汉族人不一样呢?它的分支到底怎么回事?其实他背后有很多有意思的东西。比如说它的变化来源是什么?当我们考虑一个精子、卵子结合的时候,他发生了重组,每一代当中,你孩子和父母之间有100个基因突变,这些基础就形成不同生存策略,环境在时时刻刻变化、基因在时时刻刻变化,基因组是预测程序。你身上基因是因为你祖先上千年、上万年不断学习、进化,对你后来有可能遇到的环境的预测。你体内基因不会告诉你去不去高原,但是一定会告诉你去完高原会有什么反应。这是非常有意思的假设。如果每个人生下来就有一个盒子,这个盒子清楚告诉你往哪去、会发生什么样的影响,他如何指导和我们生活呢?首先第一个问题,如果我有一个盒子,编程告诉我能活多少岁。有人说你的基因,如果你做真正很好的遵循基因告诉你的事情,你可以活到150岁,但是为什么活不到150岁?因为你会得各种各样的病,这些病从年轻的时候开始一直到年老都有关系,而这些病跟基因有什么关系、或者跟环境、跟数字化、跟IT、BT有什么关系呢?我通过几个方面解释。
  基因里面的毛病有点像写程序的时候出了一个bug,出了bug,基因程序运营不了,在有时候就出现很严重的问题。比如各种各样罕见疾病。有罕见疾病的一般生存周期都非常短,我们有各种各样例子,这种罕见疾病听起来非常罕见,但是加起来一点都不罕见,中国有大于5.6%的孩子出生有各种各样的出生缺陷,非常大的。生命程序不断试代码、试代码过程中不断试错,当然每一个错误并不是代表新的往前演化的可能。对付他们我们该怎么办?华大经常收到这样的东西,这是一个血书,从一个鱼鳞病患者写给我们的,他们有一个组织,这样的组织有很多,比如瓷娃娃协会等等,这一个鱼鳞病患者的妻子写的,他希望能够把这个病变成可防可控。现在这个夫人生了一个孩子,幸运的是没有得这个病。就是因为通过基因检测了这个程序。当孩子出身之前,我能不能做一些检测,早点发现有什么问题,早点控制,当然可以。这是第一个。我能不能先查一下你的父亲、母亲有没有基因突变,如果有,你们生孩子概率有多少,如果这样的话,以后就不要配八字了,谈恋爱结婚之前先配一下基因,看生命基因程序是不是匹配。我们一般在教堂宣誓都这么讲,无论是疾病与否、健康与否都一辈待在一起。两广福建地区地中海贫血携带率差不多19%,如果有两个携带者的夫妇结合在一起,生了地中学贫血孩子的可能性非常大。我们可以人工受精,做一个移植前检测,移植前检测在中国很多医院已经开展了。再往下一步,如果怀孕了怎么办?怀孕两到三个月之内可以对孩子进行完整基因检测,尤其是针对非常罕见的基因性疾病,通过这些筛差可以达到出生前防控。如果再往下走,新生儿出生了还需不需要检测?中国耳聋发生率很多是因为错用抗生素,如果体内基因不能受链霉素这个抗生素,一下就耳聋。如果早一点知道他得各种各样的心脏病、耳聋,包括自闭症风险,我们是不是可以早一点干预?是可以的。我们能不能治呢?除了用一个非常可变的信息看这些东西之后,我们又有一个非常疯狂的想法,能不能通过大数据挖掘发现一些罕见病真正解决方案呢?答案是可以的,非常有意思,我们有一个计划,搜索了100万人基因数据,寻找那些单纯从基因校对来讲他应该单基因疾病,但是非常健康,这些人我们叫超级英雄,这些人非常有意思,他们体内有非常明确的致病基因,但是非常健康,为什么?因为体内有另外一套基因保护他。就像程序我一段出现bug,但是有另外一段修复,就非常健康。如果找出那一段是什么,也许可以找出罕见性疾病的药物。我们以后不要再去浇冰桶,这是道义上的支持,更重要的支持就是基因测序。
  再往下走是肿瘤,很多人面对肿瘤威胁,肿瘤是你生存过程中由于环境因素影响,你的基因程序在变异,所有细胞都来源于第一个细胞,受精卵细胞,从那个细胞开始每次都会引发程序变化。不同环境影响会导致程序非常大不同,比如抽烟增加肺部细胞变异率。用简单IT方式来讲,是你生命程序那段代码被黑客给黑了。黑客黑的概率会随着环境因素不同而变化,如果经常抽烟,如果经常生活在不好的环境里,深圳是非常好的。或者受到各种各样病毒感染,可能程序被黑。怎么办呢?其中有可能一个细胞发生被黑了,没有关系,有人说我身体有上亿个细胞。但是如果一个细胞被黑了,他很有可能获得比其他细胞更强的适应性,他可以不断扩张。从一个肿瘤细胞发生到你最后你可以用CT扫描能查出来,平均要15年。也就是15年内体内有肿瘤细胞你不知道,我们能不能早点发现他,答案是可以的,因为所有细胞最终都要游离到血液里,我们通过非常深度的基因检测可以看到你体内有没有肿瘤细胞。
  我得了肿瘤怎么办呢?每一个人的肿瘤,每一个个体,肿瘤每一个细胞的基因都不一样,你做的事是对所有细胞真正基因监测,而不是简单的手术一切、放疗、化疗,这样的治疗有可能在未来两三年内看到飞速发展。如果所有努力都是为了增加肿瘤患者生存概率,那还有另外的我没有提到的,但是大家非常关注的,比如慢性疾病、感染性疾病,其实万物都是跟基因有关系。我的体内细胞如果以人为一个整体的话,作为人这个个体的细胞只占人体的细胞的1/10,还有9/10是各种各样的微生物、各种各样病毒,你天天洗两次澡都没有用。你吸收一个半小时候所有细菌都回来了。这些微生物并不是都是坏的,比如微生物体内病源微生物会形成什么影响?所带来影响是非常大的,比如埃博拉病毒、SARS病毒,90%发烧腹泻你根本不知道怎么回事。小于1%微生物可以被培养,你根本没有办法搞明白到底什么让你发烧、什么让你腹泻,你可以所有DNA提取出来,一个小时内就知道到底怎么会感染。早一点这样做,就可以早一点摆脱疾病风险。
  还有另外一个事情,高血糖、高血压三高,30年前中国糖尿病发生率0.67%,现在已经接近11%,1/4中国成年人要么得糖尿病、要么要得糖尿病,不可能是基因在过去30年有非常大的改变,是因为饮食变化、环境变化,引发肠道微生物菌群失调,很多疾病都跟这个有关系。你能怎么办呢?比如少吃碳水化合物,比如多运动,再来一点猛的,查完之后,缺什么微生物就补什么。如果补一两个不管用,把你认为健康的体内的微生物转给你就行了,怎么管?粪便移植,这样的东西已经逐渐在医学界应用了。我们应该做的是一个鸡尾酒疗法,确保你体内是符合真正健康的菌群体系,最终我们要完成这个生命公式,自己的基因、环境因素的基因,各种各样的东西,右边是你表现的状况,身高、体重、各种各样的病理特征、健康与否,中间的公式怎么写呢?这个时候就体现了刚才吴恩达老师讲的题目,我们只知道一个城市的输入端、输出端,中间是怎么编程,毫无所知。该怎么办呢?大数据,健康大数据取决于把所有输入端、输出端全部计算清楚,如果研究清楚身高基因的关系,需要100万人。要研究清楚绝大部分复杂疾病和基因以及环境的关系,需要100万人。你需要把100万人各种各样信息全部搜集,才能得到刚才讲的生命公式。
  用什么方法呢?这种方法到底贵不贵呢?这种方法非常昂贵。1999年中国华大基因参与了1%人类基因组计划。当时测序需要10亿美金,最近已经降成1万美金,仍然很贵,要搜集100万人的数据仍然很贵,现在可以做到1000美金,我估计明年会推出一个500美金可以测定一个人的完整基因。这就可以搜集基因数据。什么时候可以免费呢?免费实施的到来事实上在于基因本身的数据价值远远大于产生他的数据所需要的成本。对于华大来讲这样一个趋势延续我们认为在2019年左右,5年左右时间我们可以真正达到这样的结果。除了这种基因数据之外,我们知道现在比较时髦的词,物联网,收集各种各样输入输出数据,比如未来厕所将是智能厕所,当在厕所方便,所有代谢物、蛋白质数据等等数据都收集起来,包括躺在床上各种各样的体征数据、坐车等等各种数据都收集完成后,你一定要记得要把他们连起来,为什么讲基因组网络那么重要,所有在座的人、所有的男人12万年前来源一个男人,所有女人12万年前来源一个女人。我们的科学研究发现所有都来自一个人,这是什么概念呢?有人说这是亚当和夏娃,中国70%汉族人追溯到6000年前就三个人,炎黄蚩尤。所有东亚人,40%东亚人追溯到之前就11个人。如果把每个人数据都连起来,形成基因组网络,将是不可估量,我们讲互联网。IT互联网企业,超级计算机,个人电脑,真正成了不可估量的机会。每个人在上面产生数据和支持,基因组是一样的。人因基因组计划,每个人的基因计划,当所有基因组形成网络,我们有一个网站叫同病相怜网站,当所有病人组合了一个网站,我们就可能有机会把这个基因和病之间的关系搞清楚,在上面会形成各种各样的机会,这些机会、信息和知识是以前我们在没有做甚至一个个人基因组是不可想象的。最终要做的是需要人工智能来学习,因为这么大的量已经不可能用一个单一模型来解决。而华大已经在做很多事,这些事听起来像天方夜谭,我们做了3000株小米,在同一个地方测定各种各样生长条件,最后看出来他产量是多少、营养成分怎么样、各种各样结果,我们给他进行深度学习、人工智能方法,现在给定另外一驻小米,我有90%准确性可以预测他长的怎么样。对健康有这样的能力吗?当我们拥有100万人基因测序的时候,离这样的能力很近。奥巴马提出一个精准医疗计划,就是要做100万人基因组库,当所有人完成后,我们会有一个水晶球,预测对你未来健康走向预知,而这样的预知很有可能再做一些改变,我们听过3D打印、细胞存储、基因编辑、我们听过合成生物学,喝的啤酒的酵母将不是自然界酵母,而是计算机写出来的,酵母产生的啤酒味道也许比你现在喝的任何啤酒味道都要好。还有,生命信息的存储,我们都叫干细胞,干细胞什么意思?就是年轻时候的生命信息,你不是想年轻吗?在你年老的时候能不能把年轻时候的信息再回到,也许就年轻了。所有像科学幻想的东西都在生命科学界在以飞速方式往前走。从健康角度,我们老说吃得好,活得长。对健康追求不是感性愿望,对我们来说对在座IT大佬来说更重要是理性追求,如果真正基于一个所谓人工智能方式、大数据处理方式,能管理健康、掌握预测的程序和健康关系,也许是真正最有意义的,基因科技最能够带给人类的福祉,自然以山清水秀为美、人以健康长寿为福,所有华大应该追求的目标就是基因科技,造福人类。如果简单说一下华大,华大是全球最大的基因组中心、最大的生物信息中心。掌握了只有5500人,我们平均年龄27岁。华大机构遍布60多个国家,同时是国家基因库承办单位,国家基因库存储各样生命信息体。
  当我们定义一个生命的时候,其实我们讲不清楚,如果在未来计算机体系里面给他有很多很多生命逻辑,他会变成一个生命体吗?如果我们计算大脑已经可以跟人脑匹配的时候,它有生命性吗?当我们拥有改变人类基因的时候,我们是怎么应该控制我们这种能力?所有这些东西都非常值得大家思考,作为另外一个纬度的IT人,在座各位是硅基因维度的,我是碳基因维度的,作为另外一个纬度的,我希望给大家带来的不仅仅是对生命认知,而且是对健康认知最佳理性的选择。谢谢!