一声叹息:两台服务器是为失败者准备的

2012-02-27

一、

总裁:“我们不需要两台服务器”

我:“可是我们需要双机备份”

总裁:“两台服务器是为失败者准备的,优秀的团队绝对不允许任何一台服务器出问题”

我:“唉…”

二、

领导:“我们的外网网站应该支持IE8”

开发:“我们需要安装IE8才能测试

领导:“技术支持部门会为你们测试”

技术支持:“我们不支持IE8”

开发:“我们需要安装IE8来测试

领导:“你们不允许安装未经批准的软件

开发:“唉…”

领导:“为什么我们的外网网站还没有支持IE8?”

三、

技术总监:“我们要准备把我们的MySQL换成SQL Server。”

开发人员:“这是出于什么目的?一切都运转良好呀,而且买SQL Server需要花费¥¥¥…”

技术总监:“因为MySQL不是‘企业级’的。”

唉…

四、

一个同事在写单元测试。当运行起来后,他发现有个测试断言失败了。他如何解决这个问题?他把它给删了,因为“没有人会注意到这些”。

唉…

五、

老板:我们需要在这放一个cookie——他指着屏幕。

我:什么?

老板:在这放一个cookie——他再次指了一下屏幕。

我:呃…

技术负责人:他的意思是一个下拉列表。

六、

我:在我们把这些屏幕截图通过网络送出去之前应该用ffmpeg工具包把它们压缩一下…

团队负责人:谁打算去学习这些没有文档的api?我们先用多线程技术直接发送数据…

我:这样可能数据量太大…

团队负责人:没错,先干着。你抽空在“业余”时间研究一下那个api。

团队:哈哈…

….. 一个月后,多线程版的实现了…

团队:局域网上运行表现非常好…放到WiFi网络上试试

…. 由于数据延迟,慢的像蜗牛…

团队负责人:你有没有在业余时间研究一下那个ffmpeg?

我:唉…

七、

我知道,我们需要用 pngquaint软件 压缩60多个总共20多兆的PNG图片。

pngquaint软件崩溃了,怎么回事?

研究发现,这些PNG文件实际上是JPG文件,只是名称被改成了PNG,不知道之前那个程序员她想干嘛。

唉…

本文转载自: 外刊IT评论 http://www.aqee.net/

亲爱的老板:程序员的10分钟就是3个小时

2012-02-07

国外程序员艾德·韦斯曼(Ed Weissman )从业32年。某天老板告诉他产品有个问题,10分钟可以修复问题,谁知结果一干就是3个小时。本文就是艾德记录下的过程。

 

10:48

老板:嗨,艾德,苏在底特律说,“产品历史屏幕”上经常出现错误的发票号码(Invoice Part Number)。你能帮我们搞定这个问题么?

艾德: 我现在在忙其他事。你到我的任务队列中提交一个ticket吧。

老板: 这事10分钟就够了。

艾德: 你确信么?

老板: 嗯,确定。我一会开个网络会议。苏会演示给你看,然后你有空的时候再仔细看看。

艾德: 好的。

老板: 嗯。去你的 Outlook 中查收(会议)邀请吧。 阅读全文 »

Dear Boss: For a programmer, 10 minutes = 3 hours

2012-02-07

Dear Boss: For a programmer, 10 minutes = 3 hours

http://edweissman.com/dear-boss-for-a-programmer-10-minutes-3-hours

 

10:48

Boss: Hey Ed, Sue in Detroit says that sometimes, the wrong Invoice Part Number is showing up on the Product History Screen. Can you help us figure this out.

Ed: I’m busy with something else at the moment. Put the ticket in my queue.

Boss: This will only take 10 minutes.

Ed: Are you sure about that?

Boss: Yes. I’ll just set up a web conference. Sue can show you right away, then you can look into it when you have time.

Ed: OK.

Boss: Great. Check your Outlook for an invite.

阅读全文 »

转载:节油小贴士

2012-02-03

节油小贴士:

1、避免急加速、急减速

    很多车主会在堵车的时候,见缝就插。经常强行超车、挤车,当超不过去时就大力刹车。这样的驾驶习惯不但会增加油耗,更不利于行车安全。

2、避免反复启动发动机

    有部分车主会堵车的时候短暂关闭发动机,认为这样做可以减少油耗。其实这样的做法有待商榷,发动机正常启动一次所消耗的燃油量,可以供车辆行驶300米左右。

