蛋壳研究院首创VB象限模型:我们在这样研究医疗产业
动脉网·蛋壳研究院2017年度报告《用数据管窥医疗——2017年医疗健康行业竞争力报告》,于12月15日在未来医疗100强论坛正式发布。2011年-2016年,互联网医疗已经走过了新兴行业的几个重要成长节点,既有2011年春雨医生刚刚推出移动问诊服务时的颠覆性创新,也有2014年资本热潮时候的行业大爆发,还有2015年-2016年期间因为流量红利结束导致的产业和资本低潮。2017年行将结束,动脉网蛋壳研究院从医疗产业创新领域入手,通过分析企业的运营数据、投融资数据,创新设立了一套象限模型对这些领域的企业运营状况进行展示,梳理出行业的竞争现状。有了这套模型,我们可以更方便地观察一个细分领域中的企业运营现状,使得我们的研究成果更容易被理解。在本报告中,蛋壳研究院解读模型的同时,还从生产力、生产关系和生产要素的角度,梳理了医疗领域这一年的变化和发展。以往,动脉网蛋壳研究院的主要工作,是从技术、市场、资本、政策等多个维度,向关注医健领域的产业界人士提供全球资本动态、新兴技术产品与模式、产业生态演变及市场应用趋势等四个方面的研究报告。
Kafka源码分析一基础搭建和项目结构介绍
从kafka也算有两年了,用它做了不少项目,但是之前对它的认识也仅仅停留在一些从其他地方听到的概念和官方文档的documentation上在遇到一些问题时往往不知道其原理只能按照道听途说的概念来理解。既然kafka能够成为这么多公司的选择肯定有很不错的实现,所以还是要翻阅代码一看究竟,一来学习别人的代码二来能够对kafka有更深入的了解。当前版本是0.11.0。环境搭建gitclonehttps://github.com/apache/kafkacdkafka./gradlewidea然后用idea导入就可以了。打开后可以看到很多module,不过server的实现是在core模块里,这也是需要着重了解的地方。debug研究工程代码还是从debug开始比较好,kafka很友好的最外层放了一个Kafka.scala文件,main方法就在里面,不过在开始之前需要给main配置debugconfiguration。把server.properties的路经加到programarguments,以及在enviroment里添加
kafka源码分析二 network相关
我们直接跑到最底层,看看kafka的网络层处理是怎么处理的。因为Java的NIO还是偏底层,不能直接用来做应用开发,所以一般都使用像netty的框架或者按照自己的需要封装一些nio,让上层业务不用关心网络处理的细节,只需要创建服务监听端口、接受请求、处理请求、写返回就可以了。我在看netty、thrift等涉及到网络的Java框架时比较喜欢去看他们的nio是怎么封装的,这里也是能够体现作者水平的地方。javanio的基本元素为Selector、Channel、ByteBuffer。我们从server和client两端分别分析。kafkaserver端在org.apache.kafka.common.network中进行了封装。就像package.html里面写的。>Thenetworkserverforkafka.Noapplicationspecificcodehere,justgeneralnetworkserverstuff.TheclassesReceiveandSende
kafka源码分析三 Producer
Producer是生产者的接口定义常用的方法有publicFuture
2017年的个人总结
果然,每年一篇。博客源于日记,每天写日记是中学时代就有的习惯。后来,互联网兴起,博客出现,自然的将日记搬到了网上。再后来twitter类的微博崛起,社交网络席卷。博客已然濒死(或者说已死?)。于我,感觉还是写点长文更有感觉,所以,虽然在这里每年一篇,但是依旧心甘情愿的维持。ps.实际上,访问这里其实有2个域名了:http://gamtin.infohttp://gamtin.me有点儿远了,又到总结一年的时候了。2017年,一个关键词:“变化”。在外企混了超过12年之后,终于一咬牙,跳了出来。创业公司,几乎什么都要自己来做。首先,搬入新办公室,学习网络搭建,实践机柜布线;其次,因为施工的品质马马虎虎,会议室时不时的跳匝断电,又学得了不少电工知识;再次,服务器公开到外网,又被黑,又肉体感受了网络的攻防。回首前十年,行政部、IT部、安全部都会将这些做好,如今都是我们自己需要考虑的问题。原来认为如空气和水一般平常的东西,依旧会牵扯一些精力,以小见大,更佩服能将企业做大的各路豪杰。工作中,更是全新的领域和方向。我从一个.Net程
2017年终总结
转眼2017年走到了尾声,之前很少有写年终总结,如今已到了奔三的年纪,肩上的责任也越来越‘丰富’,每年做个总结,尽量避免每年‘瞎忙’吧。LeaderShip其实在17年年初的时候有给自己定过努力的方向,就是尽量提升LeaderShip,关于LeaderShip可以简单看一下这篇文章,虽然这篇文章的观点我并不完全认同,但大部分还是说的还是有些道理的。我眼中的LeaderShip:被需要:团队或身边中大多数人在做比较关键的决定时,或者在遇到比较棘手的问题的时候往往都会想到你,找到你一起商议。救火能力:当身边的人都在问“这个问题怎么办”的时候,你应该总是能站出来帮同事顺利解决掉麻烦,能每次成功救火(能不能每次都顺利救火,也就决定了你LeaderShip的等级)更多的承担:即使项目中很多不是你份内的任务,也应该带着一颗学习的心态多去了解,去思考如果是你来做会有什么不同,或者有什么建设性意见可以跟同事提一提或者探讨。(建设性意见的多少,或者防火次数的多少也就决定了你LeaderShip的等级)更多的分享:尽量把一些好的方
聚簇索引和二级索引
image.png从上图中我们发现,该B*tree根据plname列进行构建的,只存储索引数据,plname和id的映射。比如查找编程语言为“Java”的数据。selectid,plname,rankingfrompl_rankingwhereplname='Java';首先通过二级索引树中找到Java对应的主键id为“16”(读取2个磁盘块)。然后在去主键索引中查找id为“16”的数据。(读取3个磁盘块)结论selectid,plname,rankingfrompl_rankingwhereid=16;根据主键查找只需要查找3个磁盘块selectid,plname,rankingfrompl_rankingwhereplname='Java';根据编程语言名称查询需要读取5个磁盘块结论一通过上面的主键索引和非主键索引的例子我们可以得出:主键索引(聚餐索引)查询效率比非主键索引查询效率更高。如果能使用主键查找的,就尽量使用主键索引进行查找。结论二从上面图中我们还可以分析得
微信小游戏体验之打飞机改造计划
微信小游戏推出已有几天了,这个功能对小程序和小游戏的推动影响不用多说,大家赶紧摩拳擦掌往上撸就可以了。关于如何开发官方文档已经说明了,这篇则是对官方的打飞机demo一些小改造。开发预备式下载最新版本的微信开发者工具(v1.02.1712280)根据官方文档说明,目前不提供公开注册。因此目前只能使用无AppID模式进行体验为了让HTML5游戏轻松接入,官方提供了Adapter。这个的作用就是提供HTML5写法和wx写法的全局转换层。打飞机小游戏使用无AppID模式创建一个微信小游戏后可以看到官方demo,其中入口文件和配置文件:game.js和game.json。game.js引入并初始化包含整个打飞机的游戏场景、参与者(玩家飞机和敌方飞机)、游戏逻辑的主函数的main.js。在main.js中我们可以发现由于Adapter的存在,这里的代码和我们平常的代码写法没什么差异了。游戏的主逻辑如下图:在loop中,玩家每隔20帧射一次,每隔60帧生成新的敌机。每帧检查玩家和敌
一些印象深刻的坑小结
年底了最近也比较忙没怎么有时间来写博客,今晚找个时间回想一下遇到的一些令人深刻的坑,并写上解决方案;希望能帮到更多的人填坑。1.webpack配置devServerproxy前后端分离接口返回504的问题问题描述:配置webpackdevServerproxy后端接口的时候,前面几个接口能正常访问,后面配置的接口居然504;按理说这些配置要错就全错,怎么有的可以访问有的不可以。当时的配置是这样的:1devServer:{2historyApiFallback:true,3noInfo:true,4proxy:{5'/api1':{6target:'http://xxxxxxxx',7secure:false8},9'/api2':{10target:'http://xxxxxxxx',11secure:false12
2017 年 CodePen 优秀作品盘点
时光荏苒,白驹过隙!又是一年将要结束,崭新的2018即将到来。每到年底,各大资讯网站的专题盘点让我们应接不暇,这当然少不了CodePen。作为知名的前端交流社区,CodePen上的技术高手们总能不间断的为我们带来各种的惊喜。在去年《TheMostHeartedof2016》的专题盘点中,涌现了像Flexbox游乐场、Shader图像变换特效、纯CSS实现的雪橇犬等众多优秀的前端作品,我们也直观的体会到前端开发者们丰富的想象力与创造力。(注:2016年优秀作品可以在《2016年10个最佳的CodePen作品》文章中详细了解。)那么,今年CodePen上又沉淀了哪些创意、有趣的作品呢?随小狮一起先睹为快吧!1.TheLastExperienceThelastexperience是GerardFerrandez利用CSS+JS制作的酷炫、有趣的机器人舞蹈动画。你可以利用鼠标对机器人进行拖拽,或是将其抛出。项目地址:【传送门】2.ICouldNotStopICo
写在2017年结束之前
中国人习惯使用农历,但如果在文章归档里使用农历又让人觉得很奇怪~去年因为一直忙,直接忘记写年终总结。临近2018年,没有假期、出差赶工,刚好下了一场雨得以暂时停工休息,赶在2017年结束前写完这篇总结。牲口与程序员第一季度,繁忙,线下项目施工中,移动客户端、服务端已经走上正轨,一边维护iOS客户端应用,一边协助负责集群的同事修补一些小漏洞,维护域名和证书;第二季度,混乱,线下项目运营,问题堆积如山,继续维护iOS客户端应用,同时开始对接LoraWAN网关与服务端,启动了硬件项目,需要在生产环境里使用Go语言了;第三季度,疲惫,维护客户端,LoraWAN服务端,同时做硬件对接和测试,接触了很多人,伴随硬件的设计、试产和安装,出现了各种烦人的问题,第一次出差;第四季度,施工,整个季度超过一半的时间都在出差施工,原本很多东西应该在实验室里测试完善再落地,可惜没有时间,只能来回奔波、实地测试,现在差不多是个包工头了,客户端好久没有更新,白天施工,晚上维护服务端。在和一位运营同事聊天时,他用”牲口”来来形容我这一年的工作,人人都喜欢努力
程序员使用的笔记软件
我一直在寻找一款工作上适合程序员使用的笔记软件。工作的时候,经常需要记录一些代码片段和笔记。这类笔记大部分都不成体系,记录的都是一些工作上的要点和代码片段。有的时候只是临时保存一小段代码。细细想来,对于笔记软件,我有主要有这样一些需求:1.支持代码块的语法高亮,可以定制字体、配色;2.以Markdown进行编辑;3.支持全文搜索;4.支持数据备份,笔记导出;5.可以使用文件夹或者标签(Tag)进行分类管理;6.多设备之间云同步,最好不需要注册账号,直接使用iCloud、Dropbox来同步;7.小巧、快速;8.虽然我现在几乎没有激动办公的场景,但如果能够在iOS设备上使用也是个加分项。虽然现在市面上有各式各样的笔记软件,但还是有一些让我不太满意的地方。我用Evernote很长一段时间了。我很喜欢使用Evernote剪切网上的文章做整理归纳,但是糟糕的编辑体验(不支持Markdown),免费账号两个设备同步的数量限制,让我觉得Evernote当工作的笔记软件有很多问题。后来
我的 2017
年初和媳妇领完证,拍婚纱照,办酒席,两个人累得跟狗一样。蜜月目的地选在了巴厘岛,传说中明星结婚的圣地。第一次出国门,我们显得很是期待和兴奋,为了保证旅行质量,我们报了途牛的“精致VIP小团”,事后证明,所谓的“精致”都是忽悠,和平常的跟团没啥区别,下一次再去巴厘岛,我选自由行。作为一个程序员,做饭这门手艺简直就是一种天赋,这一年,媳妇说我比她妈做的好吃,哈。目前最拿手的几道菜是:土豆回锅肉片、清蒸鲈鱼、鲫鱼豆腐汤、油焖大虾。六月份买了电烤箱,学会了做戚风蛋糕和蛋挞,然而面包和吐司在失败了N次后,现已放弃。『会做饭的人,可能也是个吃货』,我不记得谁说的这句话,反正挺有道理的,结婚前65kg的我,现在73kg。意识到体重的飙升,媳妇开始监督我锻炼,跑步、跳绳、打球、举铁,目前已坚持2个月了,不过目前气温骤降,加上雾霾天气,户外跑步已停止,等待明年春天继续。长期久坐,缺乏锻炼导致程序员的体质普遍不好。这2个月的锻炼,虽然体质没有明显提升,但是我发现即使不午睡,下午敲代码也不困了。工作年初,公司组织变动,加入
一个新手小白是怎么安排如何自学C语言/C++程序员、工程师的
谈及C语言,我想C语言功能强大都应该知道、应用广泛,一旦掌握了后,你就可以理直气壮地对他人说“我是电脑高手!”,而且以后若是再自学其他语言就显得轻而易举了。忧虑的是,C语言般博大精深,太难学了。其实就笔者认为C语言并非是“difficult(困难)”的,只要你能理清思路,掌握它的精髓,配合一套教材。那么学C语言是一件非常容易且又其乐无穷的事。今天本人就与大家一起谈谈如何学习C语言或者说学习C语言应从哪几方面着手。推荐书籍一:《CPrimerPlus》推荐实体书这本书已经出到了第六版中文版有电子版的可以来下载哦了解一些基本知识一.C语言的背景就个人感触,无论学习哪门语言首先应该了解一下自己所学语言的背景,也可以说它的发展史。C语言属于高级程序语言的一种,它的前身是“ALGOL”。其创始人是布朗·W·卡尼汉和丹尼斯·M·利奇。C语言问世时是带有很大的局限性,因为它只能用于UNIX系统上。然而随着科学技术的进步,计算机工业的发展,C语言逐渐脱离UNIX。1987年美国标准化协会制定了C语言的国际标准,简称“ANSIC”,从
微服务架构跨库分页解决的四种方案
微服务架构跨库分页解决的四种方案1需求缘起分页需求互联网很多业务都有分页拉取数据的需求,例如:(1)微信消息过多时,拉取第N页消息(2)京东下单过多时,拉取第N页订单(3)浏览58同城,查看第N页帖子这些业务场景对应的消息表,订单表,帖子表分页拉取需求有这样一些特点:(1)有一个业务主键id,例如msg_id,order_id,tiezi_id(2)分页排序是按照非业务主键id来排序的,业务中经常按照时间time来排序orderby在数据量不大时,可以通过在排序字段time上建立索引,利用SQL提供的offset/limit功能就能满足分页查询需求:select*fromt_msgorderbytimeoffset200limit100select*fromt_orderorderbytimeoffset200limit100select*fromt_tieziorderbytimeoffset200limit100此处假
记一次小机器的 Python 大数据分析
机缘巧合,公司突然要搞一波大量数据的分析。属于客流类的分析。数据量级也还算不错,经过gzip压缩,接近400个点位的SQL文件(MySQLinnoDB),大小接近100GB左右,原始记录数据估测在180亿左右。解压后......差不多一个T吧。如果是人民币玩家,自然是直接购置几十台高配置机器,做个mysqlshard或者直接上大数据全家桶比如hadoop和hive之类,让程序员去往死里折腾吧。嗯,然而对于我这种非人民币玩家,就要用单机硬扛。那就硬扛呗。我手上的机器配置如下:局域网服务器(Ubuntu16.04LTS)Xeon(R)CPUE3-1225v5@3.30GHz16G内存1T硬盘苹果电脑2016年15寸最高配1T硬盘i7四核0x01准备数据阶段用低配机器分析大数据的首要原则,就是不要分析大数据。何也?就是尽可能的抽取所得结论所需分析数据的最小超集小机器是无法完成海量计算的,但通过一定的过滤和
通过 JS 实现简单的拖拽功能并且可以在特定元素上禁止拖拽
前言关于讲解JS的拖拽功能的文章数不胜数,我确实没有必要大费周章再写一篇重复的文章来吸引眼球。本文的重点是讲解如何在某些特定的元素上禁止拖拽。这是我在编写插件时遇到的问题,其实很多插件的拖拽功能并没有处理这些细节,经过翻阅jqueryui的源码才找到答案。拖拽实现关于拖拽功能不再啰嗦,直接贴代码/***[draggable拖拽方法]*@param{[type]}modal[移动元素]*@param{[type]}handle[拖拽元素]*/vardraggable=function(modal,handle){varisDragging=false;varstartX=0,startY=0,left=0,top=0;vardragStart=function(e){vare=e||window.event;e.preventDefault();isDragging=true;startX=e.clientX;startY=e.clientY
2017让我受益最大的那些书--别找了,都在这里
2017让我受益最大的那些书--别找了,都在这里每一年对自己读过的技术书籍都会进行一个小结,今年也不例外,终于拖到了2017的最后一天,但是非常高兴,时间还来得及,也算对自己今年的一年来工作的总结。年初的时候由于公司一个电商项目的原因,需要用到React框架和ES6,于是对这两项技术相关的资料进行了梳理,如下是相关的书籍。从今年下半年开始,也是由于公司一个新的金融项目的原因,笔者的主力开发技术栈又切回了LinuxC++,今时今日的C++11/14语言特性已经是开发主流,笔者虽然多年来一直关注着这些语言特性的进步,但是也是好久都没有系统的梳理一下相关的知识了,于是在今年年中的时候对C++11/14的书籍进行了一次系统的梳理,可以这么说,士别三日当刮目相看,今天的C++11/14/17对于现代编程语言的内存模型,并行,语言简洁性等都给与了全新的生命力。金融项目开发过程中,经常需要配合Python,Go,MQ,分布式系统设计,调试技术等主题
jQuery|"+"相邻选择器
jQueryelement+next选择器实例选取与每个
元素:$("div+p")定义和用法("element+next")选择器选取指定元素"element"的下元素"next"。"next"元素必须置于指定元素"element"的右边。语法("element+next")element必需。任何有效的jQuery选择器。next必需。规定元素,必须是element参数的next元素。