新闻中心

12-11
2019
2019之科技互联网大事件盘点
一、公司系列1、视觉中国版权事件事件背景:2019年4月,人类首次捕获了黑洞的首张照片。但随后,有人发现视觉中国竟然宣称对这张照片拥有版权。任何个人和机构若将黑洞照片商用都必须向视觉中国支付版权费用。事件分析:视觉中国“黑洞照片”事件后,其滥用版权问题被大量曝光。甚至连没有版权属性的国旗、团旗等图片均被其宣称拥有版权。此后,视觉中国宣布停止服务进行内部整顿。视觉中国这一事件引发大众声讨,其几乎“敲诈”式的收费方式令大众对其运营模式产生极大质疑。简评:天下自媒体苦视觉中国久矣,“不敢配图”成为当时热热词。2、网易裁员事件事件背景:2019年11月24日,一名网易前员工发表题为《网易裁员,让保安把身患绝症的我赶出公司。我在网易亲身经历的噩梦!》文章。该文指责自己在网易游戏遭遇绩效考核强行挑刺、变相背锅、被早退、诬陷以及保安暴力驱逐等不公平待遇。事件分析:网易暴力裁员事件最终以网易宣布双方达成和解,处分5名员工并表示将尽最大努力帮助该员工的方式暂时告一段落。但是,员工在工作期间的合法利益是否能够得到切实有效的维护会是大众持续关注的问题。合理、合法的用工模式才是社会健康发展的基础。简评:看来赚钱还得有好身体,不仅要扛住996,还得保证不能生病,否则一病就裁员,谁能吃得消3、锤子科技名存实亡事件背景:今年初,锤子科技坚果手机团队除罗永浩外全部并入字节跳动,成立新石实验室。锤子科技原COO吴德周担任新石实验室总裁,负责为字节跳动研发智能硬件产品。10月31日,吴德周召开发布会正式发布新一代坚果手机。事件分析:锤子手机诞生至今已有7年,从初代锤子T1手机采用“三明治”硬件设计和拟物化的UI交互起,锤子系列手机总是“不走寻常路”。这一定程度体现罗永浩对设计的执着,和对“工匠精神”的追求。但是自始至终,锤子系列手机并未能在中国手机市场占有一席之地,最终因资金问题不得不卖给字节跳动。简评:“有的公司,做着做着就没钱了”——罗永浩于老人与海发布会。4、阿里上市事件事件背景:2019年11月26日,阿里巴巴在香港交易所敲钟上市。当日,阿里巴巴以187港元开盘,比发行价176港元上涨6.25%,市值4万亿港元,成为全球第八大上市公司。事件分析:阿里巴巴与香港交易所缘分由来已久。2007年阿里巴巴B2B业务在香港上市,2012年私有化退市。此外阿里巴巴旗下阿里健康、阿里影业在香港上市。本次则实现阿里巴巴在香港整体上市。这是香港迈出上市公司产业结构调整的第一步,未来将有更多高新技术企业在香港上市。对于阿里来说,一方面实现双市场融资,避免依赖单一市场融资的风险。另一方面则是继张勇接替马云后资本市场对阿里巴巴的认同。简评:2014年马云曾说要回到香港,如今总算兑现诺言。5、华为实体名单、离职员工事件事件背景:2019年5月,华为被美国列入管制“实体名单”,不允许从美国采购零部件,各大美国企业将“断供”华为。2019年11月,华为离职员工李洪元因离职赔偿金问题被华为举报关押251天事件爆出,在华为工作12年的前员工李洪元离职后,被举报敲诈勒索,随后被羁押251天,后无罪释放。此事一出,引发全网争议。此后,华为回应称若李洪元认为其权益受到损害,华为支持他用法律武器维护自己权益,包括起诉华为。事件分析:华为被列入“实体名单”后,海思发内部信,表示多年“备胎”即将转正,公司努力奋斗就是在等这一天。此后,美国商务部再次将8家中国企业列入“实体名单”。这一系列事件进一步要求企业有独立自主研发核心产品部件能力。被列入“实体名单”半年多以来,华为生产的硬件产品开始寻求减少美国供应商提供零部件。有国外媒体报道称新批次的华为Mate 30系列手机已无美国零部件。简评:是祸也是福!二、行业系列1、科创板事件背景:2019年6月13日,科创板正式开板;7月22日,科创板首批公司上市;8月8日,第二批科创板公司挂牌上市。事件分析:科创板于2018年11月5日在首届进博会开幕式上宣布设立,独立于现有主板市场的新设板块。科创板主要目的为落实创新驱动和科技强国战略,通过在盈利状况、股权结构等方面的差异化安排,增强对创新企业的包容性和适应性。简评:无论什么板,企业模式要健康。2、P2P爆雷事件背景:2019年11月,知名P2P平台麦子金服被爆遭经侦查封,创始人黄大容也被调查;2019年9月,上海市公安局浦东分局发布公告称以涉嫌非法吸收公众存款罪对上海证大公司立案侦查,41名犯罪嫌疑人被依法采取刑事强制措施,并查封涉案资产;2019年3月28日,东莞警方发布通告,称团贷网实控人唐军、张林已于3月27日自首,团贷网正式暴雷。事件分析:2019年可谓是“P2P爆雷”年,据有媒体统计,今年以来已有1200多家相关公司停业。除了上述这几家P2P爆雷外,全国多地开展清退网贷机构。湖南、山东、重庆等地明确宣布将取缔辖区内所有P2P网贷业务。简评:赶紧上岸才是最明智的选择!3、变冷的风口:电子烟、垃圾分类事件背景:2019年,原锤子科技0001号员工朱萧木宣布创办福禄Flow电子烟;罗永浩和原锤子科技总裁彭锦州宣布合作创办小野电子烟;此外,还有包括灵犀Linx、YOOZ以及悦刻等电子烟品牌在市场中拼杀。2019年7月1日,上海正式实施《上海市生活垃圾管理条例》,条例要求市民严格执行垃圾分类,包括干垃圾、湿垃圾、可回收垃圾以及有害垃圾。事件分析:2019年一度被称作风口的行业便是电子烟和垃圾分类了。但现在看来,这两个行业被称作“风口”可能为时尚早。尤其是电子烟,经历大半年线上、线下疯狂“厮杀”,最终却被相关部门一则“线上禁令”泼了盆凉水。线上禁令对电子烟行业影响较大,经三言财经调查,目前,线下渠道存在诸多问题,电子烟企业推广成本高,发展较为困难。垃圾分类政策出台后,其背后带来的商业机遇一度也被认为要成为“风口”。据三言财经调查,今年6月至7月一个月间,全国成立了8346家和垃圾处理业务相关的企业。但最早入局的一批企业目前已满目狼藉,悬在它们头上的则是破产重组、停业倒闭、员工讨薪等问题。简评:电子烟禁令让罗永浩成了“风口终结者”。4、携号转网事件背景:2019年11月27日,工信部召开携号转网启动仪式,即日起,携号转网正式在全国提供服务,电信业务经营者不得干涉用户自主选择。事件分析:携号转网实际上早在2010年就已开启部分地区试点服务,至今已过去近十年。目前,在携号转网服务正式启动后,经媒体调查,有兴趣携号转网和没兴趣携号转网的用户基本持平,资费、信号问题是用户考虑该服务的主要动力。但调查结果显示,有超八成用户并不了解服务规则。简评:有人表示携号转网启动后,自己移动手机号竟然接到联通的推广电话。5、996 ICU事件背景:年初,一个起源于中国码农的 Github“996.ICU”项目,以燎原之势席卷全球各地的程序员圈子。996ICU 即“工作 996,生病 ICU”,某程序员注册了一个叫做 996.ICU 的域名,并在这个网页上大举控诉部分互联网公司实行 996 工作制。996.ICU 网站被翻译为多国语言版本,引发热议。事件分析:996在互联网行业是常见的事,这是中国互联网飞速发展的产物。在国内的互联网公司,技术团队一般没什么话语权,基本上是被产品层“赶着走”。但是即使是美国,也有很多公司的工作强度非常贴近996强度。要摆脱这种状态,除了需要行业的规范化,还需要程序员群体提高自身实力,但这无疑是个漫长的过程。简评:不怕996,就怕免费的996。6、5G元年事件背景:2019年6月6日,工信部正式向中国电信、中国移动、中国联通、中国广电发放5G商用牌照,中国正式进入5G商用元年。2019年10月31日,三大运营商公布5G商用套餐,并于11月1日正式上线5G商用套餐。事件分析:5G被公认为是能够带来行业变革的技术,无论是在手机、物联网、AR、VR等领域都将带来全新的机遇。简评:5G对行业的改变还需要时间。三、人物系列1、马云退休事件背景:2019年9月10日,我国第35个教师节,马云55岁生日,阿里巴巴20周年。马云选在这个特殊的日子退休,将阿里的大旗交到了张勇的手里。事件分析:马云是中国互联网最有代表性的人物之一,他的故事和言论无数次成为媒体的写作养料。马云不仅在商业上取得了巨大成功,个人魅力也赢得了无数人的追捧。他在教育、慈善事业上的努力,也不应被商业的成功给掩盖。简评:世上只有一个马云,阿里只有一个风清扬。2、李国庆夫妇离婚纠纷事件背景:2019年2月20日,当当创始人李国庆公开信宣布离开当当网。10月,李国庆在访谈节目中指责被妻子俞渝“逼宫”,怒摔水杯抢占互联网舆论C位。10月23日晚间,俞渝在朋友圈开撕丈夫李国庆,直指其同性恋、撒谎、不顾家,且患有梅毒等内容。11月29日,李国庆与妻子俞渝离婚案在北京开庭,他的诉求是离婚和平分股权。事件分析:当当网创始人李国庆被赶出当当,以及此后与妻子俞渝的离婚纠纷,引发全民的广泛讨论。曾经的模范夫妻如今互相“揭短”,着实让人唏嘘不已。谁对谁错,这是个难解的问题。简评:清官难断家务事,一句不合就是撕。3、孙宇晨放了巴菲特鸽子事件背景:7月23日,孙宇晨终于还是放了巴菲特鸽子,孙宇晨称因突发肾结石正于医院治疗,因故取消与巴菲特先生的午餐会面。2019年6月4日,孙宇晨宣布以4567888美元拍下沃伦·巴菲特20周年慈善午宴。事件分析:孙宇晨成了第一个放巴菲特鸽子的男人,因这场晚餐也赚足了流量。此前很多人还在想孙宇晨在面对巴菲特要说些什么,但孙宇晨用行动证明不说反而比说更有“力”。简评:热点面前,孙宇晨不会错过,最多只是迟到。4、咪蒙被封杀事件背景:今年2月,咪蒙旗下公众号“才华有限青年”发布了《一个出身寒门的状元之死》一文,该文章在朋友圈迅速刷屏,但被指责文章存在“虚构”、操纵情绪、扭曲价值观。不久后,“咪蒙”和“才华有限青年”两个微信公众号被发现已注销,随后各大内容平台也先后封禁咪蒙旗下相关账号。事件分析:咪蒙这类编故事,煽情绪的自媒体的崛起,是全民情绪共振时代的产物。“毒鸡汤”的炮制文章千篇一律,咪蒙的倒掉是一个“畸形”自媒体时代的终结。简评:“含咪率”曾经是一个让人色变的指标。5、贾跃亭申请破产事件背景:10月14日,贾跃亭债务处理小组方面发布《有关贾跃亭先生个人破产重组及成立债权人信托的声明》。声明称,贾跃亭已于美国当地时间10月13日主动申请个人破产重组,这将成为解决贾跃亭个人余下债务并保障债权人利益的最佳方案。事件进展:美东时间11月25日,贾跃亭在法拉第总部举办债权人会议。到场的债权人机构总共20家,总人数超过30人,包括债权人及律师代表。美东部时间12月6日,在美国司法部下设的债务信托受托人办公室的主持和见证之下,贾跃亭再次在特拉华州出席了债权人听证会。贾跃亭破产的计划进行并不是那么顺利。接下来在12月中旬由法院确定投票的具体时间,预计在明年1月份前后。简评:贾跃亭何时回国,这将是个未解之谜。四、产品系列1、今日头条做搜索事件背景:8月份,字节跳动的一侧招聘启事让头条搜索浮出水面。头条搜索随后也正式上线。事实上,3月起就有网友发现,今日头条可以支持站外搜索。字节跳动当时回应称,搜索业务已经上线,产品还处于测试阶段。事件分析:头条做搜索在逻辑上是很容易理解的,通过智能推荐,用户可以获得针对性的信息,但是对于这样一款超级APP,用户还需要有自主获取信息的途径。搜索是本质上是信息分发的一种基础方式。面对业界关注的头条搜索问题,今日头条CEO朱文佳表示,做头条搜索并非竞争驱动,而是基于产品使命和用户需求。简评:对于信息平台来说,搜索只是一种分发方式。2、社交产品的爆发事件背景:年初,三款社交产品马桶MT、多闪、聊天宝扎堆发布,似乎业界再一次发起了对微信的挑战。几个月后,飞聊和狐友出现,再加上绿洲,2019年的社交产品特别多。但是与预想的无二,一段时间的舆论高潮后,这些产品逐渐没有了声音。事件分析:以上的几款产品对微信并未造成冲击,在产品形态上也没有颠覆式的创新。由于社交产品的迁移成本太高,微信的国民应用的地位依然稳固。简评:不是这些产品不行,是微信太强大。3、折叠手机事件背景:今年手机领域最火的概念有两个,5G和折叠屏。三星最先掀起了折叠屏的序幕,随后国内厂商也相继推出相应产品,例如华为和小米等。事件分析:折叠屏到底好不好,曾陷入一番热议中。有人认为这只是炫技的由头,有人认为这才是科技的魅力。但对于硬件产品来说,用户的评价才是最有说服力的,各位看官不如等一等,看看评价再入手。简评:如果你是科技极客,钱又太多,那就随便买呗。
03-22
2018
12.7万亿惊天罚单,Facebook非死不可?
“泄密门”爆发后,远在太平洋彼岸的扎克伯格这几天的心情如过山车般惊心动魄,Facebook社交一哥的地位也在不断的遭受着外界的质疑。3月17日,美国《纽约时报》报道称,Facebook上超过5000万用户信息数据被一家名为“剑桥分析(Cambridge Analytica)”的公司泄露,用于在2016年美国总统大选中针对目标受众推送广告,从而影响大选结果。用户隐私遭泄露的Facebook被媒体报道称,其有可能违反2011年的和解令,美国联邦贸易委员会正在开展的调查,若属实,罚金高达2万亿美元(约12.7万亿元人民币),而Facebook的总市值也才4885亿美元。这一罚,就是4个Facebook,不知扎克伯格心里作何感想。受此影响,当地时间3月19日,Facebook股价盘中一度大跌7.1%,收盘价172.56美元/股,跌幅6.77%,这一股价表现是2014年3月以来最惨的一天。Facebook,走进了生死通道。罚款,2万亿美元!Facebook一直行走在泄与不泄的边缘,毕竟身处互联网时代,保得住隐私的难度和成为下一个扎克伯格一样。据悉,此次泄密事件的暴露是有人告密,告密者名为克里斯托夫·维利,是剑桥分析的前雇员。根据其爆料,剑桥分析在2016年美国总统大选前获得了5000万名Facebook用户的数据,用于影响大选结果。泄密并不是Facebook直接导致。2014年,剑桥分析的研究者Kogan要求用户参与一个性格测试,并下载一个第三方App“这是你的数字化生活”(this is your digital life),搜集的信息包括用户的住址、性别、种族、年龄、工作经历、教育背景、人际关系网络、平时参加何种活动、发表了什么帖子、阅读了什么帖子、对什么帖子点过赞等。然而,最后只有27万名用户真正参与了性格测试的调查,调查中这些用户同意提供自己的个人数据供学术研究。据悉,参与调查的27万Facebook用户必须拥有约185名好友,并且允许获得他们朋友的资料,因此覆盖的Facebook用户总数达到5000万人。最后搜集到的数据,仅在两三个月内就至少达到五六千万。悄无声息获取5000万人资料,剑桥分析公司的棋,下的漂亮。而剑桥分析创始人尼克斯则在官方质询会上表示,公司从未使用过Facebook信息。这正是外界对于非直接泄密用户资料Facebook的愤怒所在,这家互联网巨头在授权管理上存在巨大漏洞。正是因为Facebook存在在用户不知情的情况下,将用户个人数据移交给剑桥分析公司,导致Facebook将面临2万亿美元的罚款。事情要从2011年说起。2011年,由于Facebook更改了一些设置却没有通知用户,美国联邦贸易委员会指控Facebook欺骗用户,强迫用户分享更多其本无意分享的个人信息。Facebook最终与联邦贸易委员会就该案达成和解协议,即2011和解令。和解令的要求之一是,Facebook在隐私设置变化时要事先征得用户同意。根据相关人士介绍,和解令每违反一次,可判处4 万 美元罚款。如果真的有5000万用户的数据被泄露,Facebook将面临2万亿美元的巨额罚款。剑桥分析何许人也在这场泄密游戏中,故事的主角除了Facebook,还有剑桥分析公司,一家神秘的商业数据分析公司。据媒体报道,剑桥分析公司创立于2013年,富有的美国共和党捐助人罗伯特·墨瑟(Robert Mercer)大额资助过剑桥分析公司,2014年参与44场美国政治竞选,在24个国家和地区拥有分部。剑桥分析公司曾受雇于特朗普竞选团队,也曾为英国脱欧推波助澜,该公司的业务范围广泛至权色钱交易,更有员工称其已经在中国开展业务,但不是在政治领域。据媒体报道,当地时间19日,英国电视广播第4频道曝光了一段暗访视频:卧底记者假扮成一名来自斯里兰卡的潜在客户,与剑桥分析公司接洽,表示希望通过帮助,赢得斯里兰卡的大选。几次沟通后,剑桥分析公司首席执行官尼克斯现身并道出一番“秘密言论”。尼克斯被录制到:曾发表了有关其为大选所做工作的争议性言论,包括剑桥公司如何在特朗普总统胜选发挥的主要作用,及“所有数据、所有分析和所有目标”,还表示该公司可以“将一些女孩送到候选人家中”。节目播出后,遭到尼克斯的强烈否认。尽管如此,尼克斯已被停职接受调查。英国相关机构正申请对剑桥分析公司进行搜查,这意味着英国将正式对此案展开调查。Facebook创始人、CEO马克·扎克伯格,也被要求3月26日前对此作出回应,然而扎克伯格还未回应。更有投资者发起集体诉讼,表示脸书对用户数据安全情况做出虚假或误导性陈述,导致投资者蒙受损失。经此一役,Facebook元气大伤,股价也遭受了猛烈的冲击。股价大翻车!此前Facebook一直是股票市场上表现最好的大盘股之一,在过去的12个月中,该公司股价上涨32%,而同期标准普尔500指数上涨16%。每逢“泄密门”出现,Facebook的股价就会应声跳水一番。然而此次和以往来的有些不太一样,这一事件经过周末的发酵,直接打压了Facebook周一的股价表现。当地时间3月19日,Facebook股价盘中一度大跌7.1%,收盘价172.56美元/股,跌幅6.77%。这一股价表现是2014年3月以来最惨的一天,较Facebook在2月1日创下的纪录收盘高位下跌了10.8%,市值蒸发364亿美元。截至当地3月20日,Facebook收盘报168.15美元/股,较前一交易日收盘时的172.56美元下跌了4.41美元,跌幅为2.56%,市值两天蒸发500亿美元。股价连续两日下跌,扎克伯格的身家也遭受波及,身家仅周一一天就缩水了60多亿美元。据福布斯实时富豪榜数据显示,其身家在周二又缩水17亿美元。虽然Facebook的股价遭遇下跌,但是机构对其未来预期却依旧持乐观状态,多家机构仍给出买入评级。美银美林发表的研究报告则称,虽然市场对公司的股票有过份抛售的情况,短期利好因素有限,但在其他基本面方面,目前Facebook的估值是依旧十分有吸引力,故维持“买入”评级,目标价265美元。Stifel的分析师斯科特·德菲特,把这该股的目标价定为195美元。与此相反,Pivotal Research在Facebook股票上给予“卖出”评级,将Facebook的的目标价定为152美元,这在周五收盘价的基础上下跌了18%。此外,苹果(AAPL.O)、谷歌母公司Alphabet(GOOG.CHL)、亚马逊(AMZN.O)、微软(MSFT.O)、英伟达(NVDA.O)、英特尔(INTC.O)、特斯拉(TSLA.O)等科技股也集体下挫。Facebook作为美国乃是全球的社交第一平台,在保护用户隐私方面却如此轻视。难道真如江湖上传言:隐私在商业公司方面只是个笑话,利益才是他们的根本?                           
03-17
2018
小米融资材料曝光?预计去年营收超千亿盈利76亿
作为国内最受关注的独角兽公司之一,小米上市被公认为2018年全球最大规模上市案,尽管对于IPO,小米的态度始终淡定,但是这家公司的上市进程、营收情况和扩张计划时刻都在聚光灯下。北京商报记者3月15日获悉,小米Pre-IPO的融资推介材料首度曝光,该材料对当下小米估值680亿美元,假设小米于2018年四季度上市,市值将在854亿-1351亿美元,一个真实的小米即将被揭开。收入结构曝光根据曝光的推介材料,小米的日活跃用户达1.32亿,月活跃用户1.65亿,日均用户使用时间为312分钟(5.2小时)。在日活跃用户占月活跃用户百分比数据中,小米为80%名列第一,比排名第二的微信高出一个百分点,比第三名FaceBook(亚洲)的60%则高出20个百分点。材料同时显示,2015年小米亏损9.8亿元,2016年盈利9.13亿元,预计2017年盈利75.82亿元,利润率达到6.5%,到2019年,小米净利润将达到188.31亿元,2016-2019年,小米净利润复合平均增长率为174%。在小米2016年的收入组成中,79%来自于硬件,21%来自于互联网服务业务。硬件业务的净利润率仅为2.8%,而互联网服务业务的净利润率则超过40%。小米正在扩大互联网服务业务收入比例,2017年,预计小米收入为176亿美元,其中硬件业务的收入占比为68.3%,预计到2019年,互联网服务业务的收入占比将超过硬件收入,届时小米收入将达到382亿美元。材料还对小米进行了估值。小米如果于2018年四季度上市,市值将介于854亿-1351亿美元,但小米并未就这些资料给予回应。不过在2017年11月,小米董事长兼CEO雷军曾表示已经完成1000亿元(约合158.3亿美元)的销售目标。在融资推介材料曝光前不久,小米上市的进展再次传出新版本。有消息称小米会在2018年三季度登陆港交所,成为香港首批同股不同权的上市公司之一。3月14日,海通国际副总裁及行政总裁林涌对媒体表示,海通国际会持续与雷军等进行沟通,他也正计划近期带着管理层飞往北京,与小米的高管做进一步沟通。一位知情人士则告诉媒体,“证监会最高层曾与雷军面谈过,小米现在比较成熟,希望能回来(A股上市)”。在推进上市的同时,雷军开始逐渐放权。3月13日,猎豹移动宣布雷军已向董事会递交辞呈,不再担任董事长和董事职务,将担任公司顾问。猎豹移动CEO傅盛将接替雷军出任董事长,成为真正的掌舵人。2017年雷军还辞去了欢聚时代董事长一职,转任公司顾问,并将所持股权的投票权委托给了欢聚时代董事长李学凌。对此,有观点认为,这是雷军希望在小米上市前,尽量避免过多关联交易的质疑。业绩触底反弹“为什么大家对小米的关注度这么高,估值高当然是一方面,另一方面是它的顽强。”智察大数据分析师刘大伟向北京商报记者直言,“小米在2017年实现销量的触底反弹,这在智能手机发展过程中十分罕见,是值得学习和致敬的。”2016年,小米手机销量大幅下滑,全年出货量大跌36%,甚至一度跌出全球前五,公司发展也暴露出诸多问题。为重振小米,雷军在同年5月将原先负责研发和供应链的周光平调离,亲自负责研发和供应链,渠道方面则由小米总裁林斌大规模开展线下店,发力印度市场。一年后的2017年7月,雷军在公开信中称2017年二季度手机单季出货量为2316万台,创下历史最高纪录,2017年小米又接连发布了小米6、MIX?2等产品,经历了一年蛰伏,小米实现触底反弹。“小米的逆袭,主要归功于小米在供应链上面的提升。事实上,小米2016年销量之所以大幅下滑,并不是因为用户抛弃小米手机,不愿意购买,而是小米供应链管理上出现漏洞,包括2016年上半年长期处于缺货状态,以及一些产品频繁爆发品质问题。随着雷军2017年亲自接管小米的供应链管理工作后,可以看到,小米的销量恢复了正常的增长状态。”刘大伟这样认为。走出低谷期后,除了补充供应链外,雷军还更正了他的“铁人三项”理论,把“软件+硬件+服务”升级为“硬件+互联网+新零售”,全新的新零售版图则整合了原来的小米网电商渠道和正在发力的线下渠道小米之家。小米计划未来两年开1000家小米之家。雷军在2017年四季度表示,小米之家要到2018年才会开始放量,两年内不会对小米的业绩产生绝对帮助。对小米之家团队,雷军给出的KPI是五年内营收突破100亿美元。进军海外不易在过去的2017年,除了完成逆袭,小米还在国际化进程上一路狂奔。2017年小米的国际化甚至被认为是意外之喜。在小米2018年年会上,雷军提出,小米国际业务目前取得的成绩只是开始,全球市场版图上,还有大片空白的市场正等待开拓。因此,小米2018年不仅要在战略、资源、本地化产品开发等方面给予支持,还要派出更多的精兵强将直接去全球各地开疆拓土。根据多家调研机构数据显示,自2017年三季度起,小米手机的销量在印度市场已经连续两个季度保持第一。在印尼、缅甸市场,小米手机也已进入市场前三。对于欧美市场,小米则比较谨慎,一个月前,小米之家在巴塞罗那的首家店面正式开门营业,不过这家店并非小米直营店而是授权店。对于进军美国市场,雷军在近日透露了2018年底或2019年初这一时间点。一位不愿具名的业内人士向北京商报记者表示,“小米进军海外市场主要优势在于价格和性价比,要知道小米在竞争十分激烈的国内市场,不管是手机还是电视产品,极具性价比正是产品主要优势之一,这种优势到了海外市场更加突出”。他进一步说,“小米国际化的难度也很突出,除了不同海外国家不同的政策,需要制定相应的销售策略来适应,最大的困难在于技术专利,早期小米手机在海外市场频繁碰壁主要原因就在这里,随着小米与高通、微软等达成重要专利授权协议,才得以缓解,但核心技术专栏仍然是国内手机厂商进军外海市场的主要难点”。
03-17
2018
霍金大事记 他对人工智能的预言时刻提醒着人类!
据英国天空新闻等多家媒体报道,世界著名物理学家史蒂芬·霍金去世,享年76岁。让我们回顾下霍金的一生:1968年应用先前彭罗斯研究奇点时所发展出来的数学技巧,霍金团队获得很多关于大爆炸的存在与物理行为的重要结果。霍金与乔治·艾利斯于1968年发现,宇宙背景辐射的存在证实宇宙的确曾经发生过大爆炸。霍金与罗柏特·哲洛奇、彭罗斯合作将奇性定理加以延伸;他们表明,宇宙必须有一个初始奇点,时间与空间就是从这初始奇点开始演化。霍金与彭罗斯合作撰写关于最初时间的论文荣获1968年引力研究基金竞赛第二名。1970年隔年,霍金得到冈维尔与凯斯学院特别设立的“科学卓越贡献奖学金”,提供他在凯斯学院做六年研究的薪资。1970年,霍金与彭罗斯共同发表论文证明,假若宇宙遵守广义相对论,并且含有足够多的物质(如同现今观察到的数量),则它必定起始于大爆炸奇点 。来年,霍金发表的论文《黑洞》赢得引力研究基金竞赛第一名。霍金与艾利斯共同撰著的《时空的大尺度结构》于1973年出版,这是霍金的第一本著作,现已成为经典文品,主要是探讨时空的基础结构,从粒子物理学尺度10-13cm到宇宙学尺度1028cm,应用微分几何来检试广义相对论的两个后果,第一个后果是恒星坍缩后形成黑洞与其所含有的奇点,第二个后果则是在宇宙初始时奇点的存在。在对于奇点的研究告一段落之后,霍金开始转移焦点,开始研究黑洞。1971年今年他发表了三篇重要论文。第一篇论文指出,宇宙可能存在一种崭新种类的物体,称为原生黑洞,是在大爆炸的最早时刻经过高温与高压制成的微观黑洞。第二篇论文部分证明了无毛定理,不论黑洞是怎样形成的,它只具有三种性质:质量、角动量、电荷。第三篇论文阐明,黑洞的事件视界表面面积永不会减少,两个黑洞合并后的表面面积不会小于原先两个表面面积之和,这发现后来被命名为黑洞热力学第二定律。因为任何粒子都无法从黑洞表面逃逸出去,所以黑洞的质量只能增加,不能减少;又由于黑洞的事件视界表面面积是决定于它的质量,所以表面面积也只能增加,不能减少。根据热力学第二定律,孤立系统自发地朝着热力学最大熵状态的方向演化。霍金认为,黑洞表面面积的增加很像熵的增加,不过这只是个类比。但是,约翰·惠勒的研究生雅各布·贝肯斯坦坚持主张,黑洞的表面面积可以用来量度熵;假若将一堆含有熵的物质丢入黑洞,则黑洞的熵必定增加,这会从黑洞的质量增加反映出来。霍金觉得贝肯斯坦的主张有误,假若黑洞具有熵,则必定可以测量出它的温度,它会辐射出能量,但是没有任何粒子可以从黑洞内部逃逸出去!1972-1973年间,霍金又与杰姆斯?巴丁、布兰登?卡特合作提出四条黑洞热力学定律。这些定律的形式看起来很像热力学定律。但是霍金强烈声明,黑洞不能辐射出任何能量,因此黑洞不具有熵。《时空的大尺度结构》成功出版后,霍金开始专注研究量子引力──量子力学与广义相对论的结合。俄国物理学者雅可夫·泽尔多维奇与艾利西?斯塔宾斯基从不确定性原理推断出旋转中的黑洞会发射粒子,这些粒子是在事件视界外的邻近区域由黑洞的旋转能制成,因此会消耗黑洞的旋转能,直到黑洞不再旋转为止。霍金对于这研究觉得很好奇,因此,霍金与好友基普·索恩一起去俄国拜访泽尔多维奇与斯塔宾斯基,希望更多地了解他们的想法,索恩与俄国物理学者在过去五年间共同进行学术研究,在那里建立了丰富的人脉关系。会谈之后,霍金觉得俄国学者的数学方法稍显粗糙,他可以给出更好的结果,可是,经过仔细计算,他发现了一个令人惊讶的结果,不仅是旋转中的黑洞,甚至连静止的黑洞也会持续发射粒子,其能谱符合热力学黑体辐射的物理性质。这结果与黑洞热力学第二定律相互矛盾,并且支持贝肯斯坦关于熵的推论。1974年今年霍金在牛津大学卢瑟福-阿普顿实验室举行的第二次量子引力会议发表论文《黑洞爆炸》。在这篇论文里,他详述,在事件视界外的邻近区域会出现很多虚粒子对,每一对虚粒子都是由一个正能量粒子和一个负能量粒子组成,总能量为零,通常,这些虚粒子对在出现后的短暂片刻会相互湮灭,为了满足不确定性原理,但是,假若在湮灭前,负能量粒子穿越过事件视界,则它可以在黑洞内生存,而正能量粒子也可以逃逸至无穷远,因此,能量会被辐射出去,黑洞质量会逐渐减小,这就是宏观黑洞发射辐射的机制。对于宏观黑洞,辐射率与质量呈反比,由于宇宙微波背景辐射的干扰,很难观测到这种称为霍金辐射的现象。例如,一个质量为太阳质量(1030kg)的黑洞,其霍金辐射温度为10-7K,远远低于宇宙微波背景温度(2.7K)。黑洞的寿命与质量的三次方成正比,假设黑洞质量为1012kg,则其寿命大约为宇宙年龄1010年,假设这黑洞是形成于宇宙初期的原生黑洞,则它应该会在近期“蒸发”(黑洞蒸发),温度大约为1011K,辐射出大量伽马射线,但是比伽马射线暴的光度低很多,虽然这类稀有事件大概只能发生在太阳系内才可被观察到,但这确实是一种可观察到的事件,尽管至今为止尚未有科学家真正观测到这类事件。这篇论文立刻震惊了整个宇宙学界。泽尔多维奇起初持保留态度,但经过严格检查后不能不承认霍金是对的。教授夏玛称赞,“这是物理学里史上最美丽的论文之一!”最令人佩服的是,霍金的计算大部分是在他的脑袋内部完成,霍金谦虚地解释,“大多数人错误地以为数学只是方程而已,实际而言,方程只是数学的乏味部分,我试图以几何来看问题。”年3月,霍金。1974年,加州理工学院聘请他为谢尔曼?费尔柴尔德杰出访问教授,除了优渥的薪资、住房、车子、孩童教育以外,他还获得了一辆电轮椅与所有医疗需要。同年,他当选为英国皇家学会院士,年龄才32岁,是最年轻的院士之一。虽然霍金发表的这篇论文极具争议性,到了70年代末期,经过更进一步研究与论述,这理论物理学的突破终于被学术界广泛接受。1975年霍金于1975年回返剑桥大学担任大学教授。在那时期,人们对于黑洞与研究黑洞的物理学者有浓厚的兴趣,时常可以在报纸杂志或电视媒体看到霍金的访谈。学术界也多次表扬他在宇宙学的成就。1975年,因为在相对论领域取得极重要研究成果,他与彭罗斯获颁爱丁顿奖章。同年,他荣获庇护十一世金牌。隔年,被授予麦克斯韦奖、海涅曼奖与休斯奖章。1977年,升任为引力物理学讲座教授。翌年,获得爱因斯坦奖与牛津大学荣誉博士学位。卢卡斯数学教授席位是剑桥大学授予物理学者的一个最高荣誉职位。1979年,霍金成为第十七位卢卡斯教授。他的就职演讲的题目为《是否即将看到理论物理的尽头?》。在演讲中,霍金坦率预测,在本世纪结束之前,量子力学与广义相对论将会被合并在一起, N=8超引力理论是万有理论的首选。超引力理论衍生自超对称理论,N=8超引力理论预测引力子有8种超对称伙伴,即8种引力微子,该理论因此而得名,它是唯一能够正确表述4维时空的理论。这是一个非常复杂的理论,除了上述引力子与引力微子以外,还有154种其它尚未发现的粒子。霍金在演讲结束前又预测,就研究理论物理的能力而言,电脑将会超越人脑,就算这不是理论物理的尽头,这也可能是理论物理学者的尽头。在那段时期,由于怀尔德患重感冒,霍金一度被送到疗养院,直到两个人都恢复健康了才回家。自此,霍金勉强地接受一些家庭医护服务。最初,他觉得这会侵犯到他的私生活,但后来,他发现这也会带来很多方便。为了更快捷地发掘宇宙的奥秘,霍金决定改变他研究物理的方法,不再坚持踏实的数学证明,他变得更为凭靠直觉,更带推测性。他告诉索恩,“在正确与严密这两种选项之间,我宁愿选择正确。”严密不一定是获得正确结果的最好方法,有时候,过度注重细节,可能会导致忽略大局。1981年今年有一场物理会议在批评思想家维尔纳·艾哈德位于旧金山的豪宅举行。霍金在会议中提出黑洞佯谬:由于黑洞发射霍金辐射的频谱如同理想热辐射,当黑洞因霍金辐射而最终消失之时,所有信息也会不可逆地遗失。在黑洞学里,信息指的是粒子的种类、性质与组态等等。霍金严重警告,信息的遗失是物理学的一大危机,因为这意味着无法按照物理学的理论来预测未来。黑洞佯谬违反了量子力学的基本原则,即“信息守恒定律”:宇宙不会遗失任何信息。黑洞佯谬引起了延续多年的激烈辩论,霍金与李奥纳特·萨斯坎德、杰拉德·特·胡夫特之间因此开启了名为“黑洞大战”的论战。霍金将理察·费曼原创的总和历史方法应用于研究宇宙的起源,这涉及到总和宇宙的每一种可能历史,也就是说,总和在时空的每一条世界线可能发生的事件。这意味着必须考虑宇宙的边界条件。1981年,在梵蒂冈教皇科学学会主办的一场会议里,霍金发表了论文《宇宙边界条件》。他提议,宇宙可能没有边界(没有起源或终结)。两年后,他与詹姆斯·哈妥共同提出宇宙无边界模型。在普朗克时期之前,由于量子力学的不确定性原理,宇宙没有时空边界;而在大爆炸之前,时间并不存在,宇宙起源的概念毫无意义。[36]经典大爆炸模型的初始奇点被改变为像北极区域一般;北极是所有朝北线相交与结束之点,没有比北极更北的地方。1985年霍金对于时间箭头做了颇多研究。他在1985年发表的一篇论文里声称,假若无边界提议是正确的,则宇宙最终会停止膨胀,开始坍缩,在这坍缩过程时,时间会朝着反方向流逝。这论点极具争议性。他曾经指导过的学生唐恩·佩吉发表论文反驳此结果。经过一番功夫,佩吉与另外一位学生雷蒙·拉弗兰姆,成功说服了霍金,促使霍金承认错误,并且撤回这概念。1981年由于先前卓越的研究成果,霍金得到更多奖章。1981年,他被授予弗兰克林奖章。隔年,又获颁英帝国司令勋章 (CBE)。奖章不能被直接用来支付日常开销,为了筹措孩子教育与家庭生活所需的费用,霍金决定撰写一本大众读者可以看得懂,解释宇宙奥秘的科普书籍。他并没有找学术出版社承担发行的工作,而是与商业出版社签约,因此得到一大笔预付款。这本书的书名为《时间简史》,首稿于1984年完成。经过多次编缀,该书于1988年出版发行。这本书快速飘升至美国与英国的畅销书排行榜第一名,并且占据那位置好多个月,很快地就卖出一百万本。至2001年为止,这本书至少被翻译成35种语言,销售超过九百万本。霍金已成为大众明星,各种媒体都争相报导有关他的消息。《新闻周刊》杂志甚至在封面刊登了他的肖像,称他为“宇宙大师”。1988年虽然霍金赚了很多钱财,但此时他已成为公众人物,必须面对很多新挑战。但他觉得乐在其中,他到处旅游,推销他的著作,常常参与派对与舞会至三更半夜。霍金似乎无法拒绝邀请,他也很少杜门谢客,因此减少了做研究的时间,甚至他的学生们都觉得他的“课外活动”太多。霍金的超高人气引起有些酸葡萄人士忌妒,他们认为这全是因为霍金的残障。尽管如此,他仍然不断获得各种荣誉,包括五个名誉学位与七个国际奖。1988年,他与彭罗斯共同获得沃尔夫奖,表彰他们“对于广义相对论的重要研究,这些研究显示了宇宙奇点的必要性和与黑洞相关物理。隔年,英国女皇伊丽莎白二世颁予名誉勋位,以肯定他对国家的重大贡献。1993年虽然需要经营很多公关活动,霍金仍旧能够腾出一些时间来做研究。1993年,霍金与盖瑞·纪邦斯合作,将关于用欧几里得方法来表述量子引力的一些课堂讲义编辑成为著作《欧几里得量子引力》。霍金还将自己的关于大爆炸与黑洞的论文编修成著作《霍金论大爆炸与黑洞》。在他发表的37篇论文里,他独自或与他人共同撰写了16篇论文。隔年,霍金与彭罗斯将在剑桥的牛顿研究院讲演的六堂课系列发行成著作《时空的性质》。在这本著作中,霍金强调,按照实证主义,物理理论只是一种数学模型,它是否对应于物理实在是一个毫无意义的问题;人们只能要求物理理论预测符合实验观察。这句话惹恼了很多批评者,在他们之中很多人主张,或许在问题的后面存在着千真万确的物理实在,只不过人们无法观察到这物理实在。霍金则坚持,研讨像虫洞是否存在这类问题是毫无意义的,因为对于描述物理实在,人们从未有独立于模型的绘景,但这不意味着没有独立于模型的物理实在,假若我不认为有,则我将会无法继续做物理研究。《时空的性质》记录了实证主义者霍金与实在主义者彭罗斯之间的一场辩论,主要论题是量子力学与广义相对论,这两种非常成功但仍旧存在严重争议的理论,怎样合并为能够解释时空性质的量子引力理论。霍金曾经与加州理工学院的教授索恩、约翰·裴斯基于1991年打赌,命题是,奇点通常应该会出现在黑洞内部,无法从事件视界之外观察到,但出现在事件视界之外的“裸奇点”是否存在?霍金支持彭罗斯提出的宇宙审查假说,他认为裸奇点并不存在,而索恩与裴斯基对此则持相反意见。1997年,普林斯顿大学教授德米特里·克理斯特德勒的理论计算与玛修·乔土奕克的电脑模拟建议,在非常特别状况下,可能会出现裸奇点。霍金只好因这技术细节认输。后来,克理斯特德勒修改了他的理论计算,他发现,霍金可能举白旗举得稍微早了一点。霍金至今仍然对此事耿耿于怀,他决定再与索恩、裴斯基打赌,命题更加详细地改为,在一般状况下,是否存在裸奇点。同年,黑洞赌王霍金又与索恩、裴斯基打赌,这次命题涉及到黑洞佯谬。霍金与索恩主张,黑洞吞入的信息永远与外界宇宙隔绝,永远不会显露出来,甚至当黑洞蒸发与完全消失之时;裴斯基持反对立场,他坚信,正确的量子引力理论必将会给出机制解释霍金辐射怎样从黑洞释出信息。霍金对于将科学介绍给更广泛大众的工作不遗余力。《时间简史》的电影版本,经过埃洛·莫里斯的导演与史蒂芬·史匹柏的制作,正式于1992年在好莱坞的美国电影艺术与科学学会首映。原本,霍金认为这部电影应该如同他的著作一般,专注于描述科学理论,而不是人物事迹,然而,他后来发现其中一大半内容是在描述人物事迹,他很随和地改变主意,觉得这是件好事,但他并未在摄影机之前公开自己的私生活。虽然这部电影得到很多好评,但并没获得广泛发行。霍金将他从1976年到1992年撰写的14篇文章收集成一本科普著作《黑洞与婴儿宇宙》,于1993年发行。在这本书里,霍金谈到他的生平,他怎样经历与奋战渐冻症,以及一些宇宙学理论,特别是黑洞怎样孕育出婴儿宇宙。1997年,英国广播公司与美国公共电视合作制成了六集电视节目《史蒂芬?霍金的宇宙》,这次,在霍金的坚决要求之下,节目内容完全聚焦于说明科学理论。2000年由于《时间简史》广受好评,霍金又于2001年撰写完成了姊妹作《胡桃里的宇宙》,概述霍金在完成《时间简史》之后的一些研究结果,历如,关于膜世界的研究结果。《胡桃里的宇宙》包括了霍金对于膜理论的一些意见,例如额外维度是否存在这问题并不具意义。人们只能检试额外维度数学模型是否恰当地描述宇宙来评价额外维度。2005年,霍金与伦纳德·姆沃迪瑙合作将《时间简史》重写与更新为更易懂易读,并且附有精美图片的著作《新时间简史》,希望更多读者能够通过这本书接触到这方面的知识。在于2006年出版的选集《上帝创造整数》里,霍金收录了数学史上最重要数学论文之中的31篇论文,并且简略描述了每篇论文作者的生平。自2006年以来,霍金、汤玛斯?赫陶格与詹姆斯·哈妥发展出的“自顶向下宇宙学”理论阐明,宇宙有很多种不同的初始态,而不是只有一种唯独的初始态,因此不该只表述从某种宇宙初始态预测出宇宙未来态的理论。实际而言,宇宙初始态是不可得知的,只有宇宙现在态是可得知、可观察的,因此只能从现在态逆着时间估算所有可能的初始态。自顶向下宇宙学假定,现在态选择所有能够导致现在态的过去历史。这样,这理论给出一条解释精细调节问题的路径。随着黑洞学研究快速进展,越来越多的学者认为霍金关于黑洞信息遗失的答案可能不正确。2004年,在爱尔兰都柏林举办的第十七届广义相对论与引力国际会议 (GR17)的一场演讲里,霍金给出他自己的相当具有争议性的解答,涉及到黑洞可能同时拥有多种拓扑(几何)。演讲完毕后,霍金邀请索恩与裴斯基一同来到台前,霍金正式认输,并且赠与裴斯基一本棒球百科全书。索恩要先研读霍金的论文,然后再决定是否认输。裴斯基很高兴得到赠礼,但是他承认并不了解霍金的演讲。翌年,他对于这论题正式发表论文,应用总和历史方法,思考宇宙的所有可能历史,拥有黑洞的历史会造成信息遗失,而不拥有黑洞的历史不会造成信息遗失,由于这两种状况会相互抵销,最终结局是信息不会遗失,因为根本就不会存在有任何俘获信息的黑洞。霍金与女儿露希、博士学生克里斯多福·盖发德于2007年共同撰写完成童书《乔治通往宇宙的秘密钥匙》,这本书讲述孩童乔治如何找到并借着一种宇宙闸门游遍整个太阳系。两年后,霍金与女儿露希撰写童书《乔治的宇宙寻宝》,这本书叙述乔治怎样迷航宇宙寻找生命的踪迹。过了两年,他们又再度合作完成童书《乔治与大爆炸》,这本书论述宇宙在大爆炸时的状况。2006年英国广播电台的“伟大英国人”节目于2002年选举霍金为最伟大的100名英国人中第25名。2006年,霍金凭借他“对于理论物理学与理论宇宙学做出杰出贡献。”荣获英国皇家学会的科普利奖章[52]两年后,霍金亲赴西班牙的圣地亚哥-德孔波斯特拉大学接受丰塞卡奖,这是为了表显他尽心竭志传播科学种子于广泛大众。隔年,美国总统巴拉克·奥巴马颁予霍金美国最高的平民荣誉总统自由勋章,表彰他克服身体残障、拓展科学疆界。又过四年,霍金获颁基础物理学特别突破奖,奖金3,000,000美元,为了奖励他“发现黑洞的霍金辐射,和他对于量子引力学与早期宇宙量子学的深度贡献。”2009年根据剑桥大学的校规,卢卡斯数学教授必须在67岁时退休,霍金因此于2009年卸任,但他仍可继续在应用数学与理论物理系作研究,他的新头衔是“剑桥理论宇宙学中心研究主任”。为了抗议基础研究与科学教育的经费被裁减,他扬言很可能搬迁至加拿大。谣传他退休后或许会到加拿大的普里美特理论物理研究所任职。目前,他在剑桥大学仍然拥有宽敞的私人办公室,有私人助理专门处理事务,还有很多博士学生实现他的奇点子。霍金的私人助理表示,霍金热爱他的工作,他非常快乐,学校非常需要他,他尚未草拟任何退休计划。霍金依然雄心勃勃地设定了超高难度研究目标:彻底了解宇宙,为什么它是如此,为什么它竟然存在?当被问到何时才可达成这目标之时,他重复先前在卢卡斯数学教授就职演讲的预测:这世纪结束之前。2015年霍金与俄国科技界亿万富翁尤里·米尔纳于2015年7月20日共同发起突破倡议,其目标是在探寻外星生命,尝试回答命题:“我们是否孤独地生存在这浩瀚宇宙之中?”在生命的最后几年,霍金一直在关注着人工智能等新科技的发展和对人类的影响。他多次提醒人类,要尽量避免人类通过AI建造更高级的武器,进而摧毁人类。他提出,未来“人工智能可能毁掉人类”,人类需要建立有效机制,用逻辑和理性去控制未来可能出现的威胁,防止其威胁进一步上升。霍金觉得,如果现在人们还不能看清未来,不能为未来的事情做好最坏打算,建立相对于人工智能更好地管理办法,人类最终都会败给人工智能,只不过是时间问题。霍金去世了,他生前的预言能否变成现实,人类是否有意识的去建立措施有效地管理AI使用?只能等未来去书写。
03-17
2018
2018年互联网加密必备:SSL证书
 告别过去的2017,展望2018。在新的一年里,“加密”一词将会在互联网中展开热烈的话题。2018年是互联网加密的重要转折点,在过去的2017年中,全球各大主流浏览器都在推动网络站点加密。从去年年初起,Google和Mozilla浏览器的用户界面进行升级,对输入密码字段的HTTP站点开始标记“不安全”标识。大半年过去后,10月份,警告又一次上升,浏览器对任何带有文本字段的HTTP页面发出“不安全”警告。到今年2018年,浏览器将把所有的HTTP站点都标识为“不安全”。因此,今年如果各大站长的站点并没有正确安装SSL证书迁移到HTTPS的情况下,您的网站将会别浏览器默认为“不安全”的网站。目前仍旧有数百万个网站使用HTTP协议,如果这些网站不及时更新,将被全球各大主流浏览器列入黑名单。为什么站点需要申请SSL证书就目前而言,最直接的原因是浏览器将HTTPS列为基本的要求,而设置HTTPS最常用的解决方案是正确部署安全的SSL证书。以往,互联网是建立在HTTP(超文本传输协议)的基础上,HTTP并成为使用最广泛的网络协议。但HTTP存在一个街知巷闻的缺点:不安全。任何通过HTTP连接传输的信息都是明文、公开的,第三方极其容易窃取传输的信息,发起中间人攻击。当站长正确部署SSL证书时,用户可通过HTTPS访问服务端。而HTTPS是HTTP的安全版本,使用SSL证书加密功能保护客户端与服务端之间传输的信息。而近年来,随着网络攻击不断增长,网络安全成为互联网重要的模块,而SSL证书是浏览器最基本的安全标准。为什么是由浏览器推动HTTPS协议。浏览器在互联网中充当着十分重要的角色。浏览器是用户访问互联网的重要窗口,当用户访问网站时,都须通过浏览器指向正确的网站地址来完成。如果当遇到不安全的网站,浏览器向用户发出警告时,认为该站点存在安全隐患,用户就会对是否继续访问该网站做出考虑。因此浏览器在客户端安全具有相当大的影响力。它们会站在用户角度考虑,尽量保障用户的利益。因此,安全的连接意味着提升用户的网络安全性,创建更安全的互联网。为何选择SSL证书从2017年推动的各项政策来看,浏览器将全面推进互联网传输协议升级到HTTPS已是势在必行的事实。除了提升网络安全连接之外,还有另一个技术原因。HTTP/2是HTTP的继承者。它速度更快,性能更好。但HTTP/2也需要安全连接。到目前为止,HTTP/2的推出已经是渐进的,是互联网普遍采用的标准。而要求SSL也有助于转换到HTTP/2。SSL如何工作?SSL证书一般部署在服务器上,允许客户端对服务器进行身份验证,并强制建立安全连接。各大站长可向权威的证书颁发机构(如GDCA)申请获取SSL证书,然后将证书正确部署在服务器上,使网站的域名指向HTTPS地址而不是HTTP地址。完成后,当访问者访问站点时,他们将收到一份证书的副本,以及第一次连接时的公钥。然后用户的浏览器使用证书及其底层公钥基础设施对服务器进行身份验证(确保它是合法的所有者)。身份确认无误后,用户就可以放心的浏览网站。最后2018年将是互联网使用HTTPS加密收紧的一年,SSL证书成为浏览器向安全网站发出的硬性指标,HTTP升级到HTTPS不再是站长们的选择题。国内的站长们可通过数安时代(GDCA)申请SSL证书,GDCA是国内已通过WEBTRUST国际认证,具备了国际化的电子认证服务能力的CA机构之一。其拥有国内自主签发信鉴易 TrustAUTH SSL证书以及是国际知名品牌:GlobalSign、Symantec、GeoTrust SSL证书国内金牌代理商,满足各种用户对SSL的各种要求,广大用户可根据自身的需求向GDCA申请合适的SSL证书,GDCA的专业团队将会为您提供最佳的HTTPS解决方案。                           