3、大油门起步

车辆采用大油门起步还是小油门起步,在实际驾驶过程中对车辆油耗的影响是非常明显的。相反,从加速效果来看,无论采用哪种起步方式,实际区别不大。

4、不要拖挡行驶

    车辆行驶时,只有选择合理的档位,才能使行驶阻力与牵引力达到一个平衡。使车辆平稳行驶,降低油耗。

5、减少车内无谓的重量

    很多车主喜欢在车内放置大量的矿泉水、杂志、车用保养产品、备用机油、备用防冻液等。这些东西会一定程度的增加车辆的重了,消耗更多的燃油。并且还长期占用了车辆的储物空间。

6、保持正常的胎压

    胎压过低,不但会使车辆轮胎的磨损增加,而且会很多程度的增加车辆的行驶阻力,增加油耗。

FROM:http://www.autohome.com.cn/drive/200904/57901.html

软件开发的“三重门”

2012-01-31

出处:http://coolshell.cn/articles/6526.html

自从上次写了“程序员技术练级攻略” 以来,就觉得似乎还有很多东西没有谈到,但当时没有继续思考了。而春节前有人问我,是做底层技术,还是做业务。这问题让我思考了很多,不由自主地回顾了一 下我这十多年的软件开发经历,并顺着整理分类了一下自己解决过的若干问题,还发散想了很多,经过了一个春节假期的发酵,产生了下面这篇文章。

前言

这篇文章必然是通过我的个人经历来写的。所以,我先说说个人经历吧。我的经历基本分成三个阶段。

第一阶段:我 刚毕业时在家乡的某银行工作,做些银行的业务系统,还搞些网络,电子邮件系统,OA什么的,因为大四的时候在老师的公司里实习,银行里的人际关系太复杂, 而且技术都包给了产商,所以在银行的每一天都觉得不能适应里面的工作环境。两年后离职,单位分的房也不要了,直接去了上海,在上海呆了两年,本来想做互联 网的,但是泡沫来了,最终去了一家做系统集成的国企公司还是继续做银行业务。这四年来,主要解决的都是一些业务上的问题,银行里的会计业务,OA业务,国 际业务,中间对公业务都非常地复杂,而且因为当时的软件开发相当的不规模,所以基本上是在一种比较混乱的状态下度过的,而银行方面又很强势,所以,这段时 间主要是做业务。所以,技术上主要是积累了如何使用那些技术。C+/Java, Windows编程,Unix编程,网络编程主要是这段时间学的,看了太多的书(我大学课程里没有C++和Java,也没有Windows/Unix和网 络编程,所以,只能拼命地看书和自学)。

第二阶段:然后,我来了北京,到了一家做分布式计算系统的公 司,整天和一个高性能技术高可用性的企业级的集群式的软件产品打交道(这家公司去年被IBM收购了),在这家公司把Windows/Unix和网络编程有 了更深入的了解,对我长进比较大的是明白了怎么做一个性能高,可用性高的集群式的系统,天天和底层打交道,干了4年多。然后去了一家金融信息公司,这家金 融公司主要做全球的金融信息数据处理,而我主要还是做核心数据发布系统的性能调优的项目,金融数据的实时性要求的高,数据量非常地大,高可用性要求得高, 得想尽一切办法省网络带宽,增加系统性能,还要保持高的可用性,不当机,不丢包。又干了4年多,去的时候从国外接过来两个系统,其性能单机每秒可处理 120K message,我走的时候,我和团队把其优化到了每秒1.4M messages 的吞吐,另一个系统,从接手时的100k message/s优化到了500k message/s。这八年多的时候,全是在和这些高计算高性能的项目打交量,几乎没有什么业务,都是纯技术,积累到了很多和性能有关的高并发高计算系统 架构级的知识。

 

第三阶段:两 年前来到了现在的做电子商务的互联网公司Amazon,还是在做一个数据处理量很大的业务系统,因为要干的是要把电子商务全球化的东西。但是,因为电子商 务的特殊性,必需要去兼顾业务的特点,而且在Amazon,耳读目染了很多有趣的业务难题,比如,库存计划,配送优化,等等。虽然很多东西还不明白,但发 现,用技术来解决业务难题真是太有意思了。

