C++怎么对高拍仪potplayer放大画面后的画面进行漫游

&p&首先,你需要知道你的App被盗版了。这个很容易发现,App内建后台统计,你就能看到激活数量。如果某一天开始,你发现激活量变化猛增而itunes connect里面的付费购买量没什么变化,甚至不升反降了,那你就得赶紧去快用、同步推、pp助手、91助手、itools这几大流氓市场搜一下看是不是被盗版了。说起来很讽刺也很悲哀,我自己作为开发者,因为这个原因,不得不把手机越狱,装上了这些贼赃市场的客户端,因为pp助手、91助手的收录非常下流,只能在盗版的App市场上搜得到,在网站上根本搜不到。&br&&br&只要你不想忍气吞声、在砧板上任人宰割,我觉得有两种方法:A、你可以在公证自己的知识产权、对方偷盗的证据、自己的损失等等之后去法院告那些小偷。我支持做开发的大公司这么干,个人开发者做这种事情的时间、精力等等成本是显而易见的;B、有空就去这些贼赃市场搜自己的App名字,盯着这些家伙伸出的第三只手,一旦看到被盗了就通知对方下架,让贼过得不舒服,让那些越狱使用贼赃的盗版用户也不那么痛快。&b&App是我们的App,用户是我们的用户,我们不喊谁喊?我们不干谁干?&/b&&br&&br&个人的经历,针对同步推:&br&写邮件到,或者与QQ:联系。&br&他们会要求你提供软件著作权证明,如果没有的话,提供itunes connect 后台截图给他们也行,下面是我用itc后台截图证明了程序是我开发的以后的QQ聊天记录:&br&&/p&&blockquote&&p&程序猿 16:01:25&/p&&p&大概多长时间能看到你们下架? &/p&&br&&p&同步推小贼 16:21:29&/p&&p&已经安排好了,下面的人会将产品下架的 &/p&&br&&p&同步推小贼 16:21:32
&/p&&p&正版地址也要给你下架么 &/p&&br&&p&程序猿 16:21:41 &/p&&p&对的,你们所谓的“正版”也他妈下架,我们的程序只可能在App Store上架,谁他妈愿意跟你们一个贼赃市场瞎搅和&/p&&br&&p&程序猿 16:25:03&/p&&p&以后你们还会再收录吗? &/p&&br&&p&程序猿 16:26:15 &/p&&p&会不会我的版本这边一更新,你们他妈的又拿去上架了? &/p&&br&&p&同步推小贼 16:27:51
&/p&&p&我们是通过SKU禁止收录的,你不要换SKU就行&/p&&/blockquote&&br&update: 现在打过交道的已经有好几家了,将联系方式公布在这里:&br&&ul&&li&&b&同步推&/b&:写邮件到,或者与QQ:联系。态度还行,效率也蛮高,和同步推聊天结束半个小时就看到App下架了。&br&&/li&&li&&b&iTools&/b&:电话:0,或联系邮箱:marketing@thinksky.hk。目前是态度最好的一家,跟我联系的员工挺真诚也很负责任,坦言他很同情和佩服国内的个人开发者,所以加班都把App给我下架了。明珠暗投,认贼作父,岂不悲哉!&/li&&li&&b&pp助手&/b&:pp助手虽然表面上在bbs许愿区规定了禁止许愿书籍、教育、儿童、算命、色情类等版权严重应用,可偷起东西来却是一点都不含糊,所以,即使你的软件属于书籍教育等类别,也得盯着他们。pp助手的联系电话是打不通的,你可以发邮件至,要求他们下架。我的软件在发送邮件后三天才从他们的市场上消失。&/li&&li&&b&海马苹果助手&/b&:应该算是盗版界的新手,所以一般这种愣头青敢下狠手。盗完你软件翻遍网站根本找不到联系方式,或者压根就没人理你。还好我扮成他们的资深用户混进QQ群,找到了这个联系电话:010-。在经过我长达一周的时间里多次电话骚扰他们后,软件得到下架。&/li&&li&&b&快用手机助手&/b&:这帮**深得周**之真传,深谙人性。知道你们想下架,但是你们也怕麻烦,所以,干脆不给你们留任何有效的投诉渠道,让你翻遍网站都找不到,或者不给你任何回复,然后就此罢了随他盗版。但他们肯定低估了一个要捍卫自己作品的程序猿的意志,我经过多个渠道打听才找到的有效联系方式直接放出:,收到邮件回复当天即下架。&/li&&li&&b&91手机助手&/b&:91绝对是流氓中的**!破解版的收录很隐蔽,App在91的网站上搜不到,只有在他们的客户端里面才能找到;联系起来最麻烦,网站上提供的论坛或者QQ什么的纯粹是个幌子,发帖要审核,客服QQ已停用,可以打电话0跟客服联系;同步推和iTools都是客服帮忙后台下架,但是91需要去&a href=&//link.zhihu.com/?target=http%3A//market.sj.91.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&91手机资源商城&/a&注册提交你的身份证扫描件、源代码30行,等待审核通过认领App,认领成功后自助删除下架,我的App下架整个流程耗时近一周。某些人还真是更懂中文,更懂中国人:网页搜索养了一帮盗版小说垃圾站、卖假药;mp3搜索偷别人的音乐;百科抄维基;将用户送入监狱(冯某“传授犯罪方法罪”);文库则更是中文出版界的毒瘤。偷盗是窃贼们的基因,买盗版App的市场也真是情理之中的事情;做大了就成了黑社会,绑架你提交身份证等信息注册成他们的“开发者”才能删除App,*!对了,这帮**还有一点比其他家更*:你已经已经下架了的软件,版本更新后又会重新收录!&/li&&/ul&&br&那些盗版市场的运营者们,我知道你们也是普通的年轻人,跟我邻居北漂的大哥大姐没什么两样。但是,出卖自己的灵魂做贼,你真的好意思给你的父母、子女讲你在干什么吗?白天干着偷鸡摸狗的勾当,半夜醒来的时候,内心深处真没有一点羞愧?给自己积点德吧,你们并不是没有选择。&br&&br&祝各位开发者好运。
首先,你需要知道你的App被盗版了。这个很容易发现,App内建后台统计,你就能看到激活数量。如果某一天开始,你发现激活量变化猛增而itunes connect里面的付费购买量没什么变化,甚至不升反降了,那你就得赶紧去快用、同步推、pp助手、91助手、itools这几大…
&figure&&img src=&https://pic3.zhimg.com/v2-614be6fbae135_b.jpg& data-rawwidth=&675& data-rawheight=&611& class=&origin_image zh-lightbox-thumb& width=&675& data-original=&https://pic3.zhimg.com/v2-614be6fbae135_r.jpg&&&/figure&&p&最近一直在试用Movidius Neural Computing Stick,发现只要是基于Caffe或者Tensorflow的开源项目,都可以直接编译成计算棒支持的格式,写个Python脚本调用编译过的模型和配置文件,就能直接运行了,比较方便。&/p&&p&火了几个月的DeepFake让人眼前一亮,可惜家里没有高性能的工作站,没办法尝试。退而求其次,发现Yahoo有个开源的鉴黄项目OpenNSFW (Open Not-Suitable-For-Work)。虽然远没有换头来得精彩,但是至少是万里长征第一步:先鉴别,再打码/去码,最后做到惟妙惟肖的换头,是个不错的计划。OpenNSFW 是完全基于Caffe库开发的,所以可以直接编译使用:训练好的模型和配置文件都编译到计算棒的格式graph文件中。再写一个Python脚本就能开始鉴黄了:&/p&&p&程序的输出即 【非黄概率 | 涉黄概率】&/p&&p&涉黄概率低于0.2则为老少咸宜图片,大于0.8则是黄图,介于两者之间就是擦边球,需要人肉鉴别了。&/p&&p&&br&&/p&&p&人畜无害的小咪咪:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-fbe3d953deced3c313e75c4a_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&636& data-rawheight=&656& class=&origin_image zh-lightbox-thumb& width=&636& data-original=&https://pic4.zhimg.com/v2-fbe3d953deced3c313e75c4a_r.jpg&&&/figure&&p&经分析,是小黄图的概率不到万分之一,非黄概率100%无误。&/p&&p&&br&&/p&&p&在实验室不敢用真黄图来测试,那么就用比较暴露的比基尼试试。看来深度学习的AI还是比较智能的,不以裸露程度来鉴黄,比起当年的绿坝坝花季护航要靠谱多了。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-efa1c6ee32fd_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&542& data-rawheight=&657& class=&origin_image zh-lightbox-thumb& width=&542& data-original=&https://pic4.zhimg.com/v2-efa1c6ee32fd_r.jpg&&&/figure&&p&&br&&/p&&p&这么暴露都不算小黄图,那它到底能不能测出小黄图呢?这个问题显然不能在实验室得到验证,即使在私人场合得到验证也不能发布到公共网站上。于是用涉黄前的一个局部截图试了下,还真比较靠谱——已经大于20%概率了。。。在Yahoo的话应该就触发网管人肉鉴黄了。不管怎么说,比起全人肉鉴黄还是还省力方便多了。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-614be6fbae135_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&675& data-rawheight=&611& class=&origin_image zh-lightbox-thumb& width=&675& data-original=&https://pic3.zhimg.com/v2-614be6fbae135_r.jpg&&&/figure&&p&&br&&/p&&p&最后上点干货吧,利用计算棒SDK自带的分析工具可以分析整个深度神经网络的结构和各层对计算资源的需求程度。对于真正从事开发的程序员应该还是很有帮助的:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-300bf0dc75f69c63bf96b81_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1834& data-rawheight=&846& class=&origin_image zh-lightbox-thumb& width=&1834& data-original=&https://pic3.zhimg.com/v2-300bf0dc75f69c63bf96b81_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-05fdfb7bef2606030aec61_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1852& data-rawheight=&794& class=&origin_image zh-lightbox-thumb& width=&1852& data-original=&https://pic4.zhimg.com/v2-05fdfb7bef2606030aec61_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-2002df07dacfca19e268ba1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1237& data-rawheight=&939& class=&origin_image zh-lightbox-thumb& width=&1237& data-original=&https://pic1.zhimg.com/v2-2002df07dacfca19e268ba1_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-fa8a8ff5a0ddffb4e04998c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&914& data-rawheight=&1118& class=&origin_image zh-lightbox-thumb& width=&914& data-original=&https://pic3.zhimg.com/v2-fa8a8ff5a0ddffb4e04998c_r.jpg&&&/figure&&p&网络结构太宽,性能分析太长,于是都砍成两半截图了。&/p&&p&&br&&/p&&p&如果能找到基于Caffe/TF的CycleGAN之类的开源项目,也许下次可以试试DeepFake式的换脸了。&/p&
最近一直在试用Movidius Neural Computing Stick,发现只要是基于Caffe或者Tensorflow的开源项目,都可以直接编译成计算棒支持的格式,写个Python脚本调用编译过的模型和配置文件,就能直接运行了,比较方便。火了几个月的DeepFake让人眼前一亮,可惜家里没…
&p&想到哪答到哪。&/p&&hr&&p&&b&行业里不同的领域&/b&&/p&&p&&br&&/p&&p&从不同角度就会有不同的分类,我这只能给出其中一种分类。我把行业里不同的公司大致分为:做软件的,做互联网的,做游戏的。其中做软件的又可以细分成传统软件和新技术。&/p&&p&&br&&/p&&p&做软件的公司和做互联网的公司主要差别在商业逻辑上。&/p&&p&软件公司的逻辑是:开发的产品/服务直接卖钱盈利,一分钱一分货。这类公司的代表是微软,Windows与Office都是典型的成功软件产品。其他像IBM、Adobe、国内的用友、WPS等等公司一般也划分在做软件的里边。这里边有一类特殊的公司是开发新技术,然后卖技术方案,比如这几年出现的一大波做人工智能的创业公司。&/p&&p&而互联网公司的逻辑是:开发的主要产品可以亏本甚至免费,但是要获取大量用户,从这些用户身上想办法赚别的钱,俗称流量变现。这类公司的代表有AT(阿里腾讯,我没少写字母)、360,小米、百度、各出行、各电商、各视频,国外的Google、亚马逊等等,不在中国开研发分部的那些就不提了。它们的商业模式也各有千秋,做聊天工具的可以卖游戏,做交易平台的可以做金融,做搜索引擎的可以卖假药。做单车的。。。怎么看都赚不到钱。&/p&&p&前些年在传统软件公司里有个流行趋势是“互联网转型”,在一种不可言说的怕被时代抛弃的焦虑驱动下,老牌的软件厂商纷纷开始尝试推出免费版、提供云服务等等互联网式的商业模式。几年下来,真正意义上的成功者其实不多,更多的是表面上宣布自己完成了互联网转型,实际上还是靠卖软件的钱糊口。&/p&&p&而且也没听说哪个软件公司因为没转型互联网就被克死了,基本上都活得好好的。&/p&&p&一般来说,软件公司里技术或者销售主导,互联网公司里产品或者运营主导。&/p&&p&&br&&/p&&p&游戏公司里其实这两种商业模式都存在,但是游戏公司的状况和行业里别的公司在各方面差别很大,所以单独拿出来说。&/p&&p&游戏行业有很厉害的地方。很多人经常说互联网公司的市场运营手段比软件公司领先了十年,其实单从运营上讲,游戏公司也领先互联网公司十年。什么用户参与、VIP等级、虚拟货币,全都是游戏公司玩剩下的套路。&/p&&p&在游戏公司工作是真的累,每天加班到凌晨两三点钟是常态。我接触过不少在游戏公司里供职的程序员,基本上都呈现出明显的过劳特征。这在一定程度上影响了这个领域从业人员的心理健康状况,我亲眼见过某个游戏公司里有一女程序员,先后睡了六七个男同事,那还是个很小的团队,最后他们公司老板震怒,因为老板本以为那女的只和他睡过。&/p&&p&游戏行业的平均收入确实高,比软件公司和互联网公司都高,注意我说的是平均收入。这也很好理解,做游戏的就两种公司,要么流水过亿特别有钱,要么在上线一个月内倒闭。前一种给高薪理所当然,后一种......好像也没必要在待遇上太吝啬。&/p&&p&猎头公司间流传着一个段子:某某游戏公司坚决不招本科以上学历的,因为高考居然能上本科线,小时候肯定没好好打游戏。&/p&&p&嗯,说心里话,除非特别有爱,加入游戏公司请慎重。&/p&&p&&br&&/p&&p&行业平均收入 游戏&互联网&软件,工作强度也一样。&/p&&hr&&p&&b&这行业都有哪些公司。&/b&&/p&&p&&br&&/p&&p&简单从注册地点分类好了,有外企、民企、国企。&/p&&p&&br&&/p&&p&在十来年前,外企员工在收入水平上全面碾压国企和民企,当时Google给应届毕业生开的将近20万一年的Offer(好像是这样,我记不清了),在业界是个传奇。到了今天,民企和外企在薪资上大概看齐吧。在高收入人群里,民企碾压外企,不信的话数数这些年有多少外企高管跳槽到民营企业。但是外企收入一般不会太低,而民企里工资低于行业平均的也不少。&/p&&p&嗯,“如何看待软件外企高管跳槽到国内企业后大都没什么作为?”,或可另开一个问题。&/p&&p&&br&&/p&&p&外企有大有小,先说大公司。&/p&&p&大外企又有两型:干活型和养老型。干活的有Google微软亚马逊等等,养老的有IBM高通英特尔等等。&/p&&p&不对!等等!我收回!不然我要被喷了!IBM英特尔高通这些公司里努力工作的优秀员工是非常非常多的,就好像谷歌微软亚麻里混日子的也不在少数。“养老”只是个不恰当的比喻,我想说的是这些公司里的工作压力相对没那么大。那些压力相对较大的外企里,很大一部分压力其实来自同事间的竞争。&/p&&p&当然,外企员工说自己工作压力大,民企员工该笑了。&/p&&p&&br&&/p&&p&小外企里,先有一种另类,叫假外企。注册地点在国外,其实是根正苗红的本土民企,老板甚至还可能文化程度不高。这类公司一般从事外包行业,派遣自己的员工去帮客户公司做项目——本质上是客户想花少点钱找临时工干活,这些临时工就挂靠在外包公司里。这类假外企真外包的公司,也有做得很大的,比如......我还是不比如了,得罪人。&/p&&p&那些真正的小外企,啊,很可能是这个行业里性价比最高的一些公司了。一来待遇不低,很多小外企在中国的分部很小,小到总部懒得花时间去琢磨一下本地的薪资水平,直接凭感觉给钱:中国员工就比美国欧洲的总部员工少给一点点钱就好了,结果糊里糊涂给了个按中国行情算高薪的package。还有些更小点的创业公司,直接全球统一价都是有的。&/p&&p&二来,小外企的工作大都很轻松。我见过一家英国电商平台在北京的分公司,员工都吃过午饭才上班,吃完晚饭回家。&/p&&p&&br&&/p&&p&下面开始说民企。&/p&&p&----------------(先写到这,去玩会游戏。要是有人想看再继续)-------------------&/p&&p&&br&&/p&&p&----------------(没想到游戏玩了一整天,新出的女射手好骚气,我特么什么时候才能把这游戏卸载了?)-------------------&/p&&p&&br&&/p&&p&民营企业里风头最劲的,当属互联网公司,做软件和做游戏的名气要弱一些。(当然可能除了号称“全球最大游戏公司”的腾讯。)互联网经济正在成为中国在世界上的一张名片,只看一眼现在好莱坞每年有多少电影是中国互联网公司投资的便可见一斑,还有某(前)互联网大佬资金链断裂跑路,直接跑去美国造汽车的。&/p&&p&&br&&/p&&p&国内互联网公司里,谁才是老大?&/p&&p&&br&&/p&&p&阿里、腾讯说:“当然是我们大 AT 了,名气大,市值高,待遇好。”&/p&&p&百度:“说得没错!咱们 BAT 就是中国互联网的龙头企业。”&/p&&p&阿里、腾讯:“。。。。。。你是哪位?”&/p&&p&百度看了一眼自己市值,默默退下。&/p&&p&阿、腾:“这个B,有点傻啊”&/p&&p&&br&&/p&&p&这两(三)家公司,薪资待遇都不低,而且它们公司内部的员工评级体系是得到行业认可的。比如说,你从阿里跳槽出来,你只要告诉人你是阿里P7的,别人就大概知道该付你多少钱了。而你要说你是微软Level 63的,很多国内公司的HR都可能一脸懵B。&/p&&p&&br&&/p&&p&这是因为这几家公司规模巨大且经营多年,已经自有一套完整的薪资待遇体系。&/p&&p&也正因为如此,给钱给得最多的不是这些公司。&/p&&p&&br&&/p&&p&而是那些还没有上市,但已经当上市场龙头,正在疯狂扩张的互联网新贵们,比如滴滴、今日头条等等。由于极度不差钱,AT和百度成了这些公司最好的人才储备库。比如你是腾讯T3.1,一年35W薪水,那么我给你50W,来不来?&/p&&p&&br&&/p&&p&在这些公司上班,几乎全都很累,尤其是那些给钱多的。996是常态,加班费是神话,劳动法仿佛不存在。&/p&&p&&br&&/p&&p&相比之下,老一代的知名互联网公司,生活要悠闲得多,比如新浪、网易等这些门户网站。(当然这些公司也都有其他新业务,比如新浪微博和网易游戏。)我去中关村附近的一家门户办公室参观过,其员工纪律之散漫,会让你以为他们全都是公务员。&/p&&p&当然了,给钱也相对不是那么给力。&/p&&p&&br&&/p&&p&其实,在互联网公司工作,要么累到吐血但是工资高,要么工资低但是闲到想死,都不错。不同的生活方式选择而已。&/p&&p&最惨的是累到吐血而工资低。&/p&&p&这种互联网公司绝对不在少数,它们大都心气很高,有一个宏伟的企业愿景,目标是向AT这样的行业龙头看齐。毕竟,做互联网的,谁不想改变世界呢?&/p&&p&所以工作强度超过那些大公司是必须的,不然怎么追赶。&/p&&p&然而由于种种客观原因,它们现在还没做大,自然也给不起那么高的薪水。&/p&&p&(这个帖子背后说人坏话一律不点名不举例)&/p&&p&&br&&/p&&p&还有一类公司,初创企业。&/p&&p&我指的是那种真正的创业公司,只有十来个人甚至更少,到处找免费的孵化器提供工作场地那种。&/p&&p&而不是像雷军当年怀揣几十亿创办小米,也说自己是“创业“,骗谁呢... ...&/p&&p&这些公司的程序员工资一般都是真的很低,比他们去别的公司上班要低得多。&/p&&p&而且,初创企业上市最终上市的成功率,远少于10%。这种情况下,初创公司员工手里的期权(这是很多人选择初创企业的原因之一)其实一钱不值。&/p&&p&但是自愿加入这些公司的程序员也不在少数。&/p&&p&我猜测可能是他们搞混了“创业”和“给创业公司打工”两个概念。&/p&&p&其实是在给人廉价打工,但是老板说“我们是一起创业的伙伴哦”,大家就相信了,因为老板的笑容很真诚。&/p&&p&然后老板转身就到知乎上给人讲创业心得,“创业初期如何招到开发人员?”,老板答:“关键是能忽悠”,超过千赞。&/p&&p&&br&&/p&&p&最后想讲一类很特别的互联网公司。&/p&&p&它们的公司名字你可能从来没听说过,听说过也没用,它们经常换名字。&/p&&p&但是这些公司的员工,对什么阿里、腾讯、滴滴、头条们的高薪职位不屑一顾,那点小钱,不值得他们放在眼里。&/p&&p&而且在这些公司工作居然不是那么辛苦,有忙的时候,但也有闲得蛋疼的时候。&/p&&p&再而且,对员工技术水平要求居然不那么高。不需要你是什么211、985,也不需要你在什么大公司干过。&/p&&p&只不过想加入这些公司也没那么容易,一般要熟人引荐。&/p&&p&这些公司的业务领域统称为“黑色互联网产业”,简称黑产。&/p&&p&具体的业务种类有很多,APP推广、电商刷单、游戏货币交易、线上博彩、网络攻击等等,总体上,你很难说清楚这些企业的经营范围是否合法。&/p&&p&有时候大家会看到知乎上突然冒出来一个问题,内容极其无聊,但是有好多个关注,底下某个回答有好多个赞。这背后很可能就是一个做黑产的团队在操作,我确实听过一个人跟我说他们接知乎刷赞的业务。&/p&&p&&br&&/p&&p&下面讲一个黑产业务的典型场景,数据不太精确,看个意思就行:&/p&&p&某个大互联网公司上线了一款新APP,部门老大叫来他的运营总监,说:给你一千万预算,我要看到这个月底多300万用户。&/p&&p&运营总监小李琢磨了一下,通过正常渠道(比如投放广告),一千万的预算,搞到一百万用户都难。&/p&&p&他想了一下,决定把里边的七百万用来投放广告,预计能买到60万左右的真实用户。&/p&&p&然后他拨通了手机里一个神秘的号码:“喂,刘哥,我这有个单子,三百万,做250万下载,你能接吗?”&/p&&p&里边有那60万正常渠道来的用户,这很重要,部门老大不是傻子,太假的话一眼就能看穿。&/p&&p&电话那头的刘哥说:“没问题。不过我多问一句,你一共多少预算?要做多少量?”&/p&&p&“... ...预算一千万,做三百万的量。”&/p&&p&“那这样,你给我五百万,我给你做500万的下载,如何?”&/p&&p&“。。。。。。这个,不太好吧”&/p&&p&“回头我单独给你返50万”&/p&&p&“就这么定了!”&/p&&p&最后大家都很开心。APP的用户数据很漂亮,超额完成目标,部门老大的年终奖有了。运营团队功不可没,小李的年终奖也有了,他还偷偷给自己买了辆新车,但是不敢开到公司。&/p&&p&至于那五百万的下载量,可能是用脚本在手机模拟器上下载的、可能是通过木马软件在用户手机上悄悄安装然后马上删除的(这也会计入数据)、也可能是用户在上日本电影交流网站时不小心点的。反正,没人在乎。&/p&&p&&br&&/p&&p&黑产在中国的市值之大,比很多人想象的都要大很多。&/p&&p&每年都有很多互联网创业公司倒闭,这些公司都拿过了几百万几千万甚至上亿的融资,其实真正的开发成本可能就几百万,花钱的最大头,就是市场推广。&/p&&p&而这些推广费用,很大一部分都流入了黑产。&/p&&p&最后只剩下迷茫的CEO:几千万的推广费花出去了,也有几百万的用户来下载了,为什么我们还是倒闭了?&/p&&p&当初从大公司挖来负责推广的那个COO早已不知去向。&/p&&p&&br&&/p&&p&------------------(先写到这,看还有没有人想往下看的,有就接着更新)----------&/p&
想到哪答到哪。行业里不同的领域 从不同角度就会有不同的分类,我这只能给出其中一种分类。我把行业里不同的公司大致分为:做软件的,做互联网的,做游戏的。其中做软件的又可以细分成传统软件和新技术。 做软件的公司和做互联网的公司主要差别在商业逻辑上…
&p&这种问题差不多已经烂大街了,各家电商实践这么多年,公开的资料都有很成熟的实践思路甚至源码,看现有回答都还有各种各样的问题,感觉各位真的很不走心的回答问题呢。&/p&&p&秒杀这个功能,往简单的说就是一个资源争夺的典型例子。一些书里经常会用多终端共享打印机来说明这种独占资源共享的场景。解决资源抢占冲突的手段往往就两个,减少冲突方或增加资源。&br&秒杀需要占用的最重要资源是库存计数,其次是执行时间。抓住这个关键点就好办了,用什么框架什么技术,无非也就是保证这个计数不被脏读脏写,同时保障其他流程快速稳定地运行至结束。&/p&&p&那么最简单的思路,就是将请求排队,再慢慢消化这些。也就是说,虽然很多订单请求过来,但是真正处理订单的处理程序就一个,所有请求被队列hold住后由单一程序处理,这样直接避免了脏读脏写问题。这种方案用得最多的就是下边很多答主提到的消息中间件。&br&但这样的方案是以降低吞吐量为代价的,毕竟仅安排一道程序处理队列,队列平均等待时间会非常长。&br&这种设计通常用户会感觉秒杀后系统相当长时间失去相应。&/p&&p&进阶的做法就是想办法快速消耗队列,比如不再使用单线程处理队列,转为仅使用队列进行任务调度,并由调度程序控制库存计数,订单后续操作分派到其他线程甚至其他服务完成。这样,库存计数仍然由单线程顺序操作,可以避免脏读脏写问题,同时调度线程可以迅速消耗队列,队列平均等待时间可以进一步缩短。&br&这样的秒杀模型就变成了一个,预先占有资源后并发处理后续流程的模型。如果抢占不到资源,调度器自然会将请求交由错误处理程序处理。&br&队列平均等待时间减少带来最直观的感受,就是用户觉得秒杀结果出来更快。&/p&&p&以上两种方案,是以保护共享资源为出发点做文章,为了保护共享资源,不可避免的选择降低资源访问频率来降低冲突可能性,从而影响程序速度和用户体验。&br&另一种思路是增加资源,从而进一步降低资源争夺的可能。&br&其中一种较为广泛的技术是多级缓存机制,其根本原理是将单一的库存计数以更细粒度拆分。这样可抢夺资源变多,资源争夺的概率就会降低。同时,这种设计还可以进一步横向扩展,充分利用集群优势。&/p&&p&更复杂的还有以单元架构为基础,结合以上多种手段,从每年天猫双十一后公开的文档看,几乎能扛住所有秒杀流量了。&/p&&p&想清楚了这些手段,用的什么框架,什么存储方案,几乎都能建立起一套轻松抗百万并发的系统,并不是其他回答所说的,框架不优秀导致,更不是简单一句优化就可以做到的。&/p&&p&建议题主仔细分析自己的业务需要多高的复杂度,需要多复杂的实现,秉承够用就好的选择,选择最佳方案。&/p&
这种问题差不多已经烂大街了,各家电商实践这么多年,公开的资料都有很成熟的实践思路甚至源码,看现有回答都还有各种各样的问题,感觉各位真的很不走心的回答问题呢。秒杀这个功能,往简单的说就是一个资源争夺的典型例子。一些书里经常会用多终端共享打印…
&p&&b&文章有点长,但是看完肯定有巨大收获,特别是针对想从事互联网行业想开发一个自己APP的人,这是我从自己多年外包和自己开发产品累计研发成本过千万的情况下得出的经验。&/b&&/p&&p&先说结论&/p&&p&&b&腾讯开发微信花的成本应该超过10个亿,真的技术难度很大,如果交给一个全栈工程师去做,可能要做1万年。下面详细的讲解和分析为什么成本这么高,都高在哪里。&/b&&/p&&p&本人之前就是做APP软件外包行业的,前后外包的APP开发上线过上百款,涉及领域从电商,教育,金融,物联网,医疗都有。去年开始转型,开始真正的开发了一款属于自己公司的互联网产品,期间真正的体验了一把给自己做产品跟做外包的巨大差别,也能足够说明为什么腾讯开发微信成本如此之高。&/p&&p&腾讯的微信开发成本高,大致可以分为这几种原因,以下会一一详细说明:&/p&&p&1. 功能的反复修改造成成本庞大,研发的过程中可能会不断的推翻之前的想法。&/p&&p&2.不同手机不同操作系统版本号,手机型号兼容性问题调试&/p&&p&3.庞大用户基数情况下的高并发问题的处理&/p&&p&4.有些功能不是你想开发就开发(比如消息推送),还要跟第三方手机厂商洽谈才能做,简单来说可能要给第三方厂商钱。&/p&&p&&br&&/p&&p&&b&1. 功能的反复修改造成成本庞大,研发的过程中可能会不断的推翻之前的想法。&/b&&/p&&p&我以前做外包公司的时候,大部分客户APP项目的开发成本都在50万以内,以二三十万之间的价格比较多,以最基本的注册登录功能为例。一般这种二三十万开发的注册登录安卓,IOS,加上后台的开发总耗时一般在2到3个工作日(3个工程师一起协同办公的情况下),包括写代码和调试bug的时间。遇到繁琐或者客户要求比较高的,可能反复改动下来总耗时一般不超过一周。&/p&&p&而我们真正在给自己做一个APP作为自己的互联网产品去运营的时候,我们光一个注册登录,就改了不下100次,前后总耗时保守估计超过50个工作日,花在光一个注册登录上的工程师的工资成本保守估计超过10万。&/p&&p&那么是什么原因造成了我们给自己做APP产品的时候,要改100次以上,前后耗时要50个工作日,同时光一个简单的注册登录工资成本要花十几万呢?&/p&&p&给大家简单看一下我们产品的注册登录页面,说说这里面的门道。&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-e1b499c1c2290deca9d08_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&301& data-rawheight=&536& class=&content_image& width=&301&&&/figure&&p&乍一看之下我们的注册登录页面功能,支持手机短信注册登录,邮件注册登录,微信授权登录,国际短信注册,仿佛也没什么复杂的。&/p&&p&但是其实这里面的门道非常非常复杂,我挑几个典型事情说一下。&/p&&p&现在APP很流行做QQ或者微信的授权登录,因为做了授权登录后,用户可以更低成本的跳过注册流程直接使用你APP的服务,这样提高了APP用户的使用率。&/p&&p&&b&但是这么做,是不是绝对的是好事呢?&/b&&/p&&p&&b&这么做或许对用户来说是好事,但是对APP平台方来说不一定是什么好事。这么做会导致一个很蛋疼的问题,就是你获取不到用户资料(用户的手机号)&/b&,微信授权登录的时候,微信并不会把用户的手机号或者是微信号给你,只会给你一个用户的微信昵称。这个东西并不能联系到用户本人。&/p&&p&&b&那么用户的手机号有多重要呢?拿到用户的手机号,可以很大程度上提高用户留存率!你们应该经常收到探探,王者荣耀,淘宝之类APP的短信,这些短信都是通过各种方式召回唤醒你这个暂时流失的老用户,或者是提醒你出了什么新功能新活动鼓励你去消费。&/b&&/p&&p&你只要一段时间不上线,探探就会给你发最近2小时又有几个美女小姐姐喜欢了你,让你过来看看。而王者荣耀会给你发什么诸葛亮新皮肤上线了之类的短信,召回和唤醒用户让用户去玩。&/p&&p&如果没有用户手机号,那就无法发送短信的,那就根本就做不到这一点。这是一种重要的提高用户活跃度和留存率的方式。&/p&&p&哪怕就是不为了提高用户的留存,如果用户反馈了什么问题和bug亟待解决,你也无法通过手机联系到用户去帮他解决问题。因为微信授权登陆你是什么有效的用户资料都拿不到的。&/p&&p&我们开始先是把微信授权登录按钮做的很大很显眼,后来就发现超过90%的用户都是用微信授权登录,不用手机号或邮箱注册。于是我们觉得这样很操蛋,不行,要想办法把微信的按钮搞的不是那么显眼。那么这个按钮到底放到哪里也很讲究,太小了用户找不到的话,可能也会导致注册率降低,很多人嫌麻烦可能就不注册了。太大了呢,就全是微信授权登录的。&/p&&p&那么就要不断的去尝试到底放在什么位置刚好,既希望用户通过手机号或邮箱来注册,同时希望他忽略微信。但是如果他一定要找微信又能找得到。&/p&&p&可能这么一个东西就够你调整五六次反复去尝试。&/p&&p&同时很多人可能做了微信授权登录又让用户首次的时候必须要强制绑定手机,这种机制也可能会引发用户反感,繁琐的流程可能会导致用户放弃注册或卸载APP。那么如何去设计注册登录提高注册率,每个细节都成了一个很值得琢磨和尝试的问题。&/p&&p&同时又比如说短信注册这块,你的APP支持不支持国际短信可能难度又差了N倍。如果你有海外用户的话,那么可能你还需要国际短信注册。同时又可能有些短信通道发送短信速度过慢,或者特定条件下无法发送出去,到达率低等。那么这时候还要设计一套机制来保证短信的发送率和到达率。&/p&&p&比如一般的短信通道是不接召回短信的,那么你还要有路子搞到能发召回短信的通道。以我们自己的产品为例,光短信通道就对接了3家,在不同的条件下用不同的通道来发送短信,搞这么复杂的目的是为了保证短信的发送速度和到达率以及其他的一些特殊情况。&/p&&p&光一个注册流程诸如此类的细节问题就不低于十几种。每种解决起来背后都要经过大量的尝试和成本。每一个文案,每一个按钮摆放的位置,颜色,都是经过大量的实验得出的结果,而不是拍脑袋得出的。&/p&&p&那么这么做有什么用呢?&/p&&p&我之前跟很多其他运营APP的公司聊过,很多人的下载到注册率只能达到70到80%,低的只有60%,&b&我们一开始的下载和注册率也只能达到75%到80%之间。而经过一系列长期的优化,现在可以达到95%左右的下载到注册率。稳步提升了15%左右的注册率。&/b&&/p&&p&&b&这意味着,如果同样的100万人下载我的APP,原来只有75到80万会注册成功去尝试我后续的APP服务,并可能长期留下来成为我的用户。而现在100万用户里会多出来15万人尝试并成为我的用户。&/b&&/p&&p&你说我这时间和精力花得值不值?&/p&&p&虽然回过头来在看,如果我们在研发的过程中想法不出现偏差,直接是像素级抄袭别人的东西那成本肯定低得多,因为不同自己思考为什么,也不存在反复推翻自己的过程。&b&好比我原来注册登录花了十几万,那如果是有现成的抄袭的话可能2万成本就能搞定。&/b&但是你要想清楚,每个产品的特点都不是不一样的,不同APP的用户特性也决定了注册登录页面设计成什么样子才合适,别人的不一定适合你。&/p&&p&Ps:&b&有兴趣的人可以研究下知乎的注册登录页面,也是暗藏玄机&/b&,任何大公司的APP产品,可以说注册登录页面几乎每年都在优化。其目的都是不断的尝试进一步提高产品的下载到注册率。你们多下载几个大公司的APP就知道了。&/p&&p&&b&我们作为一个小公司,光一个注册登录都做了十几万,而一个大公司可能光琢磨一个注册登录反复修改下来成本花上百万也正常。而我们之前做外包项目呢?一个注册登录撑死跟客户收个5000块,一般两三天搞完。这些细节有成本有预算去考虑吗?&/b&&/p&&p&&br&&/p&&p&而且这还只是一个注册登录,一个用户体验称得上好的软件既要平衡用户体验又要把用户引导像你需要的程度,那就需要每个功能都反复斟酌尝试。用户体验要好这六个大字,花多少钱都不为过,所以这也就是我前面说的,大公司的APP可能每个功能都是改过几百次上千次的。&/p&&p&&b&别人都说,大繁至简,但是在这里我想说一句,大简也至繁。&/b&&/p&&p&&br&&/p&&p&2.不同手机不同操作系统版本号,手机型号兼容性问题调试&/p&&p&微信作为一个国民级应用,在不同手机上的兼容性是做的很好的。但是这不代表这件事简单,大家肯定经常发现各类APP在手机上出现闪退,卡死,黑屏的情况。一般越是小公司做的东西越可能会这样。&/p&&p&IOS还好,国内光主流的安卓机型就有几百款,如果你要你的软件在每款手机上都能完美运行,不出现太多的闪退。那光把测试机型买齐就要上百万。买齐了后任何一个功能都要在不同品牌,不同操作系统版本号的手机上去测试。&/p&&p&又可能你的APP在华为P8上不会闪退,但是可能华为P9就会闪退,甚至可能打都打不开。也就是说不光是跨厂商,即使是同一个厂商生产的不同机型都可能会出现不同的问题。但是用户可不管你那么多,你APP如果频繁闪退,面临的必然是被卸载的结局。&/p&&p&还有一点很重要的要告诉大家的是,相对于买齐各类手机来测试的硬件成本来说,这个成本只是九牛一毛,真正高昂的是测试人员和你测出来后还要修复bug的程序员的工资成本。你不可能测出来bug不修吧?&/p&&p&一般大公司的产品,背后可能光测试人员都几十个人,每年发工资几百万甚至上千万。&/p&&p&小的APP开发商无法很好的做到这点,一般也就搞个十几台手机测试就了不起了,有些甚至只在自己一个人的手机上测试一下。所以也就导致了闪退频发。并不是你把功能代码写完了,就万事大吉了。各种兼容性问题如果要解决好,绝对是够你喝一壶。&/p&&p&&br&&/p&&p&3.庞大用户基数情况下的高并发问题的处理&/p&&p&这个问题前面的人说的都很多了,我就不说太多。简单来说同样一个功能,你1万日活和1亿日活的时候,会导致功能实现方式和成本上根本的变化。&/p&&p&微信在例如搜索等功能的研发成本上,并不是简单的一个付出了多少人员工资成本的问题。微信作为腾讯系的核心产品,里面用到的技术并不一定仅仅来自于微信团队自身的积累。腾讯在开发其他产品上的技术完全可以支援和嫁接过来,那么之前研发别的产品上的技术研发成本在微信里相当于是不需要走弯路了。&/p&&p&但是不是每个公司都有技术可以拿过来嫁接的,别人有不代表你有。&/p&&p&完全不可同日语。当然很多小公司一般根本不会遇到这个问题,所以也不需要考虑。&/p&&p&&br&&/p&&p&4.有些功能不是你想开发就开发(比如消息推送),还要跟第三方手机厂商洽谈才能做,简单来说可能要给第三方厂商钱。&/p&&p&大家应该都知道APP下拉框的消息推送功能。而消息推送要做好绝对是一个很坑爹的东西。基本小公司的消息推送都不是自己做,而是用环信和腾讯的一些第三方的系统来对接实现。当然你会看到腾讯和环信这些公司的官网上,会写着一些5分钟,三行代码对接之类的话。&/p&&p&不懂的人很容易误以为APP的消息推送功能实现起来真的只要3行代码五分钟搞定。因为这些第三方的公司只是相当于发送推送信息的通道,但是你APP具体的推送机制,在什么情况下推送还是要你自己来设计的。而设计这个东西对很多APP来说就非常复杂了。&/p&&p&以知乎为例吧,有人给你点赞了推送,有人关注你了推送,有人私信你了推送等等等等。这里可能就分为十几种到几十种情况,并且还不是来了消息就推送这么简单,因为如果来一条信息你就推送一条。那么遇到晚上用户睡觉了你还一直推送可能就会导致用户关闭推送功能甚至是卸载APP。同样哪怕是白天,过于频繁的推送也可能会导致用户反感,那么这时候设计一套合理的推送机制就很有挑战。&/p&&p&既既要用户能收到你的推送来提高APP的打开使用率,又要不导致用户反感是非常难的。这时候可能还要设计当多种推送条件都达成的时候,只推送其中部分消息。你也要考虑,你想以推送的形式告诉用户的东西是很多的,但是又不可能个个都推。那么这时候还要深入考虑如何去取舍。&/p&&p&&b&En.......最后你以为你把机制搞清楚了就万事大吉了?&/b&&/p&&p&这只是个开始,这么说吧,你后续还会遇到一系列更操蛋的问题。比如你会发现IOS的推送还好,用户基本都能收到。但是安卓的用户却老是根本收不到你的推送。这是为什么呢?&/p&&p&因为不同的安卓手机厂商可能在系统上就限定死了你必须要用他提供的推送接口,否则是推不过来的,你的程序在后台运行的时候会被系统本身杀死而导致你的推送信息发不过去。那么这时候你又要针对不同的系统去开发不同的推送功能。&/p&&p&最最蛋疼的是,有些厂商比如OPPO,你想做都做不了。我们之前就发现我们用户里面很活跃的一款机型OPPO R9,发现在OPPO R9这款机型上,大部分APP一安装,默认就是禁止推送的状态。只有小部分的例如微信,QQ,微博,知乎这样的APP的推送是默认开启的。而哪怕是百度贴吧,快手这样的大公司的APP的消息推送默认也是被禁止的状态。&/p&&p&从这点看知乎还是很牛逼的,能做到跟微信QQ微博一样让OPPO默认开启他的推送。至于这是怎么做到的,我暂时还不清楚,但是在官方并没有明确的文档来告诉你怎么搞。&/p&&p&我怀疑可能是这个事情要给OPPO钱,或者要去找他们谈才可以。而小公司在这点上根本是无能为力的。&/p&&p&------------------------------------------------------------------------------------------------------------&/p&&p&对于有些人说注册登录是小功能,应该好好把时间用在做产品上的我做个解释。&/p&&p&注册登录不是小功能,是最最基本的功能,你你APP的门槛。如果连最基本的注册登录都做不好?怎么保证其他的功能可以做得好?又何来产品体验好只说?&/p&&p&对于一个互联网公司来说,每一分钱都是应该花在刀口上的,现在这个年代获取一个用户的平均成本已经相较于移动互联网刚起来那会比如2012年上升了几百倍。获取任何一个用户都来之不易,很多APP现在获取一个用户的成本早已高到了十几元甚至几百元一个下载,如果控制不好下载到注册的转化率。会导致你大量推广的钱白白浪费,因为在注册这步就有大量的用户流失,那相应的APP的留存率和日活跃肯定也会随之被拉低。&/p&&p&同样的我想说一句,现在是2017年,人不能活在过去。2012年那会你随便做个什么东西可能都能获得大量用户和大量好评,因为那会稀奇还什么都没有。你的用户体验再查,UI界面再难看,功能在不好用,可能用户都可以接受。因为那会大家都差不多这水平,都很差。&/p&&p&但是现在已经2017年了,大部分APP的用户体验相较于2012年那早已不可同日语,BAT这类大公司投入的天量研发投入已经把整个市场的门槛和平均水平大大提高。用户对你的要求和预期早已不是2012年那样了。&/p&&p&现在你再把一些2012年做的东西拿到2017年来看,那可能是一坨大便。那么越是后期去创业,市场和用户对你的要求也越高,因为基本需求已被满足,蛋糕也被分得差不多了。那么现在杀出来的,一定更有可能是各种细节都能优化的非常好的,只有细节的堆砌才能决定所谓的用户体验好。&/p&&p&&b&用户体验好&/b& 这五个大字,岂是那么容易得来的?不优化打磨产品各种细节,你的日活和留存率从哪里来?指望天数掉馅饼?&/p&
文章有点长,但是看完肯定有巨大收获,特别是针对想从事互联网行业想开发一个自己APP的人,这是我从自己多年外包和自己开发产品累计研发成本过千万的情况下得出的经验。先说结论腾讯开发微信花的成本应该超过10个亿,真的技术难度很大,如果交给一个全栈工…
&figure&&img src=&https://pic1.zhimg.com/v2-faa5c6b7b138fda2fd381_b.jpg& data-rawwidth=&3000& data-rawheight=&2000& class=&origin_image zh-lightbox-thumb& width=&3000& data-original=&https://pic1.zhimg.com/v2-faa5c6b7b138fda2fd381_r.jpg&&&/figure&&h2&前言&/h2&&p&IM全称是『Instant Messaging』,中文名是即时通讯。在这个高度信息化的移动互联网时代,生活中IM类产品已经成为必备品,比较有名的如钉钉、微信、QQ等以IM为核心功能的产品。当然目前微信已经成长为一个生态型产品,但其核心功能还是IM。还有一些非以IM系统为核心的应用,最典型的如一些在线游戏、社交应用,IM也是其重要的功能模块。可以说,带有社交属性的应用,IM功能一定是必不可少的。&/p&&p&IM系统在互联网初期即存在,其基础技术架构在这十几年的发展中更新迭代多次,从早期的CS、P2P架构,到现在后台已经演变为一个复杂的分布式系统,涉及移动端、网络、安全和存储等技术的方方面面。其支撑的规模也从早期的少量日活,到现在微信这个巨头最新公布的达到9亿的日活的体量。&/p&&p&IM系统中最核心的部分是消息系统,消息系统中最核心的功能是消息的同步和存储:&/p&&ul&&li&&b&消息的同步&/b&:将消息完整的、快速的从发送方传递到接收方,就是消息的同步。消息同步系统最重要的衡量指标就是消息传递的实时性、完整性以及能支撑的消息规模。从功能上来说,一般至少要支持在线和离线推送,高级的IM系统还支持『多端同步』。&/li&&li&&b&消息的存储&/b&:消息存储即消息的持久化保存,这里不是指消息在客户端本地的保存,而是指云端的保存,功能上对应的就是『消息漫游』。『消息漫游』的好处是可以实现账号在任意端登陆查看所有历史消息,这也是高级IM系统特有的功能之一。&/li&&/ul&&p&本篇文章内容主要涉及IM系统中的消息系统架构,会介绍一种基于TableStore构建的消息同步以及存储系统的架构实现,能够支持消息系统中的高级特性『多端同步』以及『消息漫游』。在性能和规模上,能够做到全量消息云端存储,百万TPS以及毫秒级延迟的消息同步能力。&/p&&h2&架构设计&/h2&&p&本章主要会介绍基于TableStore的现代IM消息系统的架构设计,在详细介绍架构设计之前,会先介绍一种Timeline逻辑模型,来抽象和简化对IM消息同步和存储模型的理解。理解了Timeline模型后,会介绍如何基于此模型对消息的同步以及存储进行建模。基于Timeline模型,在实现消息同步和存储时还会有各方面的技术权衡,例如如何对消息同步常见的读扩散和写扩散两种模型进行对比和选择,以及针对Timeline模型的特征如何来选择底层数据库。&/p&&h2&传统架构 vs 现代架构&/h2&&p&&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-dba4ffc5dbf3f9edaf1fc75_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&805& data-rawheight=&306& class=&origin_image zh-lightbox-thumb& width=&805& data-original=&https://pic1.zhimg.com/v2-dba4ffc5dbf3f9edaf1fc75_r.jpg&&&/figure&&p&&br&&/p&&p&上图是消息系统传统架构与现代架构的简单对比。&/p&&p&传统架构下,消息是先同步后存储。对于在线的用户,消息会直接实时同步到在线的接收方,消息同步成功后,并不会进行持久化。而对于离线的用户或者消息无法实时同步成功时,消息会持久化到离线库,当接收方重新连接后,会从离线库拉取所有未读消息。当离线库中的消息成功同步到接收方后,消息会从离线库中删除。传统的消息系统,服务端的主要工作是维护发送方和接收方的连接状态,并提供在线消息同步和离线消息缓存的能力,保证消息一定能够从发送方传递到接收方。服务端不会对消息进行持久化,所以也无法支持消息漫游。&/p&&p&现代架构下,消息是先存储后同步。先存储后同步的好处是,如果接收方确认接收到了消息,那这条消息一定是已经在云端保存了。并且消息会有两个库来保存,一个是消息存储库,用于全量保存所有会话的消息,主要用于支持消息漫游。另一个是消息同步库,主要用于接收方的多端同步。消息从发送方发出后,经过服务端转发,服务端会先将消息保存到消息存储库,后保存到消息同步库。完成消息的持久化保存后,对于在线的接收方,会直接选择在线推送。但在线推送并不是一个必须路径,只是一个更优的消息传递路径。对于在线推送失败或者离线的接收方,会有另外一个统一的消息同步方式。接收方会主动的向服务端拉取所有未同步消息,但接收方何时来同步以及会在哪些端来同步消息对服务端来说是未知的,所以要求服务端必须保存所有需要同步到接收方的消息,这是消息同步库的主要作用。对于新的同步设备,会有消息漫游的需求,这是消息存储库的主要作用,在消息存储库中,可以拉取任意会话的全量历史消息。&/p&&p&以上是传统架构和现代架构的一个简单的对比,现代架构上整个消息的同步和存储流程,并没有变复杂太多,但是其能实现多端同步以及消息漫游。现代架构中最核心的就是两个消息库『消息同步库』和『消息存储库』,是消息同步和存储最核心的基础。而本篇文章接下来的部分,都是围绕这两个库的设计和实现来展开。&/p&&h2&Timeline模型&/h2&&p&在分析『消息同步库』和『消息存储库』的设计和实现之前,在本章会先介绍一个逻辑模型-Timeline。Timeline模型会帮助我们简化对消息同步和存储模型的理解,而消息库的设计和实现也是围绕Timeline的特性和需求来展开。&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-154e38af7807cfafddb7fd497e1c3adc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&497& data-rawheight=&195& class=&origin_image zh-lightbox-thumb& width=&497& data-original=&https://pic4.zhimg.com/v2-154e38af7807cfafddb7fd497e1c3adc_r.jpg&&&/figure&&p&&br&&/p&&p&如图是Timeline模型的一个抽象表述,Timeline可以简单理解为是一个消息队列,但这个消息队列有如下特性:&/p&&ul&&li&每个消息拥有一个顺序ID(SeqId),在队列后面的消息的SeqId一定比前面的消息的SeqId大,也就是保证SeqId一定是增长的,但是不要求严格递增。&/li&&li&新的消息永远在尾部添加,保证新的消息的SeqId永远比已经存在队列中的消息都大。&/li&&li&可根据SeqId随机定位到具体的某条消息进行读取,也可以任意读取某个给定范围内的所有消息。&/li&&/ul&&p&有了这些特性后,消息的同步可以拿Timeline来很简单的实现。图中的例子中,消息发送方是A,消息接收方是B,同时B存在多个接收端,分别是B1、B2和B3。A向B发送消息,消息需要同步到B的多个端,待同步的消息通过一个Timeline来进行交换。A向B发送的所有消息,都会保存在这个Timeline中,B的每个接收端都是独立的从这个Timeline中拉取消息。每个接收端同步完毕后,都会在本地记录下最新同步到的消息的SeqId,即最新的一个位点,作为下次消息同步的起始位点。服务端不会保存各个端的同步状态,各个端均可以在任意时间从任意点开始拉取消息。&/p&&p&消息漫游也是基于Timeline,和消息同步唯一的区别是,消息漫游要求服务端能够对Timeline内的所有数据进行持久化。&/p&&p&基于Timeline,从逻辑模型上能够很简单的理解在服务端如何去实现消息同步和存储,并支持多端同步和消息漫游这些高级功能。落地到实现的难点主要在如何将逻辑模型映射到物理模型,Timeline的实现对数据库会有哪些要求?我们应该选择何种数据库去实现?这些是接下来会讨论到的问题。&/p&&h2&消息存储模型&/h2&&p&&br&&/p&&figure&&img src=&https://pic2.zhimg.com/v2-aad795d969f46a8f9f726bf6_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&400& data-rawheight=&290& class=&content_image& width=&400&&&/figure&&p&&br&&/p&&p&如图是基于Timeline的消息存储模型,消息存储要求每个会话都对应一个独立的Timeline。如图例子所示,A与B/C/D/E/F均发生了会话,每个会话对应一个独立的Timeline,每个Timeline内存有这个会话中的所有消息,服务端会对每个Timeline进行持久化。服务端能够对所有会话Timeline中的全量消息进行持久化,也就拥有了消息漫游的能力。&/p&&h2&消息同步模型&/h2&&p&消息同步模型会比消息存储模型稍复杂一些,消息的同步一般有读扩散和写扩散两种不同的方式,分别对应不同的Timeline物理模型。&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-b16eaba67e2b427a7a931126fdd7e649_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&888& data-rawheight=&330& class=&origin_image zh-lightbox-thumb& width=&888& data-original=&https://pic4.zhimg.com/v2-b16eaba67e2b427a7a931126fdd7e649_r.jpg&&&/figure&&p&&br&&/p&&p&如图是读扩散和写扩散两种不同同步模式下对应的不同的Timeline模型,按图中的示例,A作为消息接收者,其与B/C/D/E/F发生了会话,每个会话中的新的消息都需要同步到A的某个端,看下读扩散和写扩散两种模式下消息如何做同步。&/p&&ul&&li&&b&读扩散&/b&:消息存储模型中,每个会话的Timeline中保存了这个会话的全量消息。读扩散的消息同步模式下,每个会话中产生的新的消息,只需要写一次到其用于存储的Timeline中,接收端从这个Timeline中拉取新的消息。优点是消息只需要写一次,相比写扩散的模式,能够大大降低消息写入次数,特别是在群消息这种场景下。但其缺点也比较明显,接收端去同步消息的逻辑会相对复杂和低效。接收端需要对每个会话都拉取一次才能获取全部消息,读被大大的放大,并且会产生很多无效的读,因为并不是每个会话都会有新消息产生。&/li&&li&&b&写扩散&/b&:写扩散的消息同步模式,需要有一个额外的Timeline来专门用于消息同步,通常是每个接收端都会拥有一个独立的同步Timeline,用于存放需要向这个接收端同步的所有消息。每个会话中的消息,会产生多次写,除了写入用于消息存储的会话Timeline,还需要写入需要同步到的接收端的同步Timeline。在个人与个人的会话中,消息会被额外写两次,除了写入这个会话的存储Timeline,还需要写入参与这个会话的两个接收者的同步Timeline。而在群这个场景下,写入会被更加的放大,如果这个群拥有N个参与者,那每条消息都需要额外的写N次。写扩散同步模式的优点是,在接收端消息同步逻辑会非常简单,只需要从其同步Timeline中读取一次即可,大大降低了消息同步所需的读的压力。其缺点就是消息写入会被放大,特别是针对群这种场景。&/li&&/ul&&p&在IM这种应用场景下,通常会选择写扩散这种消息同步模式。IM场景下,一条消息只会产生一次,但是会被读取多次,是典型的读多写少的场景,消息的读写比例大概是10:1。若使用读扩散同步模式,整个系统的读写比例会被放大到100:1。一个优化的好的系统,必须从设计上去平衡这种读写压力,避免读或写任意一维触碰到天花板。所以IM系统这类场景下,通常会应用写扩散这种同步模式,来平衡读和写,将100:1的读写比例平衡到30:30。当然写扩散这种同步模式,还需要处理一些极端场景,例如万人大群。针对这种极端写扩散的场景,会退化到使用读扩散。一个简单的IM系统,通常会在产品层面限制这种大群的存在,而对于一个高级的IM系统,会采用读写扩散混合的同步模式,来满足这类产品的需求。&/p&&h2&消息库设计&/h2&&p&基于Timeline模型,以及Timeline模型在消息存储和消息同步的应用,我们看下消息同步库和消息存储库的设计。&/p&&p&&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-0a34cd33c73cabab85c7bbb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&631& data-rawheight=&379& class=&origin_image zh-lightbox-thumb& width=&631& data-original=&https://pic4.zhimg.com/v2-0a34cd33c73cabab85c7bbb_r.jpg&&&/figure&&p&&br&&/p&&p&如图是基于Timeline的消息库设计。&/p&&ul&&li&&b&消息同步库&/b&:消息同步库用于存储所有用于消息同步的Timeline,每个Timeline对应一个接收端,主要用作写扩散模式的消息同步。这个库不需要永久保留所有需要同步的消息,因为消息在同步到所有端后其生命周期就可以结束,就可以被回收。但是如前面所介绍的,一个实现简单的多端同步消息系统,在服务端不会保存有所有端的同步状态,而是依赖端自己主动来做同步。所以服务端不知道消息何时可以回收,通常的做法是为这个库里的消息设定一个固定的生命周期,例如一周或者一个月,生命周期结束可被淘汰。&/li&&li&&b&消息存储库&/b&:消息存储库用于存储所有会话的Timeline,每个Timeline包含了一个会话中的所有消息。这个库主要用于消息漫游时拉取某个会话的所有历史消息,也用于读扩散模式的消息同步。&/li&&/ul&&p&消息同步库和消息存储库,对数据库有不同的要求,如何对数据库做选型,在下面会讨论。&/p&&h2&数据库选型&/h2&&p&消息系统最核心的两个库是消息同步库和消息存储库,两个库对数据库有不同的要求:&/p&&figure&&img src=&https://pic4.zhimg.com/v2-098cffef48f6d94aaa5506_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1788& data-rawheight=&388& class=&origin_image zh-lightbox-thumb& width=&1788& data-original=&https://pic4.zhimg.com/v2-098cffef48f6d94aaa5506_r.jpg&&&/figure&&p&总结下来,对数据库的要求有如下几点:&/p&&ol&&li&表结构设计能够满足Timeline模型的功能要求:不要求关系模型,能够实现队列模型,并能够支持生成自增的SeqId。&/li&&li&能够支持高并发写和范围读,规模在十万级TPS。&/li&&li&能够保存海量数据,百TB级。&/li&&li&能够为数据定义生命周期。&/li&&/ol&&h2&后记&/h2&&p&这篇文章主要介绍了现代IM系统中消息推送和存储架构的实现,基于逻辑的Timeline模型,我们可以很清晰明了的理解整个消息推送和存储的架构。&/p&&p&而基于Timeline的消息存储和推送模型,其实不光可以应用在IM消息系统中,还可应用在例如Feeds流、实时消息同步、直播弹幕等场景。&/p&
前言IM全称是『Instant Messaging』,中文名是即时通讯。在这个高度信息化的移动互联网时代,生活中IM类产品已经成为必备品,比较有名的如钉钉、微信、QQ等以IM为核心功能的产品。当然目前微信已经成长为一个生态型产品,但其核心功能还是IM。还有一些非以I…
&b&不是经济学,统计学出身,工作也不是数据分析师,只是在工作会用到一些,梳理一下思路。&/b&&b&只说一些最基本的数据分析常识,太深的不讲(主要是不会)。&/b&&br&&b&数据分析是什么?&/b&&br&把隐藏在一大批看似杂乱无章的数据背后的信息集中和提炼出来,总结出研究对象的内在规律。帮助管理者进行判断和决策,以便采取适当的策略和行动。&br&&b&分类:&/b&&br&描述性数据分析(初级数据分析 常见分析方法:对比分析法、平均分析法、交叉分析法)&br&探索性数据分析:高级数据分析,侧重于在数据之中发现新的特征&br&验证性数据分析:高级数据分析,高级数据分析,侧重于验证已有假设的真伪性&br&&p&&b&&u&数据分析5个阶段&/u&&/b&&/p&&ul&&li&数据收集&br&&/li&&/ul&&p&第一手数据:主要指可直接获取的数据;第二手数据:指经过加工整理后得到的数据&/p&&ul&&li&数据处理&br&&/li&&/ul&&p&目的:从大量的、杂乱无章、难以理解的数据中抽取并推导出对解决问题有价值、有意义的数据&/p&&ul&&li&数据分析&br&&/li&&/ul&&p&数据挖掘:一种高级的数据分析方法。主要侧重解决四类数据分析问题:分类、聚类、关联、预测&/p&&ul&&li&数据展现&br&&/li&&/ul&&p&常用数据图:饼图、柱形图、条形图、折线图、散点图、雷达图、金字塔图、矩阵图、漏斗图、帕雷托图&/p&&ul&&li&报告撰写&br&&/li&&/ul&&p&有一个好的分析框架,并且图文并茂,层次明晰,能够让阅读者一目了然,需要有明确的结论,有建议或解决方案&/p&&p&&i&而本题讲的主要是excel作为工具进行数据分析。其他的SPSS Statistics等暂且不提。&/i&&/p&&p&&b&1、数据收集阶段:&/b&&/p&&p&这个阶段可以参考这个问题:&a href=&http://www.zhihu.com/question/& class=&internal&&国内外有哪些比较权威的统计数据网站? - 互联网&/a&,格各位知友都很热心。&/p&&p&&b&&u&2、数据处理阶段:&/u&&/b&&/p&&p&这个时候要用到excel了。首先要对数据进行一次大清洗!将多余重复的数据筛选清除,将缺失数据补充完整,将错误数据纠正或删除。&/p&&p&这个时候要用到一系列函数:&/p&&p&数据重复【(COUNTIF函数),删除重复项】&/p&&p&缺失数据【IF And Or 嵌套函数等】&/p&&p&数据抽样【Left,Right,CONCATENATE(文本1,文本2....),VLOOKUP】&/p&&p&数据计算【AVERAGE、SUM、MAX、MIN,Date,If】&/p&&p&数据分组【VLOOKUP函数,采用近似匹配,SEARCH函数】&/p&&p&数据抽样【RAND函数,RAND()】&/p&&p&以上只是一些简单的说明,具体问题需要根据需求进行分析。&/p&&p&&b&&u&3、数据分析阶段:&/u&&/b&&/p&&figure&&img src=&https://pic3.zhimg.com/50/a8c36a963ca510cbfe458c43f76489af_b.jpg& data-rawwidth=&356& data-rawheight=&300& class=&content_image& width=&356&&&/figure&&p&对比分析法:&/p&&p&常见的如完成值与目标值的差距,这个月与上个月的对比,同公司间各部门的对比,竞争对手行业内对比,这里要注意的是计算范围计算方法要一致,对象要一致,指标类型要一致。&br&&/p&&p&分组分析法:&a href=&//link.zhihu.com/?target=http%3A//blog.sina.com.cn/s/blog_49f78a4b0100ju4u.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&如何用EXCEL进行数据分组&/a&&br&&/p&&p&结构分析法:&figure&&img src=&https://pic4.zhimg.com/50/cede73f4183b_b.jpg& data-rawwidth=&814& data-rawheight=&144& class=&origin_image zh-lightbox-thumb& width=&814& data-original=&https://pic4.zhimg.com/50/cede73f4183b_r.jpg&&&/figure&&/p&&p&平均分析法:&figure&&img src=&https://pic4.zhimg.com/50/4a7df93dd6d3dba5c4a7c70e09828bef_b.jpg& data-rawwidth=&764& data-rawheight=&203& class=&origin_image zh-lightbox-thumb& width=&764& data-original=&https://pic4.zhimg.com/50/4a7df93dd6d3dba5c4a7c70e09828bef_r.jpg&&&/figure&&/p&&p&交叉分析法:&/p&&figure&&img src=&https://pic4.zhimg.com/50/5a81508ecc52fdbcddc30bb56789d09f_b.jpg& data-rawwidth=&762& data-rawheight=&139& class=&origin_image zh-lightbox-thumb& width=&762& data-original=&https://pic4.zhimg.com/50/5a81508ecc52fdbcddc30bb56789d09f_r.jpg&&&/figure&&p&&a href=&//link.zhihu.com/?target=http%3A//www.wordlm.com/Excel/.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&利用Excel2013数据透视图功能,将一维表转为二维表_Word联盟&/a&&br&&/p&&p&综合评价分析方法:&/p&&figure&&img src=&https://pic1.zhimg.com/50/a50b75e7b57b61fc6f91b6_b.jpg& data-rawwidth=&775& data-rawheight=&472& class=&origin_image zh-lightbox-thumb& width=&775& data-original=&https://pic1.zhimg.com/50/a50b75e7b57b61fc6f91b6_r.jpg&&&/figure&&br&&p&杜邦分析法:&/p&&p&杜邦分析法利用各个主要财务比率之间的内在联系,建立财务比率分析的综合模型,来综合地分析和评价企业财务状况和经营业绩的方法。采用杜邦分析图将有关分析指标按内在联系加以排列,从而直观地反映出企业的财务状况和经营成果的总体面貌。&br&&/p&&figure&&img src=&https://pic2.zhimg.com/50/fdb363d5fe64fb4d7d51efa7c71077ee_b.jpg& data-rawwidth=&690& data-rawheight=&410& class=&origin_image zh-lightbox-thumb& width=&690& data-original=&https://pic2.zhimg.com/50/fdb363d5fe64fb4d7d51efa7c71077ee_r.jpg&&&/figure&&br&&p&漏斗图分析法:&/p&&p&漏斗图不仅能够提供用户在业务中的转化率和流失率,还揭示了各种业务在网站中受欢迎的程度。虽然单一漏斗图无法评价网站某个关键流程中各步骤转化率的好坏,但是通过前后对比或是不同业务、不同客户群的漏斗图对比,还是能够发现网站中存在的问题。&br&&/p&&figure&&img src=&https://pic1.zhimg.com/50/ab46e42b328be8af795a_b.jpg& data-rawwidth=&850& data-rawheight=&535& class=&origin_image zh-lightbox-thumb& width=&850& data-original=&https://pic1.zhimg.com/50/ab46e42b328be8af795a_r.jpg&&&/figure&&br&&p&矩阵关联分析法:&/p&&p&关联矩阵法是常用的系统综合评价法,它主要是用矩阵形式来表示每个替代方案有关评价指标及其重要度和方案关于具体指标的价值评定量之间的关系。&br&&/p&&figure&&img src=&https://pic4.zhimg.com/50/6b62fdfbcf3b05_b.jpg& data-rawwidth=&419& data-rawheight=&295& class=&content_image& width=&419&&&/figure&&p&其他高级分析法:&/p&&p&&figure&&img src=&https://pic1.zhimg.com/50/329a5857cbfcd22c0dc4b4_b.jpg& data-rawwidth=&511& data-rawheight=&283& class=&origin_image zh-lightbox-thumb& width=&511& data-original=&https://pic1.zhimg.com/50/329a5857cbfcd22c0dc4b4_r.jpg&&&/figure&数据透视表:&/p&&p&&figure&&img src=&https://pic3.zhimg.com/50/3aee1e5f4ef53efadee4e128c172c0f3_b.jpg& data-rawwidth=&438& data-rawheight=&259& class=&origin_image zh-lightbox-thumb& width=&438& data-original=&https://pic3.zhimg.com/50/3aee1e5f4ef53efadee4e128c172c0f3_r.jpg&&&/figure&这也是一个大块,需要深入的学习,有机会也会写个简单的答案。&/p&&br&&p&&b&&u&4、数据展现:&/u&&/b&&/p&&p&根据数据关系选择图表&/p&&p&这部分在另一个答案里有详解的讲解对于没种类型的图表有详解的演示和说明:&/p&&p&&a href=&http://www.zhihu.com/question//answer/& class=&internal&&如何制作图表非常精美的 Excel 文档? - 忽如远行客的回答&/a&&/p&&p&成分:饼图、柱形图、条形图、瀑布图&/p&&p&排序:柱形图、条形图、气泡图、帕累托图&br&&/p&&p&时间序列:折线图、柱形图&/p&&p&相关性:散点图、柱形图、对称条形图(旋风图)、散点图、气泡图&/p&&p&多重数据比较:雷达图&/p&&p&&b&图表注意事项&/b&&/p&&ul&&li&信息完整:图表标题、单位、图例、脚注、来源等&br&&/li&&li&避免无意义的图表&br&&/li&&li&一表反映一个观点&br&&/li&&li&只选对的不选复杂的图表&br&&/li&&li&标题一句话阐述清楚反映观点&/li&&/ul&&b&&u&5、报告撰写&/u&&/b&&br&&p&数据分析报告的作用:展示分析结果 验证分析质量 提供决策依据&/p&&br&报告类型:&br&&ul&&li&专题分析报告&/li&&/ul&
定义:对社会经济现象的某一方面或某一问题进行专门研究的一种数据分析报告&br&
作用:为决策者制定某项政策、解决某个问题提供决策参考和依据&br&
特点:内容的单一性 分析的深入性&br&&ul&&li&综合分析报告&/li&&/ul&
定义:全面评价一个地区、单位、部门业务或其他方面发展情况的一种数据分析报告&br&
特点:全面性 联系性&br&&ul&&li&日常数据通报&/li&&/ul&
定义:以定期数据分析报表为依据,反映计划的执行情况,并分析其影响和形成原因的一种数据分析报告&br&
特点:进度性 规范性 时效性&br&&p&数据分析报告结构:&br&&/p&&p&
标题页&br&
标题类型:解析基本观点 概括主要内容 交代分析主题 提出问题&br&
标题要求:直接 确切 简洁 &br&
分析背景:为何开展此次分析?有何意义?&br&
分析目的:通过此次分析要解决什么问题?达到何种目的?&br&
分析思路:如何开展此次分析?主要通过哪几方面开展?&br&
正文&/p&&p&是报告最长的主体部分,包含所有数据分析事实和观点,通过数据图表和相关的文字结合分析,正文各部分具有逻辑关系&br&
结论和建议&br&&/p&&p&以上是一般的数据分析的方法和一些注意事项,事无巨细,数据分析本身就是一个慢活细活,脑力活,透过庞大的数据看本质是一个数据分析人员最应该掌握的东西。&/p&&p&接下来才是真正的核心:(工具篇)&/p&&p&&figure&&img src=&https://pic2.zhimg.com/50/a08aaa27eb6a7_b.jpg& data-rawwidth=&800& data-rawheight=&543& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic2.zhimg.com/50/a08aaa27eb6a7_r.jpg&&&/figure&&i&图转,侵删&/i&&/p&&br&&p&当面对海量数据时,我们就应该掌握一些&b&工具&/b&因为这才是一个数据分析人员真正要面对的。&/p&&p&&u&SQL语句:&/u&&a href=&//link.zhihu.com/?target=http%3A//wenku.baidu.com/link%3Furl%3D3FNp1xP9WbF6nUOkZ5pdhPCdlWRhe4m1JQwUG9ydKs4o7glugIrsPhGG_24euaZq26UZlhwRp7n8KMLy6TGI0y7PrnvBB0YMgQGSPfEP-g7& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Excel2010 常用SQL语句解释&/a&&/p&&p&&u&Microsoft Query&/u&:实现数据导入/数据处理/数据分析:&/p&&p& 微软的官方使用文档:&a href=&//link.zhihu.com/?target=https%3A//support.microsoft.com/zh-cn/kb/136699& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&https://&/span&&span class=&visible&&support.microsoft.com/z&/span&&span class=&invisible&&h-cn/kb/136699&/span&&span class=&ellipsis&&&/span&&/a&&br&&/p&&p&&u&PowerPivot&/u&: 简单数据分析/多表关联分析/字段计算分析/数据分组分析具体参考官方说明文档:&a href=&//link.zhihu.com/?target=https%3A//support.office.com/zh-cn/article/PowerPivot-%25E5%258A%25A0%25E8%25BD%25BD%25E9%25A1%25B9-a9c2c6e2-cc49--& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&PowerPivot 加载项&/a&&/p&&p&&u&工具库&/u&:描述性统计分析 / 直方图
/ 抽样分析
/ 指数平滑
这个教程不错:&a href=&//link.zhihu.com/?target=http%3A//vdisk.weibo.com/s/wAj2101Wio9& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&excel数据分析教程.pdf&/a&&/p&&p&&u&水晶易表&/u&:&a href=&//link.zhihu.com/?target=http%3A//wenku.baidu.com/link%3Furl%3DZNZVYQb6OIoHsXBsDWm-ccbmVsedhE7AqdvplBXlQIP0lL01Oh7wEBqKlNeFZZIY50gSYzjSE5GwFnnMj9xZvBhqUtHpBsnVP4tQG2SA3ue& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&水晶易表完全教程(完全版)_百度文库&/a&&/p&&p&VBA:那就是另外一个世界了。&/p&&br&&br&&br&&br&&p&最后推荐数据分析的十个博客:&/p&&p&数据分析十大博客&/p&沈浩老师的博客:&a href=&//link.zhihu.com/?target=http%3A//shenhaolaoshi.blog.sohu.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&沈浩老师的博客&/a&&p&数据挖掘与数据分析:&a href=&//link.zhihu.com/?target=http%3A//spss-market.r.blog.163.com/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&spss-market.r.blog.163.com&/span&&span class=&invisible&&/&/span&&span class=&ellipsis&&&/span&&/a&&br&&/p&&p&数据挖掘@数据分析 &a href=&//link.zhihu.com/?target=http%3A//blog.sina.com.cn/u/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&郑来轶_新浪博客&/a&&/p&&p&数据化管理:&a href=&//link.zhihu.com/?target=http%3A//chemyhuang.blog.163.com/& class=& external& target=&_blank& rel=&nofollow noreferrer&&&span class=&invisible&&http://&/span&&span class=&visible&&chemyhuang.blog.163.com&/span&&span class=&invisible&&/&/span&&span class=&ellipsis&&&/span&&/a&&/p&&p&数据元素:&a href=&//link.zhihu.com/?target=http%3A//blog.sina.com.cn/greatdoor& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Wayne_新浪博客&/a&&/p&&p&小蚊子乐园:&a href=&//link.zhihu.com/?target=http%3A//blog.sina.com.cn/xiaowenzi22& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&小蚊子数据分析&/a&&/p&&p&ExcelPro的图表博客:&a href=&//link.zhihu.com/?target=http%3A//excelpro.blog.sohu.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&ExcelPro的图表博客&/a&&/p&&p&网站分析在中国——从基础到前沿(&a href=&//link.zhihu.com/?target=http%3A//www.chinawebanalytics.cn& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&网站分析在中国——从基础到前沿 |&/a&)&/p&&p&网站数据分析:&a href=&//link.zhihu.com/?target=http%3A//webdataanalysis.net/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&网站数据分析&/a&&/p&&p&蓝鲸的网站分析笔记:&a href=&//link.zhihu.com/?target=http%3A//bluewhale.cc/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&蓝鲸的网站分析笔记&/a&&/p&&br&&p&除了上边的那个知乎上的收集信息的帖子,再加上这个:&a href=&//link.zhihu.com/?target=http%3A//bbs.pinggu.org/thread--1.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&哪些数据网站和资料最常用,最好用?&/a&&/p&&p&不过我是做互联网的,移动互联网数据来源:&/p&&br&&ul&&li&百度指数&br&&/li&&li&淘宝指数&br&&/li&&li&艾瑞咨询&br&&/li&&li&易观智库&br&&/li&&li&CNNIC&br&&/li&&li&比达咨询&br&&/li&&li&新浪微博:什么时候开始,发布频次,内容特色。粉丝数。&br&&/li&&li&微信官号:什么时候开始,发布频次,内容特色。粉丝数。&br&&/li&&li&百度搜索前10页,其他渠道覆盖。&br&&/li&&li&线上调研
&br&&/li&&/ul&&br&&br&&p&推荐这本书:&a href=&//link.zhihu.com/?target=http%3A//book.douban.com/subject//& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Excel 2010数据处理与分析实战技巧精粹 (豆瓣)&/a&&/p&&p&推荐:&a href=&//link.zhihu.com/?target=http%3A//book.douban.com/subject//& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&谁说菜鸟不会数据分析 (豆瓣)&/a&&/p&&p&我还没有学通,本篇基本就是对这两本书的总结。&/p&&br&补充一个excel2016的新功能:&br&&figure&&img src=&https://pic2.zhimg.com/50/fffaae8c0c_b.jpg& data-rawwidth=&613& data-rawheight=&463& class=&origin_image zh-lightbox-thumb& width=&613& data-original=&https://pic2.zhimg.com/50/fffaae8c0c_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/50/c337bd23ae8ec533aa348ac_b.jpg& data-rawwidth=&1088& data-rawheight=&381& class=&origin_image zh-lightbox-thumb& width=&1088& data-original=&https://pic3.zhimg.com/50/c337bd23ae8ec533aa348ac_r.jpg&&&/figure&&br&&br&&br&&br&&p&本文资料来源:&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//book.douban.com/subject//& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&谁说菜鸟不会数据分析 (豆瓣)&/a&&br&&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//book.douban.com/subject//& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&谁说菜鸟不会数据分析 (豆瓣)&/a&&br&&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//wiki.mbalib.com/wiki/%25E5%%25E8%E7%259F%25A9%25E9%%25E6%25B3%2595& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&关联矩阵法 - MBA智库百科&/a&&br&&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//blog.csdn.net/zhanghongju/article/details/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Excel-漏斗图分析(差异分析)&/a&&br&&/p&&p&&a href=&//link.zhihu.com/?target=http%3A//blog.sina.com.cn/s/blog_vg8o.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&如何玩转杜邦分析法&/a&&/p&
不是经济学,统计学出身,工作也不是数据分析师,只是在工作会用到一些,梳理一下思路。只说一些最基本的数据分析常识,太深的不讲(主要是不会)。 数据分析是什么? 把隐藏在一大批看似杂乱无章的数据背后的信息集中和提炼出来,总结出研究对象的内在规律…
&h2&序言&/h2&&p&&b&每增加一个数学公式都会使读者减半,原话出自霍金的时间简史。所以我知道这篇可能不会有多少人看,但是仍然执着的想分享出来。(长文多图,流量慎点)&/b&&/p&&p&佛语中有箴言:坐亦禅,行亦禅,一花一世界,一叶一如来&/p&&p&世间万物是复杂的,但是又是纯粹的简单的,从宏观的花花世界到微观的原子电子,万物都在按照它的规律运行,而我们的先辈前人,一直都在用自己的方式与经验,总结着万物运行的规律。&/p&&p&不要误会,本文并不是哲学论题的讨论,一个偶然的机会拜读了知乎上的一篇关于频域水印的问答。(&a href=&https://www.zhihu.com/question//answer/& class=&internal&&阿里巴巴公司根据截图查到泄露信息的具体员工的技术是什么? - 知乎&/a&)当中有对频域数字水印的实现与讨论,身边有不少的朋友对此颇感兴趣,于是我就想以后机会写一个“从零开始的频域变换到水印的完整解答”,&/p&&p&当然,你也可以直接跳转到本文的最后一章节“鲁棒盲水印”来查看频域水印是如何在版权保护中起作用并对抗各类版权偷盗者的攻击的。&/p&&p&本人并非全才,本文中多有疏漏错误还望各位读者多多指正,文章将从最基础的三角函数开始,一步一步地推到并演化到傅里叶变换直到频域签名。&/p&&p&我相信学习如流水,希望读者能在本文的循序渐进的推导过程中满足对相关技术的求知欲,并对文中的不足与错误不吝赐教。&/p&&p&&b&最后再次引用箴言的后半句作为导言的结束语:&/b&&/p&&p&春来花自青,秋至叶飘零,无穷般若心自在,语默动静体自然。&/p&&p&&br&&/p&&p&&b&为了避免一开始就引入那些过于严肃的话题,笔者希望在开篇的部分,做个简短的说明来告诉大家,这篇文章做的是什么的。&/b&&/p&&p&首先,笔者画了一张图名叫:《虎虎生威》,好吧,就是下面这张&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-d8d23b2b8_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&256& data-rawheight=&256& class=&content_image& width=&256&&&/figure&&p&因为笔者太叼了,所以画的图应该署名一下,你可以看到右上角的DBinary,没错,那就是笔者的大名,但是,盗图狗很快就把我这张大作给偷走了,最后他居然把自己的名字写了上去&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-32a3ec2449aacbdc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&320& data-rawheight=&320& class=&content_image& width=&320&&&/figure&&p&好气啊,明明是笔者画的图,怎么变成张三了,现在死无对证了,到底是谁画的,笔者暗暗不爽,于是做了一台时光机,回到笔者画图后还没发布之前,不行,这回不能光靠签名,要加点靠谱的水印,于是,笔者开发了一款软件,对这个图片进行了隐签名:&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-7efb35a59b15bf_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&692& data-rawheight=&483& class=&origin_image zh-lightbox-thumb& width=&692& data-original=&https://pic3.zhimg.com/50/v2-7efb35a59b15bf_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/50/v2-378c09d47f5da_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&320& data-rawheight=&320& class=&content_image& width=&320&&&/figure&&p&&br&&/p&&p&(这是签名后的图片,好吧,因为颜色过于单调还是能看出明显干扰的,实际对照片签名几乎看不出来)&/p&&p&盗图狗果然还是出手了,它篡改了我的图片&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-fa95aca7903c4ede47bffb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&320& data-rawheight=&320& class=&content_image& width=&320&&&/figure&&p&我一看跳了起来,***张三你怎么盗我图,显然,张三不服,凭什么说我盗你图,证据呢???&/p&&p&我不慌不忙打开频域程序,加载了张三盗窃后的图&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-9fa954c81a5aa23df3a350_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&661& data-rawheight=&362& class=&origin_image zh-lightbox-thumb& width=&661& data-original=&https://pic1.zhimg.com/50/v2-9fa954c81a5aa23df3a350_r.jpg&&&/figure&&p&那么张三同志,麻烦你告诉我图像频域里为什么写的是我的名字?&/p&&p&张三哑口无言.....&/p&&p&这就是本文将要讨论的技术细节,如果阅读到这里你还不明白本文的主旨与目标是什么,你可以直接跳转到本文的最后一章节“鲁棒盲水印”来查看频域水印是如何在版权保护中起作用并对抗各类版权偷盗者的攻击的。&/p&&h2&从三角形开始&/h2&&p&有人说,上帝使用三角形创造了这个世界,这点我完全同意,三角形拥有如此之多的特性,足够让每一个探究者为之所着迷,它仿佛维系着几何与世界的基石,诞生出数学中众多的定律并在今天成就了我们的学术与技术大厦。&/p&&p&当然,本文并不是抒情散文,我并不打算也没有这个能力去探究那些更深层次的数学理论关系,但理解三角形并不是制作变形金刚,你可以在一张纸上画三个点然后用直线把他们连起来,那就是一个三角形了如图(a.1)&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-901c0fc867f0fb11f3ebbb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&280& data-rawheight=&296& class=&content_image& width=&280&&&/figure&&p&&br&&/p&&p&三角形有非常多的特性,首先,确定它是一个稳定的结构。另外确定一个平面也仅仅只需要一个三角形就足够了,三角形的所有内角角度之和是180°(a.2)。&/p&&figure&&img src=&https://pic1.zhimg.com/50/v2-e38e1fcdb567cf950e6d75_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&300& data-rawheight=&324& class=&content_image& width=&300&&&/figure&&p&&br&&/p&&p&但最为有意思的是被称之为直角三角形的东西,在直角三角形中有一个角的角度是90°(a.3),例如图(a.3)就是一个直角三角形。&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-1d035cca3ed46b9e987f7d_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&349& data-rawheight=&261& class=&content_image& width=&349&&&/figure&&p&&br&&/p&&p&实际上在这个直角三角形中,三角形的边长比例,将随着角度θ的变化而变化,一个角度θ决定了abc三边长度的比例关系,于是在这里,我们引入了一个叫三角函数的东西,其中&/p&&figure&&img src=&https://pic3.zhimg.com/50/v2-4ccffcd35bcfe6e34f76e_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&100& data-rawheight=&52& class=&content_image& width=&100&&&/figure&&p&,&/p&&figure&&img src=&https://pic2.zhimg.com/50/v2-15cbd332c3c1_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&116& data-rawheight=&52& class=&content_image& width=&116&&&/figure&&p&,&/p&&figure&&img src=&https://pic4.zhimg.com/50/v2-c10c07ebe076a6e85e66a0201047fedc_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&115& data-rawheight=&52& class=&content_image& width=&115&&&/figure&&p&,当θ小于90°的时候,我们可以在直角三角形中非常直观地看到三角函数的变化关系,但在直角三角形中,θ的取值范围,也被限制到了0到90°,为了能让θ表示更大的范围,我们就需要引入新的表达方式了。&/p&&p&&br&&/p&&p&我们首先先建立一

我要回帖

更多关于 potplayer放大画面 的文章

 

随机推荐