02-08
2018
E01
div css布局中对于图片列表或图片排版时,图片不是固定宽度高度大小,但图片占位是固定宽度高度,这个时候如果使用CSS固定死图片大小(宽度 高度),这个时候如果图片相对于这个位置不是等比例大小,那么这张图片就会变形,让图片变的不清晰,这个时候想让图片不变形又按比例缩放,如何解决?CSS图片缩小不变形,图片自动缩小,图片按比例等比例缩小不变形解决。解决方法有两种:第一种,让图片和布局宽度高度成等比例,这样CSS设置死宽度和高度,图片也是等比例缩小,图片也不会变形。比如淘宝,要求店铺主上传产品封面图片是正方形的,为什么,因为图片宝贝展示列表都是正方形的排版布局,这样要求上传合适正方形宝贝封面图片,也是让图片不变形。所以有条件的情况下,大家将首页、图片列表页的布局宽度高度保持一致,上传图片时候将图片先进行处理为布局宽度高度时等比例放大尺寸的。第二种,使用CSS max-width和max-height实现图片自动等比例缩小很简单我们要使用到max-width和max-height,这样即可设置对象图片最大宽度和最大高度,这样图片就会等比例缩放图片,然图片相对不变形清晰。以下通过实例对比方法让大家掌握CSS控制图片缩小不变形技巧。一、原始描述 这里有个div,CSS宽度和CSS高度方便为300px和100px同时设置1px黑色边框,里面放了一张图片(图片原始宽度650px为高度为406px)。并通过CSS固定死图片宽度高度。1、HTML源代码:<!DOCTYPE html>  <html>  <head>  <meta charset="utf-8" />  <title>图片缩小不变形实例  我改了下 </title>  <style>  .divcss{ border:1px solid #000; width:300px; height:100px}  .divcss img{width:300px; height:100px}  </style>  </head>    <body>  <div class="divcss">  <img src="img.jpg" />  </div>  </body>  </html>2、CSS固定死图片宽度高度实例截图原始图片展示:原始图片截图css固定宽度高度后变形的图片截图3、小结,通过CSS固定对象内图片高度宽度,这样图片如果不是等比例缩小,那么图片就变形了。二、CSS解决图片缩小不变形实例使用max-width:300px或max-height:100px,即可解决图片比例缩小。但这样存在一个问题,如果按照宽度缩放,但图片过高会超出溢出盒子,这个时候需要对父级使用overflow:hidden隐藏超出图片内容。但是使用max-width或max-height,IE6不支持,我们需要设置个width:expression(this.width > 300 ? "300px" : this.width);或者height:e­xpression(this.height>100?"100px":this.height);。解决IE6支持max-heightdiv css解决IE6支持max-width一般情况下只需要设置好宽度限制,比如这里只设置最大宽度为300px(max-width:300px),然后对父级使用overflow:hidden隐藏溢出图片,同时为了兼容IE6我们设置个width:expression(this.width > 300 ? "300px" : this.width);解决即可。1、具体解决DIV+CSS实例代码如下:<!DOCTYPE html>  <html>  <head>  <meta charset="utf-8" />  <title>图片缩小不变形实例 www.divcss.com</title>  <style>  .divcss{ border:1px solid #000; width:300px; height:100px;overflow:hidden}  .divcss img{max-width:300px;_width:expression(this.width > 300 ? "300px" : this.width);}  </style>  </head>    <body>  <div class="divcss">  <img src="img.jpg" />  </div>  </body>  </html>2、浏览器测试效果截图css图片缩小等比例缩小后不变形截图3、缺点介绍,如果使用此方法,兼容各大浏览器不变形,但图片不是完整显示的。
02-01
2018
div css布局中CSS图片大小自动按比例等比例缩小图片不变形解决技巧
div css布局中对于图片列表或图片排版时,图片不是固定宽度高度大小,但图片占位是固定宽度高度,这个时候如果使用CSS固定死图片大小(宽度 高度),这个时候如果图片相对于这个位置不是等比例大小,那么这张图片就会变形,让图片变的不清晰,这个时候想让图片不变形又按比例缩放,如何解决?CSS图片缩小不变形,图片自动缩小,图片按比例等比例缩小不变形解决。解决方法有两种:第一种,让图片和布局宽度高度成等比例,这样CSS设置死宽度和高度,图片也是等比例缩小,图片也不会变形。比如淘宝,要求店铺主上传产品封面图片是正方形的,为什么,因为图片宝贝展示列表都是正方形的排版布局,这样要求上传合适正方形宝贝封面图片,也是让图片不变形。所以有条件的情况下,大家将首页、图片列表页的布局宽度高度保持一致,上传图片时候将图片先进行处理为布局宽度高度时等比例放大尺寸的。第二种,使用CSS max-width和max-height实现图片自动等比例缩小很简单我们要使用到max-width和max-height,这样即可设置对象图片最大宽度和最大高度,这样图片就会等比例缩放图片,然图片相对不变形清晰。以下通过实例对比方法让大家掌握CSS控制图片缩小不变形技巧。一、原始描述 这里有个div,CSS宽度和CSS高度方便为300px和100px同时设置1px黑色边框,里面放了一张图片(图片原始宽度650px为高度为406px)。并通过CSS固定死图片宽度高度。1、HTML源代码:<!DOCTYPE html>  <html>  <head>  <meta charset="utf-8" />  <title>图片缩小不变形实例 www.divcss.com</title>  <style>  .divcss{ border:1px solid #000; width:300px; height:100px}  .divcss img{width:300px; height:100px}  </style>  </head>    <body>  <div class="divcss">  <img src="img.jpg" />  </div>  </body>  </html>2、CSS固定死图片宽度高度实例截图原始图片展示:原始图片截图css固定宽度高度后变形的图片截图3、小结,通过CSS固定对象内图片高度宽度,这样图片如果不是等比例缩小,那么图片就变形了。二、CSS解决图片缩小不变形实例使用max-width:300px或max-height:100px,即可解决图片比例缩小。但这样存在一个问题,如果按照宽度缩放,但图片过高会超出溢出盒子,这个时候需要对父级使用overflow:hidden隐藏超出图片内容。但是使用max-width或max-height,IE6不支持,我们需要设置个width:expression(this.width > 300 ? "300px" : this.width);或者height:e­xpression(this.height>100?"100px":this.height);。解决IE6支持max-heightdiv css解决IE6支持max-width一般情况下只需要设置好宽度限制,比如这里只设置最大宽度为300px(max-width:300px),然后对父级使用overflow:hidden隐藏溢出图片,同时为了兼容IE6我们设置个width:expression(this.width > 300 ? "300px" : this.width);解决即可。1、具体解决DIV+CSS实例代码如下:<!DOCTYPE html>  <html>  <head>  <meta charset="utf-8" />  <title>图片缩小不变形实例 www.divcss.com</title>  <style>  .divcss{ border:1px solid #000; width:300px; height:100px;overflow:hidden}  .divcss img{max-width:300px;_width:expression(this.width > 300 ? "300px" : this.width);}  </style>  </head>    <body>  <div class="divcss">  <img src="img.jpg" />  </div>  </body>  </html>2、浏览器测试效果截图css图片缩小等比例缩小后不变形截图3、缺点介绍,如果使用此方法,兼容各大浏览器不变形,但图片不是完整显示的。
01-31
2018
c++01
// Updates history of min bitrates. // After this method returns min_bitrate_history_.front().second contains the // min bitrate used during last kBweIncreaseIntervalMs. // 主要结合这个函数解释下变量min_bitrate_history_ // 这个变量的两个维度,front记录的是离当前最远的时间, // 每个速率都是按照时间先后顺序逐渐push到尾部。 // 因此更新的时候,需要先将超时的元素从列表头剔除。 // 后一个维度是最小速率值, // 在相同的时间区间内,保留最小的速率值。 // |-------Interval 1---------|----------Interval 2------| // |                          |                          | // |--t1 < t2 < t3 < t4 < t5--|--t1 < t2 < t3 < t4 < t5--| // 这样的操作较为简单,不用在每次插入元素时去判断对应的时间区域,再找到对应时间区间的最小值,用部分冗余的内存换取操作的快捷。 void SendSideBandwidthEstimation::UpdateMinHistory(int64_t now_ms) {   // Remove old data points from history.   // Since history precision is in ms, add one so it is able to increase   // bitrate if it is off by as little as 0.5ms.   while (!min_bitrate_history_.empty() &&          now_ms - min_bitrate_history_.front().first + 1 >              kBweIncreaseIntervalMs) {     min_bitrate_history_.pop_front();   }   // Typical minimum sliding-window algorithm: Pop values higher than current   // bitrate before pushing it.   while (!min_bitrate_history_.empty() &&          bitrate_ <= min_bitrate_history_.back().second) {     min_bitrate_history_.pop_back();   }   min_bitrate_history_.push_back(std::make_pair(now_ms, bitrate_)); }
01-31
2018
webrtc中rtcp反馈与码率控制模块分析
0. 参考文档1 google congestion control1. 简介webrtc的带宽估计分为两部分,一部分为发送端根据rtcp反馈信息进行反馈,另一部分为接收端根据收到的rtp数据进行相应的码率估计[1]。 本文先分析发送端根据rtcp反馈信息进行码率调整的部分代码。具体计算公式: 2. 代码结构2.1 类关系rtp_stream_receiver中有一个继承自抽象类RtpRtcp的ModuleRtpRtcpImpl,ModuleRtpRtcpImpl中有一个rtcp_receiver。当有RTCP包到来时,逐层处理至rtcp_receiver,当包是rtcp receiver report包,则会将包解析,然后在ModuleRtpRtcpImpl中再次调用rtcp_receiver中的TriggerCallbacksFromRTCPPacket函数,触发对应rtcp的一些事件,反馈触发的主要是_cbRtcpBandwidthObserver的观察者(RtcpBandwidthObserverImpl),这个观察者收到对应的report block之后会计算成带宽估计所需要的参数,并调用属主bitratecontrolImpl类对带宽进行估计,这里会调用SendSideBandwidthEstimation中的UpdateReceiverBlock进行实际的带宽评估。2.2 调用关系图3. 代码分析3.1 HandleReportBlock这个函数中最主要的部分就是RTT的计算,webrtc中对于RTT平滑的因子是一个线性增长的因子。/* 这个函数根据对应的report block生成了一个新的RTCPReportBlockInformation结构体,  * 并计算出对应的RTT,多report block在调用点处执行循环。  */ void RTCPReceiver::HandleReportBlock(     const RTCPUtility::RTCPPacket& rtcpPacket,     RTCPPacketInformation& rtcpPacketInformation,     uint32_t remoteSSRC)     EXCLUSIVE_LOCKS_REQUIRED(_criticalSectionRTCPReceiver) {   // This will be called once per report block in the RTCP packet.   // We filter out all report blocks that are not for us.   // Each packet has max 31 RR blocks.   //   // We can calc RTT if we send a send report and get a report block back.   // |rtcpPacket.ReportBlockItem.SSRC| is the SSRC identifier of the source to   // which the information in this reception report block pertains.   // Filter out all report blocks that are not for us.   if (registered_ssrcs_.find(rtcpPacket.ReportBlockItem.SSRC) ==       registered_ssrcs_.end()) {     // This block is not for us ignore it.     return;   }   RTCPReportBlockInformation* reportBlock =       CreateOrGetReportBlockInformation(remoteSSRC,                                         rtcpPacket.ReportBlockItem.SSRC);   if (reportBlock == NULL) {     LOG(LS_WARNING) << "Failed to CreateReportBlockInformation("                     << remoteSSRC << ")";     return;   }   // 用于RTCP超时的计算。   _lastReceivedRrMs = _clock->TimeInMilliseconds();   // 其他字段的拷贝。   const RTCPPacketReportBlockItem& rb = rtcpPacket.ReportBlockItem;   reportBlock->remoteReceiveBlock.remoteSSRC = remoteSSRC;   reportBlock->remoteReceiveBlock.sourceSSRC = rb.SSRC;   reportBlock->remoteReceiveBlock.fractionLost = rb.FractionLost;   reportBlock->remoteReceiveBlock.cumulativeLost =       rb.CumulativeNumOfPacketsLost;   if (rb.ExtendedHighestSequenceNumber >       reportBlock->remoteReceiveBlock.extendedHighSeqNum) {     // We have successfully delivered new RTP packets to the remote side after     // the last RR was sent from the remote side.     _lastIncreasedSequenceNumberMs = _lastReceivedRrMs;   }   reportBlock->remoteReceiveBlock.extendedHighSeqNum =       rb.ExtendedHighestSequenceNumber;   reportBlock->remoteReceiveBlock.jitter = rb.Jitter;   reportBlock->remoteReceiveBlock.delaySinceLastSR = rb.DelayLastSR;   reportBlock->remoteReceiveBlock.lastSR = rb.LastSR;   if (rtcpPacket.ReportBlockItem.Jitter > reportBlock->remoteMaxJitter) {     reportBlock->remoteMaxJitter = rtcpPacket.ReportBlockItem.Jitter;   }   int64_t rtt = 0;   uint32_t send_time = rtcpPacket.ReportBlockItem.LastSR;   // RFC3550, section 6.4.1, LSR field discription states:   // If no SR has been received yet, the field is set to zero.   // Receiver rtp_rtcp module is not expected to calculate rtt using   // Sender Reports even if it accidentally can.   if (!receiver_only_ && send_time != 0) {     // 当RR在SR之前发送,send_time为0.     // delay计算:     // Send SR                                                       Receive RR     //  |                          delay in RR                           |     //  |                        ||                         |     //  ||             ||     //     // RTT = total_time - delay_in_RR     //     = receiver_rr_time - send_sr_time - delay_in_RR     // 即使中间几个SR丢包,但是如果RTT本身是平滑的,那么RTT不会受到这几个丢包的影响     // 因为SR->RR之间的delay可以精确计算。     uint32_t delay = rtcpPacket.ReportBlockItem.DelayLastSR;     // Local NTP time.     uint32_t receive_time = CompactNtp(NtpTime(*_clock));     // RTT in 1/(2^16) seconds.     uint32_t rtt_ntp = receive_time - delay - send_time;     // Convert to 1/1000 seconds (milliseconds).     rtt = CompactNtpRttToMs(rtt_ntp);     if (rtt > reportBlock->maxRTT) {       // Store max RTT.       reportBlock->maxRTT = rtt;     }     if (reportBlock->minRTT == 0) {       // First RTT.       reportBlock->minRTT = rtt;     } else if (rtt < reportBlock->minRTT) {       // Store min RTT.       reportBlock->minRTT = rtt;     }     // Store last RTT.     reportBlock->RTT = rtt;     // store average RTT     // RTT的平滑计算。     // 如果这个块是在CreateOrGetReportBlockInformation新生成的,     // 则权重会从0开始随着受到的report逐渐递增。     // srtt(i) = i/(i+1)*srtt(i-1) + 1/(i+1)*rtt + 0.5     if (reportBlock->numAverageCalcs != 0) {       float ac = static_cast(reportBlock->numAverageCalcs);       float newAverage =           ((ac / (ac + 1)) * reportBlock->avgRTT) + ((1 / (ac + 1)) * rtt);       reportBlock->avgRTT = static_cast(newAverage + 0.5f);     } else {       // First RTT.       reportBlock->avgRTT = rtt;     }     reportBlock->numAverageCalcs++;   }   TRACE_COUNTER_ID1(TRACE_DISABLED_BY_DEFAULT("webrtc_rtp"), "RR_RTT", rb.SSRC,                     rtt);   // 添加回rtcpPacketInformation,在ModuleRtpRtcpImpl中会使用这个进行事件回调。   rtcpPacketInformation.AddReportInfo(*reportBlock); }3.2 UpdateMinHistory这个函数主要用于更新变量min_bitrate_history_,这个变量将会作用于上升区间,用来作为基数,这里简单描述下。// Updates history of min bitrates. // After this method returns min_bitrate_history_.front().second contains the // min bitrate used during last kBweIncreaseIntervalMs. // 主要结合这个函数解释下变量min_bitrate_history_ // 这个变量的两个维度,front记录的是离当前最远的时间, // 每个速率都是按照时间先后顺序逐渐push到尾部。 // 因此更新的时候,需要先将超时的元素从列表头剔除。 // 后一个维度是最小速率值, // 在相同的时间区间内,保留最小的速率值。 // |-------Interval 1---------|----------Interval 2------| // |                          |                          | // |--t1 < t2 < t3 < t4 < t5--|--t1 < t2 < t3 < t4 < t5--| // 这样的操作较为简单,不用在每次插入元素时去判断对应的时间区域,再找到对应时间区间的最小值,用部分冗余的内存换取操作的快捷。 void SendSideBandwidthEstimation::UpdateMinHistory(int64_t now_ms) {   // Remove old data points from history.   // Since history precision is in ms, add one so it is able to increase   // bitrate if it is off by as little as 0.5ms.   while (!min_bitrate_history_.empty() &&          now_ms - min_bitrate_history_.front().first + 1 >              kBweIncreaseIntervalMs) {     min_bitrate_history_.pop_front();   }   // Typical minimum sliding-window algorithm: Pop values higher than current   // bitrate before pushing it.   while (!min_bitrate_history_.empty() &&          bitrate_ <= min_bitrate_history_.back().second) {     min_bitrate_history_.pop_back();   }   min_bitrate_history_.push_back(std::make_pair(now_ms, bitrate_)); }3.3 UpdateEstimate函数UpdateReceiverBlock会根据当前的report block对当前带宽估计的一些变量进行相应的赋值,此外,只有当传输包的数量达到一定数量才会再次触发带宽估计的调整。函数UpdateEstimate是主要用于带宽估计的函数。void SendSideBandwidthEstimation::UpdateEstimate(int64_t now_ms) {   // We trust the REMB and/or delay-based estimate during the first 2 seconds if   // we haven't had any packet loss reported, to allow startup bitrate probing.   if (last_fraction_loss_ == 0 && IsInStartPhase(now_ms)) {     uint32_t prev_bitrate = bitrate_;     // bwe_incoming_是remb更新的值,如果当前无丢包且在启动阶段,直接使用remb的值。     if (bwe_incoming_ > bitrate_)       bitrate_ = CapBitrateToThresholds(now_ms, bwe_incoming_);       ...     }   }   UpdateMinHistory(now_ms);   // Only start updating bitrate when receiving receiver blocks.   // TODO(pbos): Handle the case when no receiver report is received for a very   // long time.   if (time_last_receiver_block_ms_ != -1) {     if (last_fraction_loss_ <= 5) {       // Loss < 2%: Increase rate by 8% of the min bitrate in the last       // kBweIncreaseIntervalMs.       // Note that by remembering the bitrate over the last second one can       // rampup up one second faster than if only allowed to start ramping       // at 8% per second rate now. E.g.:       //   If sending a constant 100kbps it can rampup immediatly to 108kbps       //   whenever a receiver report is received with lower packet loss.       //   If instead one would do: bitrate_ *= 1.08^(delta time), it would       //   take over one second since the lower packet loss to achieve 108kbps.         //TODO:tjl       // 这里与公式有一定不同:       // 1. 系数不同,且附带一定的修正值(向上取整加1kbps)       // 2. 取的是上一个时间间隔之内最小值,比较平滑。       bitrate_ = static_cast(           min_bitrate_history_.front().second * 1.08 + 0.5);       // Add 1 kbps extra, just to make sure that we do not get stuck       // (gives a little extra increase at low rates, negligible at higher       // rates).       bitrate_ += 1000;       event_log_->LogBwePacketLossEvent(           bitrate_, last_fraction_loss_,           expected_packets_since_last_loss_update_);     } else if (last_fraction_loss_  10%: Limit the rate decreases to once a kBweDecreaseIntervalMs +       // rtt.       if (!has_decreased_since_last_fraction_loss_ &&           (now_ms - time_last_decrease_ms_) >=               (kBweDecreaseIntervalMs + last_round_trip_time_ms_)) {         time_last_decrease_ms_ = now_ms;         // Reduce rate:         //   newRate = rate * (1 - 0.5*lossRate);         //   where packetLoss = 256*lossRate;           //TODO:tjl         // 当从未开始降低窗口值,且距离上一次衰减的时间差大于衰减周期加上rtt。         // 其实当前貌似只有这个case下会对这两个变量赋值。         // 这里的last_fraction_loss_是一次统计间隔(一定包数)之间的总丢包率。         // 丢包率的单位是1/256,因此这里是(1 - 丢包率/2) * 当前速率         // 与公式相同。         bitrate_ = static_cast(             (bitrate_ * static_cast(512 - last_fraction_loss_)) /             512.0);         has_decreased_since_last_fraction_loss_ = true;       }       event_log_->LogBwePacketLossEvent(           bitrate_, last_fraction_loss_,           expected_packets_since_last_loss_update_);     }   }   // 在有效范围内修正。   bitrate_ = CapBitrateToThresholds(now_ms, bitrate_); }