我的这三个阶段,第一个阶段花了4年,第二个阶段花了8年,第三阶段刚刚开始2年不到,有时候我也去别的公司讲课,所以,我很有幸经历了中国软件开发的进化过程。我的经历就是中国软件行业进程的一个缩影,而我把这三个阶段称为——软件开发的三重门。它们分别是:

  • 业务功能
  • 业务性能
  • 业务智能

之所以加上“业务”二字,是因为我以为计算机是一个工具,其用来解决实际问题,所以,什么都离不开业务,就算是性能优化也一样,通过之前那篇“12306.cn的性能优化”中的“业务分析”段落,我们可以知道业务的不同,系统的难度和解决方法就可以不同。所以,我们总是用技术在解决业务问题。业务的形态对软件的开发有决定性的作用

下面让我具体描述一下。

一重门:业务功能

这 是软件开发的第一重门,也就是掌握可以实现业务功能的技术。通常分成三块:语言+系统+数据处理。在这个阶段,主要是能掌握各种技术,比如:开发用的各种 工具(如:IDE,XUnit,Debugger,等),各种代码库和框架(如:C++的STL,ACE,Boost,等,Java的 Spring,Hibernate等),各种系统知识(如:Windows API,Unix/Linux API,TCP/IP,Socket,多线程多进程间的同步、互斥,并发安全,还包括Web平台,移动平台,等等),还需要掌握数据处理的知识(如:数据 结构,基本算法,数据库设计,数据库引擎 ,SQL等)。

这个阶段主要是把这些不同的技术组织成可以实现业务功能的解决方案。重点是能掌握和使用技术。很多流程和方法论的东西基本上就在这一重门里。这重门主要解决的是实现问题

二重门:业务性能

业务的功能搞定了以后,就是业务的性能问题了。搞定功能并不难,搞定性能是有点技术含量的事。有句话不是那么说的吗——每个人都可以搞一个网站出来,但不是每个人都能搞出能支持百万级访问量的网站。但是,我看到很多技术团队或是工程师脱离了业务,只单纯地搞性能,比如:单台服务器支持10万个TCP链接的并发,等等。这些东西虽然在技术上有点意思,但是没有业务的环境,也只能是自娱自乐了。

我们可以看到一些企业开始注重这个问题了,性能问题也是最近被大家讨论得最多的问题,京东商场的性能问题,12306的性能问题,等等。

当然,所谓性能不并单单指系统的吞吐力,还指系统运行时的总体性能,比如,系统安全性能,系统的Accessbility的性能,系统的扩展性性能,等等,就像是前些天中“Web开发中需要注意的问题”一文中谈到的那些事一样。这表明着你对系统的全面和深入的了解。

在 这个阶段,需要对业务模型,数据流,业务流,系统架构,算法,和各种技术有深入的了解,要了解到本质上来。比如,在第一重门中,我们只需同要知 道,Java有同步关键字,在这一重门中,我们还要知道同步或互斥对性能的巨大伤害性,在第一重门中,我们只需要知道STL中的智能指针或是STL的用 法,这一重门中,我们还要知道智能指针中的refcnt的同步加锁对性能的损害,还需要知道STL中容器的size()方法在某些时候是性能很差的。在第 一重门中,我们需要知道hash表的效率,在这一重门中,我们还需要知道hash表的碰撞问题

最重要的是,在这重门重点是软件的设计问题。你需要有足够多的经验能比较不同设计方案的优缺点,比如TCP和UDP,同步和异步,epoll和select,push和pull,水平扩展的各种方案…… 还记得本站的那篇“程序员的谎谬之言还是至理名言”,广度是你深度的副产品。所以,这重门是看你的技术视野有多深有多广。

三重门:业务智能

这 重门可能是最难的一重门了,如果你能进到这重门里,你应该是科学家级的程序员了。让你有智能的业务,这个事可能是顶级的技术难题了。第一和第二重门都不算 难,这重门是最难的。参看Amazon的个性化推荐系统,或是Google搜索引擎的结果个性化推荐等等(比如我输入“黑天鹅”关键字,你怎么知道我要找 的是动物,电影,还是本书?怎么让搜索出来的结果排名即公正又可个性?),你就知道,用技术来解决这种类似的问题难度可想而知,不然就不会出现如 Hadoop之类的技术了。

我再举两个这重门里的业务方面的例子。

  • 一个例子是关于库存计划的,需要像天气预报一样 预测未来的销售量从而决定库存,所以,最简单的做法是,监测各个商品的销售统计,然后看一下最近的销售趋势,还要看一下往年的销售趋势(因为某些节假日会 是一个高峰期),还要分析一下大众的喜好变化,比如,在某影评网站上的某电影的热度其会告诉我哪个电影的DVD要滞销了,得打折卖,哪个电影的DVD要畅 销了,得多进货了。还可能需要监控新闻评论,比如某权威人士推荐了某个商品,那么我得赶快进货了。等等。这完全就是一门科学。
  • 还有一个例子是配送问题。我有一辆卡车要处理我仓库和配送站间的物流问题,我需要找到一条最经济的路线来在有限的时间内处理最多的物流。这个不是最短路径问题,这是个计划统筹学的东西。也是一门科学。

还有近期“方韩之争”里有很多人来分析文章相似度的技术,这些东西都属于三重门里的东西。

到了这重门里,可能技术反而不是重要的了,而是数学模型。这重门里主要是业务模型,数据模型和算法问题。这些东西和你的业务模型密切相关。能解决这样的问题,是真正的大牛。对于我来说,可能是高山仰止了。

后记

通过上面的说明,我们可以看到下面这些东西,

  • 一重门像是开垦荒地,二重门像是扩大生产,三重门像是精耕细作。
  • 一重门(业务实现)里聚集着大量的劳动密集型的企业,劳动密集型的企业通常都需要流程和方法论。敏捷过程改进这类的东西只在一重门里。
  • 二重门和三重门里只有少数不多的技术型的公司。这类的公司通常非常注重技术,并且是企业文化是工程师的文化。
  • 三重门里可以产生的创新和那些可以用来改变世界的技术。
  • 国内现在的情况是,一重门优化阶段 + 二重门的学习阶段。三重门里似乎还没有什么见术。不过,我看到一些公司已在尝试三重门的东西了。
  • 作为技术人员的你,如果你想跟上时代,让自己有价值的话,你至少要达到二重门。
  • 因 为国内的技术环境等不良因素,导致大量的程序员在一重门的时候就已经失去信心,或被大浪淘沙淘掉了,所以,二重门里的程序员比较少了,但是随着年轻的一代 和技术的日趋成熟,也会慢慢多起来的,我现在已经看到这个趋势了。而三重门里的程序员成了稀缺的大熊猫。因为大量的二重门程序员干到那个时候都转管理了。

我的这些言论不一定对,但希望能让大家有启发,有所思考。

:本来这篇文章的标题想取成“程序员要解决的三种问题”, 但是因为过年都在关注 “方韩之争”,所以,干脆取成了这个名字。你可以认为我比较调皮,也可以认为我爱ZB,还可以认为我标题党,反正,请随意理解。(这篇文章是我的自己写 的,没有代笔,因为你一定会在这篇文章中看到属于我的用五笔打出来的错别字,当然,我无法自证,哈哈)

转载时请注明作者和出处,请勿用于商业用途

4G演进路线

2012-01-30

G网4G演进路线:GSM->GPRS->EDGE->WCDMA->UMTS->HSPA->HSPA+->LTE->LTE_ADVANCE

GSM->GPRS->EDGE->TD_SCDMA->TD_HSPA->TD_LTE

C网4G演进路线:CDMA->CDMA2000 1x->EVDO Rel.0->EVDO Rel.A->EVDO Rel.B->LTE

可乐微博转载

2011-12-31

一哥们微博幽默可乐,集中转载几个,出处省略了~:

『10.9.8.7.6.5…1起床!东风一号跟踪正常,遥测信号正常,手机闹钟提示正常,内衣穿着正常,外套穿着正常,棉被展开正常,现在主体与床板分离,主体与床板分离…擦!失败了…』

 

你说中国人命贱吧,可一进医院,就贵得不行。

 

不要叫我程序员,请叫我:习惯将灵魂捆绑在键盘上裸奔到临晨三四点的二逼青年。

 

移动预存话费送油,还有机会抽奖日韩游…然后,有个叫韩游的人投诉移动了

 

农夫买了一盒耗子药,耗子吃了之后大摇大摆的走了。农夫找到商人,商人说:“你看下说明书,六盒一疗程”

 

仰天大笑开门去,一枝红杏出墙来。

数百条线程为何频繁断开,回调函数为何迟迟没有结果,……

2011-12-17

数百条线程为何频繁断开,回调函数为何迟迟没有结果,连环嵌套循环案,究竟是何人所为??诡异的bug背后究竟是人是鬼,传来的对象次次为空的事件又隐藏着什么?这一切的背后,是类型转换的错误,还是空指针异常。敬请关注IT年度巨献《加班的不归路》?让我们走进程序员的内心世界…

 

他人笑我太疯颠,我笑他人不会编。夜阑卧听风吹雨,无数bug入梦来。人生得意须尽欢,死到临头还加班。春蝉到死丝方尽,指针总是搞不定。需求变更能几时,一朝上线难寻觅。帝都亲友若相问,一夜通宵在搜狐。夜来电话声,bug知多少?无边落木萧萧下,不尽需求滚滚来。兴趣如果找不对,死磨硬泡也受罪。

 

^_^

 

转载不忘出处:http://my.oschina.net/wapdevelop,敬请前往围观~

 

纪念12.13!

2011-12-13

12.13南京大屠杀纪念日防空警报试鸣顺序如下:

10:00—10:03,10:18—10:21鸣放预先警报(鸣36秒、停24秒,反复三遍为一个周期);

10:06—10:09,10:24—10:27鸣放空袭警报(鸣6秒、停6秒,反复15遍为一个周期);

10:12—10:15,10:30—10:33鸣放解除警报(连续鸣3分钟为一个周期)。

 

12.13,尖锐的警报骤然响起,此时的你在做什么?在工作还是在家中,在上学还是在路上?

12.13,一个让人想起就要落泪的日子;

12.13,是这个城市最深的痛,是市民心中难平的疤痕;

12.13,我们更深地体会到落后之辱。

12.13,警报响起,我们不忘死难同胞的屈辱,但请不要停下行进的脚步;

12.13,最深的痛埋在心底,最努力的现在把握最美好的未来。

每当日历翻到12月13日,我们耳畔响起的是南京城上空那凄厉的警报声,我们看到的是面目狰狞的日寇举起了屠刀,我们听到的是三十万同胞惨烈的呼救声……

今天的我们站在这灿烂的朝阳下,在这宁静清新的早晨回忆那历史的瞬间,我们每个人的心还是忍不住地发颤。70年过去了,遇难的30万同胞们尸骨已寒,但历史难以忘记,历史更不能忘记!难忘那,战火纷飞中一双双渴求和平的目光在无情屠刀下的不瞑;难忘那,悲怆的哭喊,在血腥弹雨中嘎然而止。这国家的孱弱,民族的耻辱,叫我们怎能忍受,又怎能遗忘?

岁月的年轮沉淀了斑驳的痕迹,历史的记忆留下了悲壮的回声。如今,我们虽然身处和平,但我们绝不能忘记战争中的历史,决不能忘记我们肩负的使命,那就是发奋图强,振我中华!

http://bbs.smthome.net/simple/?t165085.html

 

转载:把爱和人性的光辉传递下去

2011-12-09

看到一个故事很不错,分享给大家。

两个选择,你会怎么做?请你作出你的选择,这不是什么机智问答。总之读下去,我的问题是:你会作出同样的选择吗?

在一个学习迟缓儿童学校的募款餐会上,在场的所有人永远忘不了其中一个学生的父亲所说的话。

在推祟学校和教职员的付出和贡献后,这个家长问了一个问题:“照理说在无外力干扰下,大自然所创造的一切都是完美的。但我的儿子,西恩,他无法像别的孩子那样学习,他无法像别的孩子一样理解事物。在我孩子身上,大自然的法则何在?”

所有听众都哑口无言。

这个父亲继续说:“我相信当像西恩这样有身体及心智残缺的孩子来到这个世界,是一个展现人类真实本性的机会,而这一次,体现在别人如何对待这个孩子。”

接着,他说了下面这个故事:

西恩在一个公园,里面有些西恩所认识的男孩正在玩棒球。西恩问我:“你想他们会让我一起玩吗?”我知道大部份的孩子不会想要有西恩这样的孩子在自己的队上,但身为一个父亲我同时也知道若他们能让我儿子参加,这会让他得到他所迫切需要的归属感并建立起自己虽然是残障仍能被接受的信心。

我走近一个男童(不抱太大希望的)问他西恩可否参加,他看看周围的队友然后说“我们输了 6 分而现在正在第 8 局上,我想他可以参加我们的队,我们会在第 9 局设法让他上场打。 ”

西恩带着满脸的喜悦困难地走向他的球队休息区,穿上该队的球衣,我悄悄地滴下眼泪,心中有满满的温暖。那些男孩也看出了我对于儿子被接纳的喜悦。

在 8 局下,西恩的队追了上来,但仍然还输 3 分。第 9 局上半场,西恩戴上手套防守右外野,虽然没有球往他的位置飞来,但能在场上他已经很高兴了,我从看台上向他挥手他笑的合不拢嘴。

在 9 局下,西恩的球队又得分了。而此时,二出局满垒的状况,下一棒是球队逆转的机会,而西恩正是被排在这一棒。
在这个重要关头,他们会让西恩上场打击而放弃赢球的机会吗?让人惊奇的是他们真的把球棒交给了西恩,大家都知道西恩根本不可能打到球,因为他甚至不知道怎么握球棒更别谈碰到球了。

然而当西恩踏上打击位置,投手已经明白对手为了西恩生命中重要的这一刻放下赢球的机会,所以他往前走了几步投了一个很软的球给西恩让他至少能碰一下。

第一球投出来,西恩笨拙的挥棒落空。投手又再往前走了几步投出一个软软的球给西恩。当球飞过来西恩挥棒打出一个慢速的滚地球,直直的滚向投手。球赛眼看就要结束。

投手捡起这软软的滚地球,就可轻易的把球传给一垒手让西恩出局而结束这场球赛。然而投手把球高高的传往一垒手的头顶上方通过,让他所有的队友都接不到。

每个站在看台上的人不管是那一队的都开始喊着:“西恩,跑到一垒!跑到一垒!跑到一垒!”

西恩这辈子从来没有跑这么远过,但他还是努力跑到了一垒。他踩上垒包眼睛张的很大而且很惊喜。每个人都喊着说:“西恩,跑向二垒,跑向二垒!”

刚喘过气,西恩蹒跚的跑向二垒,很辛苦的往垒包跑。

这时,就在西恩往二垒跑时,右外野手拿到了球,这个全队最矮的小子第一次有了成为队上英雄的机会了。

他大可把球传向二垒,但这个全队最矮的小子了解投手的心意,所以他也把球故意高高传过三垒手的头顶过去。当前面的跑者往本垒跑时,西恩跌跌撞撞的往三垒跑。

大家都喊“西恩,跑向三垒,跑向三垒!跑下去,跑下去!”

西恩能到达三垒是因为对方的游击手跑来帮忙将他带往三垒的方向,而且喊着,“跑到三垒,西恩,跑到三垒。”

当西恩抵达三垒,双方的选手和所有的观众都站起来,高喊着,“西恩,全垒打!全垒打!”

西恩跑回本垒踩上垒包时,大家为西恩大声喝采就如他打了一个大满贯并为全队赢的比赛的英雄般。

“那一天”,那个父亲两颊泪流满面轻柔的说,“两队的男孩子把真爱和人性的光辉带进了这个世界。”

西恩没能活到另一个夏天,他在那年的冬天过逝,但他从没忘记他曾经是个英雄而且让我那们高兴,以及他回家时看着妈妈流着泪拥着她的小英雄的那一天!

现在,是关于这个故事的一点附注:

我们常常不假思索的把数以千计的笑话转来转去,但当我们遇到要传送有关生命的选择的故事时,我们反而感到犹豫了。
粗俗、野蛮和经常是有点淫秽的东西每天在网络上无限制的传播着,反而高尚的事情的讨论却在学校里及办公室里被压抑着。

如果你在思考着把这个故事转出去,可能你会在你的QQ里挑选出那些不适合听这个故事的群,然而,把这个故事转给你的人相信我们可以让世界变的不一样。

我们每天都有无数的机会可以协助去体现大自然的法则。很多人与人之间微不足道的互动都是一个选择的机会。

到底我们是把爱和人性的光辉传递下去,或者放弃这些机会使得这世界一点点的更冷漠。

有一个智者说过;要评价一个社会就要看这个社会如何去对待他们之中最不幸的人。

所以现在你有两个选择; 1. 无视 2. 转发

把爱和人性的光辉传递下去