血液净化行业市场分析

第一节 血液净化行业概况

本文章引自:https://zhuanlan.zhihu.com/p/564622726

一、行业概况

血液净化是把患者的血液引出身体外并通过一种净化装置,除去其中某些致病物质,净化血液,达到治疗疾病的目的。血液净化的基础治疗方式包括血液透析(HD)、腹膜透析(PD)、血液滤过(HF)、血液透析滤过(HDF)、连续性肾脏替代治疗(CRRT)、血浆置换(PE)、血浆吸附和血液灌流(HP)等,以及由以上多种技术的联合应用。其中,血液透析是目前最常用、最重要的血液净化方法,是治疗急、慢性肾功能衰竭包括终末期肾病(ESRD)和某些急性药物、毒物中毒的有效方法。在临床应用的角度上看,出于保护患者血管的考虑,为达到最佳的治疗效果,对于有肾功能残余的患者,医生一般建议先腹膜透析再血透的治疗;对于完全失去肾功能的患者,一般建议血透治疗。

在对各种血液净化技术在临床使用、治疗效果、治疗费用等多维度进行分析,各种新的血液净化技术在原有的技术基础上不断发展和革新,但新旧技术相互之间不存在绝对的替代性,各种血液净化技术各有所长。血液透析因其治疗效果突出、广泛适用于各病情阶段的透析患者、报销比例较大,是终末期肾病等的最主要治疗方式,其它血液净化技术在治疗效果、适应症、经济可行性等各方面与其相互补充。

血液透析工作过程为:通过将体内血液引流至体外,经一个由无数根空心纤维组成的透析器中,血液与含机体浓度相似的电解质溶液(透析液)在一根根空心纤维内外,通过弥散/对流进行物质交换,清除体内的代谢废物、维持电解质和酸碱平衡;同时清除体内过多的水分。血液透析治疗过程中,主要涉及的医疗器械及耗材包括血液透析设备、透析器、水处理设备、体外循环血路、穿刺针、透析液、透析粉等。

区别于血液透析,连续性肾脏替代治疗(CRRT)的临床应用范围超出肾脏病的领域,从重症急性肾功能衰竭到多脏器功能障碍综合征(MODS)、全身炎症反应综合征(SIRS)、急性呼吸窘迫综合征(ARDS)、急性坏死性胰腺炎、挤压综合征、药物及毒物中毒以及严重心衰等,都具有良好的应用前景,成为各种危重病救治重要的支持措施。CRRT与机械通气和全胃肠外营养(TPN)是近年来重症监护病房(ICU)治疗中最重要的进展之一。CRRT治疗过程与血液透析类似,相应使用的耗材包括血液滤过器、体外循环血路、置换液/透析液、抗凝剂等。

二、行业特有的经营模式、利润水平的变动趋势和变动原因

  1、行业特有的经营模式

  我国血液净化行业主要采用一般销售模式销售血液净化设备与耗材产品,同时部分采用联动销售模式进行销售。联动销售是国内血液净化行业借鉴体外诊断行业而逐步采用的销售模式,即在销售血液净化设备的同时,向客户销售血液净化耗材,设备和耗材互相促进销售。联动销售的业务模式,进一步加速了我国血液净化行业企业向全产业链布局。

  在连锁透析医疗服务方面,首次接诊的透析患者需在指定公立医院办理特病卡后,方可在独立血液透析中心进行透析治疗。由于终末期肾病(ESRD)已被列入大病医保范畴,透析中心需与属地医保部门签署《医疗服务协议》,患者就诊信息与医保系统联网,方才享受医保报销服务。

  2、行业利润水平的变动趋势和变动原因

  由于肾病患者的病情特征——需定期进行血液净化医疗服务来清除患者体内多余水分、尿素等有害物质,血液透析医疗服务是刚性需求,患者需每周进行2次至3次血液透析。血液净化耗材作为血液透析过程中的一次性消耗品,相对于设备,其单次消耗价格相对较低,但持续需求量大,行业内企业的耗材类产品毛利率普遍较高,能为企业带来持续的利润。

  血液净化设备主要作为独立血液透析中心或医院透析科室的固定资产投入,折旧时间普遍较长,并且下游客户的议价能力较强,导致血液净化设备的毛利率与耗材相比相对偏低,但持续需求量也较大。随着血液净化行业联动销售的销售模式逐步兴起,促使了血液净化行业向全产业链布局。

  未来,血液净化行业内率先完成全产业链布局的企业,将能够持续获得利润。

  第二节 血液净化行业发展情况

  一、全球血液透析行业发展概况

  1、全球血液透析患者数量持续增加

  2、全球血液透析市场规模稳步增长

  在全球范围内,对于慢性肾病患者而言,血液透析一直也将持续成为主要的治疗方式。根据费森尤斯年报披露的预测和统计,近几年来,全球透析产业市场规模从2015年的668亿欧元稳步上升至2020年的820亿欧元,年均增长率约为4%左右,到2021年,透析市场规模会继续增长至830亿至850亿欧元左右。其中透析服务(包括药品)市场规模分占比在80%以上,而以透析机为主的透析产品市场规模则占比较小。预计未来几年全球血透行业市场规模将继续保持平稳增速,到2025年全球血透行业市场规模将接近1000亿欧元。

  欧洲血液透析服务以公立机构为主,而美国和日本以私人运营机构为主。目前全球提供血液透析服务的企业主要有费森尤斯医疗、DaVita以及百特等。

二、国内血液透析行业发展概况

  从全球来说,血液净化市场主要集中在美国、日本和欧洲等发达国家,占比高达70%以上,而我国血液净化市场起步较晚,技术水平相较于国外还有一定差距,但随着肾病患者人数不断增长以及血液透析费用医保报销比例的不断提高,我国血液净化市场规模将快速增长,同时随着国内厂家技术水平的不断进步,进口替代程度将会进一步加速。

  1、我国ESRD患者人数不断增长,且血液透析治疗率还远低于国际水平

  目前,我国存量透析治疗需求仍远未被满足。据全国血液净化病例信息登记系统(CNRDS)统计的资料显示:2016年接受血液透析治疗的患者人数为44.7万人,2019年底已达到63.3万人,年均复合增长率达12%。另一方面,我国新增终末期肾病患者人数也在迅速增长,从2016年至2019年底,新增患者数量的年复合增长率达21%左右,这是推动我国血液净化行业未来增长的重要因素之一。预计到2030年我国终末期肾病患者(ESRD)人数将突破300万人,而我国接受治疗的患者比率不到20%,如果未来尿毒症患者透析治疗率提高到国际平均水平37%,届时透析治疗人数将达到148万人,若接近或达到发达国家现在的平均治疗率75%,则透析治疗人数或将达到300万人以上。随着人均收入的增长及医保覆盖比例的增加,终末期肾病患者接受治疗比率也将不断提高,从而进一步推动血液净化行业的增长。血液净化市场前景广阔,拥有巨大的发掘空间。

  据医械研究院发布的《中国医疗器械蓝皮书(2019版)》估算,截至2020年年底,我国约有83万人(含血液透析和腹膜透析)接受血液净化治疗。

  2、血液透析服务市场规模已逾540亿,并将保持稳定增长态势

  根据蛋壳研究院最新统计数据,每位尿毒症患者的透析费用约为6-10万元/年,在此基础上,根据CNRDS公布的在透患者数量进行估算,我们可以得出近几年血液透析的市场规模。自2014年以来,在政策的驱动下,血液透析服务的市场规模连续多年保持双位数上涨,我们预计2020年整个血液透析服务市场规模已达到548亿左右,未来,随着医保覆盖面扩大、大病医保报销比例提高和分级诊断等医疗政策的进一步完善,新技术、新透析模式的创新发展和临床应用,终末期肾病患者多层次、个性化的需求必将得到满足,血液透析服务行业的市场规模将持续增长,并在2025年达到接近700亿。

根据蛋壳研究院的测算,2020年,透析机、透析器、其他耗材(粉液、管路等)及药品的市场规模分别在38亿元、66亿元、53亿元及64亿元左右。随着血透中心市场规模增加,透析设备及耗材的需求量也将持续上升,我们预计在2025年,整体上游产业链中包含的透析设备、药品及耗材的市场规模将接近300亿元

由于血液净化设备属于技术密集型、人才密集型的高技术行业,产品研发难度大、周期长、准入门槛高、监管严,需要投入大量的研发人员和研发资金,对企业的资金、技术和人才要求极高,内资企业市场参与较少。目前中国血液透析机市场份额仍主要依赖于进口产品血透机,主要为欧美系和日系血透机。根据蛋壳研究院统计的数据,2020年国内血液透析机销量,以费森尤斯30%的市场份额位居榜首,费森尤斯、贝朗、日机装、百特以及尼普洛5大外资厂商占据了国内血液透析市场80%-90%左右的市场份额,目前我国血液透析机的市场集中度高,市场份额主要被进口厂商占据,国产自主品牌的血液透析机市场占有率仅在10%-20%左右。血液透析设备领域亟需加速进口替代的步伐。

  3、国内透析中心数量远低于市场饱和率,未来血液净化设备与耗材产品需求将随透析中心数量增长而增加

  从2014年起,我国政府开始鼓励社会资本进入血液透析中心领域,血液透析中心向连锁化、集团化发展,为我国民营资本进入血透领域提供了非常好的政策契机。在此之前,受政策限制民营资本很难进入这一领域。根据CNRDS公布的数据,从2011年至2019年,我国血透中心数量从3,511家迅速攀升至6,362家,截至2019年,我国接受血液透析治疗的患者约有63.27万人,其中新增13.46万人,血透中心数量与接受治疗患者的数量均有较大增长。以美国为例,根据USRDS发布的2020年度报告的数据,2018年美国有784,883终末期肾病患者,其中61.7%的患者在血液透析中心接受治疗,1.3%接受家庭透析治疗。其中,美国国内共建有血液透析中心接近6,000家,平均每家透析中心有20台左右透析机。

  2020年,我国终末期肾病患者超过300万人,需要长期接受血液透析治疗,频率为每周2次至3次且每次透析时间需要四小时左右,预计中国需要3万家血液透析中心(以每家透析中心配置20台透析机估算)以满足目前的患者需求。但实际上我国血液透析中心数量离3万家的饱和容量还远远不够,市场具有很大发展空间。因此,随着血液透析中心的数量及规模逐渐扩增,血液净化设备及耗材产品的市场需求也会相应增加。

第三节 血液净化行业发展趋势

  1、血液净化全产业链布局将成为未来发展趋势

  中国血液透析服务供给不足,第三方独立的血液透析服务需求旺盛。受日益增长的血液透析患者治疗需求的影响,全国血液透析服务供给严重不足。血液透析服务对血液透析设备的依赖程度高,血透设备厂商具备进入服务市场的天然优势。对于其他非血液透析设备企业类的竞争者而言,独立血液透析中心投资属于重资产投资,需要配备大量的血液透析机,整体的进入成本更高和所需承担的风险更大。而对于这类上游血液透析设备厂商来说,他们可以利用其长期积累的品牌效应、稳定的产品供应能力,向下游的血液透析服务产业延伸,获得更大的协同效应。

  从全球市场来看,费森尤斯和百特公司等在血液净化设备、血液净化耗材以及血液透析医疗服务领域均实现了全产业链布局。国内企业如山外山、威高血液、宝莱特、三鑫医疗等也已开启产品系列化布局的进程。血液透析产品线的叠加可以产生协同效应,提升渠道的利用效率,加大下游客户一站式采购的便利性,强化终端客户的粘性。同时血液净化耗材属于高值消耗性医疗器械,研发技术难度远低于血液净化设备,具有投入见效快、效益好的特征,能持续给企业带来稳定收益。

  2、连锁血液透析中心医疗服务社区化

  连锁血液透析中心模式主要满足长期慢性病患者,连锁血液透析中心医疗服务社区化可方便病人就近透析,生活和工作,有利于病人回归社会。在独立血液透析中心社区化发展过程中,品牌影响力逐步提高,血液透析服务企业为了提高竞争力,从而快速分得较大块的“蛋糕”,建立标准化模式,实现连锁化经营模式将成为其未来发展的趋势。

  3、设备更加智能化、人性化

  随着技术的不断发展进步,血液净化设备的功能会更加完善,新的安全监测技术的应用会使设备的安全性大大提高,同时设备及耗材的集成度也会越来越高,操作将更加便捷。大数据与云技术将在血液净化设备中得到广泛应用,通过在线生命体征监测与疗效评价技术,建立患者病例数据库和机器运行数据库,通过大数据分析和处理,实现个性化、智能化的治疗,将大大提升患者疗效指标,提升患者生存质量。

安装 Google BBR 加速VPS网络

最近总在折腾。之前在rectified买了一个年付9.6刀的128MB KVM架构的小VPS,其实它的线路本身就不错,直连国内电信和联通的洛杉矶鲨鱼机房,现在已经卖断货了。为了在这个小内存的VPS上搭建一个完美的梯子,我使用了使用Google BBR的全新内核。

预备知识

在使用Google BBR之前,我们首先要了解它是什么。了解计算机网络的人都知道,在TCP连接中,由于需要维持连接的可靠性,引入了拥塞控制和流量管理的方法。Google BBR就是谷歌公司提出的一个开源TCP拥塞控制的算法。在最新的linux 4.9及以上的内核版本中已被采用。对于该算法的分析,这里有一篇文章值得一读。在本人的网络环境(武汉电信20MB)测试下,ss不经过其它的任何的优化就能轻松的跑满带宽。(speedtest测试或fast测试)。由于Google BBR非常新,任何低于4.9的linux内核版本都需要升级到4.9及以上才能使用,故若VPS本身内核版本较低的话,只有KVM架构的VPS才能使用本教程升级内核并使用,openvz的VPS用户若内核版本较低则无法使用!

实施过程

基础方法

最简单的方法就是使用Google BBR一键安装脚本。

  1. 使用root用户登录,运行以下命令:
    1. wget –no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh
    2. chmod +x bbr.sh
    3. ./bbr.sh
  2. 安装完成后,脚本会提示需要重启 VPS,输入 y 并回车后重启。
    重启完成后,进入 VPS,验证一下是否成功安装最新内核并开启 TCP BBR,输入以下命令:

    1. uname -r

查看内核版本,含有 4.9 就表示 OK 了

  1. sysctl net.ipv4.tcp_available_congestion_control

返回值一般为:
net.ipv4.tcp_available_congestion_control = bbr cubic reno

  1. sysctl net.ipv4.tcp_congestion_control

返回值一般为:
net.ipv4.tcp_congestion_control = bbr

  1. sysctl net.core.default_qdisc

返回值一般为:
net.core.default_qdisc = fq

  1. lsmod | grep bbr

返回值有 tcp_bbr 模块即说明bbr已启动。

进阶方法 推荐!

由于一键包会进行很多很多判断和处理,而其中有很多步骤可以用更高的效率手工实现。

  1. 升级内核

对于Centos用户, 请执行如下命令:

  1. yum –enablerepo=elrepo-kernel -y install kernel-ml kernel-ml-devel

对于Centos 6,执行:

  1. sed -i ‘s/^default=.*/default=0/g’ /boot/grub/grub.conf

对于Centos 7,执行:

  1. grub2-set-default 0

而对于Debian / Ubuntu系统,可以在Ubuntu Kernel上下载最新版的内核deb安装包。

对于64位系统,下载amd64的linux-image中含有generic的deb包,

对于32位系统,下载i386的linux-image中含有generic的deb包。

安装命令:

  1. dpkg -i xxxxxxxxxx.deb

安装完后执行:

  1. /usr/sbin/update-grub

升级完后请立即重启VPS reboot

  1. 启用Google BBR

写入配置文件

  1. echo “net.core.default_qdisc=fq” >> /etc/sysctl.conf
  2. echo “net.ipv4.tcp_congestion_control=bbr” >> /etc/sysctl.conf

保存配置文件

  1. sysctl -p

输入以下命令以检查是否成功

  1. sysctl net.ipv4.tcp_available_congestion_control

若返回

  1. net.ipv4.tcp_available_congestion_control = bbr cubic reno

则说明开启成功。

后记

目前,常见的加速方式有Finalspeed(tcpspeed),Kcptun,锐速等单双边加速工具。Google BBR的优势就在于,其能单边地从TCP连接的拥塞控制算法着手解决网络加速的问题,并且已经集中到内核中成为新一代的规范,没有其他对于系统性能的开销。并且,可以配合锐速,Finalspeed等使用以达到最佳的使用效果。关于Finalspeed的使用教程可参见《网络环境的科学主义现代化改造》

参考资料:

  1. 一键安装最新内核并开启 BBR 脚本
  2. #为VPS加速度# Debian/Ubuntu安装bbr教程
  3. TCP BBR Quick-Start: Building and Running TCP BBR on Google Compute Engine

泰融科技-超声工作站

每周学习第四期 (2019-01-25)

新闻

曾国藩:如果你40岁还在低谷期,做到这5个字,钱必来追你!

 

伊斯坦布尔机场群吞吐量破亿 现最大机场将关闭

机场航班转机的那些事儿

同样转机!你在机场白等几个小时,人家竟可以出机场逛嗨!差距呀

出国还在租WiFi蛋?其实国际漫游更划算

不用开通国际漫游也能在国外接打电话

全网通手机=全国际漫游?要信你可能就上当了

做了半年自由职业,我才知道这些真相

7.73亿邮件帐号密码泄漏,你的密码可能就在其中

 

 

 

数码

自媒体利器 Final Cut Pro X 10.4.5破解+Compressor 4.4.3破解

网上卖80块的PS调色插件Alien Skin Exposure免费送,教安装使用

简单十步设置Huawei Share,手机与电脑传输从此告别数据线

 

 

IT

纯JS与Electron攻破微信公众号自动登录到扫码功能

「优秀AI开源项目推荐」Sketch2Code:自动将草图转换为代码

推荐几款项目管理工具 总有一款适合你

开源的分析与可视化平台—Kibana

HTML5的五种客户端离线存储方案

2019年第一波实用油猴脚本推荐

功夫宅-又一个全栈直播写代码!油管最赚钱程序员!

为什么说 GraphQL 可以取代 REST API?

2018年度国产开源软件排行

曾被大众误认为是外国佬研发的四款软件,个个都很了不起

网络在线预约管理系统

项目任务管理系统

一个轻量级的HTTP REST API框架

ASP.NET Core 3.0:将会拥有更少的依赖

基于 Voovan 开发的通用 Restful 服务框架

DotNET Core 3.0:System.Data的变化

最新拼多多技术部面试题:幻影读+分段锁+死锁+Spring Cloud+秒杀

 

Flutter

《Flutter 实战》开源电子书

Android Studio 3.0 WIFI真机调试,开发无束缚舒适感瞬间提升!

书旗小说 Flutter 版 flutter_shuqi

Flutter 2019 产品路线图正式公布

 

 

 

JAVA

学习Spring Boot看这两个开源项目就够了!非得值得收藏的资源

大型网站分库分表的基本思想


泰融科技-超声工作站

每周学习第三期 (2019-01-18)

这里记录过去一周,我看到的值得分享的东西,每周五发布。

新闻

产品设计

IT

JAVA

flutter环境更新方法

常规更新方法:

运行:flutter upgrade,然后等待自动更新完成即可,

非常贵更新方法:

1.更新flutter代码库

找到flutter库的安装目录,运行git,同步拉取到最新的代码,

2.更新依赖

运行flutter doctor -v 自动下载更新依赖的库

Microsoft Windows [版本 10.0.17134.112]
(c) 2018 Microsoft Corporation。保留所有权利。

F:\JavaWorker\deheng\android\hemodialysis>flutter doctor -v
Checking Dart SDK version...
Downloading Dart SDK from Flutter engine 72c7a7567228cdaf8b7aa4a9e3d212ef9d4cc0ed...
Unzipping Dart SDK...
Building flutter tool...
Running pub upgrade...
Downloading package sky_engine...                            1.1s
Downloading common tools...                                  2.6s
Downloading windows-x64 tools...                             5.9s
Downloading android-arm-profile/windows-x64 tools...         1.2s
Downloading android-arm-release/windows-x64 tools...         0.8s
Downloading android-arm64-profile/windows-x64 tools...       0.9s
Downloading android-arm64-release/windows-x64 tools...       0.9s
Downloading android-x86 tools...                             4.8s
Downloading android-x64 tools...                             4.9s
Downloading android-arm tools...                             3.4s
Downloading android-arm-profile tools...                     1.8s
Downloading android-arm-release tools...                     2.2s
Downloading android-arm64 tools...                           1.9s
Downloading android-arm64-profile tools...                   1.8s
Downloading android-arm64-release tools...                   1.5s
Downloading android-arm-dynamic-profile tools...             1.9s
Downloading android-arm-dynamic-release tools...             2.8s
Downloading android-arm64-dynamic-profile tools...           2.0s
Downloading android-arm64-dynamic-release tools...           1.7s
[√] Flutter (Channel beta, v0.10.3-pre.3, on Microsoft Windows [Version 10.0.17134.112], locale zh-CN)
    • Flutter version 0.10.3-pre.3 at F:\ProgramFiles\flutter
    • Framework revision 233435c02a (42 minutes ago), 2018-11-30 10:00:27 +0800
    • Engine revision 72c7a75672
    • Dart version 2.1.0 (build 2.1.0-dev.9.4 f9ebf21297)

[√] Android toolchain - develop for Android devices (Android SDK 28.0.3)
    • Android SDK at F:\ProgramFiles\android\sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-28, build-tools 28.0.3
    • ANDROID_HOME = F:\ProgramFiles\android\sdk
    • Java binary at: F:\ProgramFiles\android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)
    • All Android licenses accepted.

[√] Android Studio (version 3.2)
    • Android Studio at F:\ProgramFiles\android\Android Studio
    • Flutter plugin version 31.1.1
    • Dart plugin version 181.5656
    • Java version OpenJDK Runtime Environment (build 1.8.0_152-release-1136-b06)

[√] IntelliJ IDEA Ultimate Edition (version 2018.2)
    • IntelliJ at F:\ProgramFiles\JetBrains\IntelliJ IDEA 2018.2.4
    • Flutter plugin version 30.0.2
    • Dart plugin version 182.5124

[√] Connected device (2 available)
    • MI PAD 4  • 6074f4a0     • android-arm64 • Android 8.1.0 (API 27)
    • Che1 CL20 • f4e3fb7f933b • android-arm   • Android 4.4.4 (API 19)

• No issues found!

F:\JavaWorker\deheng\android\hemodialysis>


You need to add a widget, row, or prebuilt layout before you’ll see anything here. 🙂

Microsoft ASP.NET MVC 安全更新 MS14-059 (KB2990942)

重要! 选择下面的语言后,整个页面内容将自动更改为该语言。

选择语言:

下载DirectX End-User Runtime Web Installer
此安全更新可解决 Microsoft ASP.NET MVC 2.0、MVC 3.0、MVC 4.0、MVC 5.0 和 MVC 5.1 的安全漏洞 MS14-059 (KB2990942)
详情
统要求
支持的操作系统
Windows 7 Service Pack 1, Windows Server 2003 Service Pack 2, Windows Server 2008 R2 SP1, Windows Server 2008 Service Pack 2, Windows Vista Service Pack 2, Windows XP Service Pack 3

权限要求: 运行可执行文件之前,必须对安装软件的计算机具有管理权限。有关其他信息,请参阅本文: 此处

软件要求:
ASP.NET MVC 2.0:
要求计算机上已安装 .NET Framework 3.5 SP1,请参阅此产品 .NET 3.5 SP1 的系统要求
ASP.NET MVC 3.0、ASP.NET MVC 4.0:
要求计算机上已安装 .NET Framework 4.0(或更高版本),请参阅此产品 .NET 4.0 的系统要求
ASP.NET MVC 5.0、ASP.NET MVC 5.1:
要求计算机上已安装 .NET Framework 4.5(或更高版本),请参阅此产品 .NET 4.5
的系统要求
安装说明
安装 Microsoft ASP.NET MVC (KB2990942) 的更新:
选择要安装的相应 ASP.NET MVC 版本(MVC 2.0、MVC 3.0、MVC 4.0、MVC 5.0 – KB2992080、MVC 5.1- KB2994397),然后单击此页面上的“下载”按钮开始下载。
或者,也可以单击“保存”将 .msi 安装程序文件下载到你的计算机。然后,导航到 .msi 文件的保存位置,双击 .msi 文件并按照安装程序中显示的说明操作
此 Microsoft ASP.NET MVC 安全更新也可以通过 Microsoft Update 自动更新。请参阅安全公告 ( MS14-059 ) 了解有关哪些用户将通过自动更新获得此项更新的详细信息

托管调试助手报错

今天在调试程序时出现下面的异常:
其他信息: CLR 无法从COM 上下文0x1a0e50 转换为COM 上下文0x1a0fc0,这种状态已持续60 秒。拥有目标上下文/单元的线程很有可能执行的是非泵式等待或者在不发送Windows 消息的情况下处理一个运行时间非常长的操作。这种情况通常会影响到性能,甚至可能导致应用程序不响应或者使用的内存随时间不断累积。要避免此问题,所有单线程单元(STA)线程都应使用泵式等待基元(如CoWaitForMultipleHandles),并在运行时间很长的操作过程中定期发送消息。
通过代码没有找出异常,网上有人说把,调试–异常中的contextswitchDeadlock选项去掉:

按照说明去掉后确实没有此问题,但不明白出现这种情况的原因是代码处理不恰当造成的,还是说编译器有问题,期待高手的赐教。

正试图在 os 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。

.NET2.0中增加了42种非常强大的调试助手(MDA,Loaderlock 是其中之一。Loaderlock检测在一个拥有操作系统loader lock的线程上(如上例的video的运行线程)运行托管代码的情况。这样做有可能会引起死锁,并且有可能在操作系统加载器初始化DLL前被使用。虽然这样做很有必要,但在进行开发调试的时候,实在太麻烦

这是由于正在加载特定资源:例如换肤控件时

办法一
把vs2005菜单的 调试->异常->Managed Debuggin Assistants->LoaderLock 的选中状态去掉
如果异常(exception)这一项没有的话,在工具—自定义—命令选项卡—左边选择调试–右边把异常托到菜单里
快捷键Ctrl+Alt+E,修改Managed Debuggin Assistants->LoaderLock 的选中状态去掉
方法二
在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework下面增加一个String,值为”0″
不过这样做,在该计算机上所有基于.NET2.0开发都得不到MDA的好处

按钮扁平化用法示例-buildFlatButton

Widget buildFlatButton() {
    return Align(
      alignment: const Alignment(0.0, -0.2),
      child: Column(
        mainAxisSize: MainAxisSize.min,
        children: <Widget>[
          ButtonBar(
            mainAxisSize: MainAxisSize.min,
            children: <Widget>[
              FlatButton(
                child: const Text('FLAT BUTTON', semanticsLabel: 'FLAT BUTTON 1'),
                onPressed: () {
                  // Perform some action
                },
              ),
              const FlatButton(
                child: Text('DISABLED', semanticsLabel: 'DISABLED BUTTON 3',),
                onPressed: null,
              ),
            ],
          ),
          ButtonBar(
            mainAxisSize: MainAxisSize.min,
            children: <Widget>[
              FlatButton.icon(
                icon: const Icon(Icons.add_circle_outline, size: 18.0),
                label: const Text('FLAT BUTTON', semanticsLabel: 'FLAT BUTTON 2'),
                onPressed: () {
                  // Perform some action
                },
              ),
              FlatButton.icon(
                icon: const Icon(Icons.add_circle_outline, size: 18.0),
                label: const Text('DISABLED', semanticsLabel: 'DISABLED BUTTON 4'),
                onPressed: null,
              ),
            ],
          ),
        ],
      ),
    );
  }

 

 

 

 

 

  factory FlatButton.icon({
    Key key,
    @required VoidCallback onPressed,
    ValueChanged<bool> onHighlightChanged,
    ButtonTextTheme textTheme,
    Color textColor,
    Color disabledTextColor,
    Color color,
    Color disabledColor,
    Color highlightColor,
    Color splashColor,
    Brightness colorBrightness,
    EdgeInsetsGeometry padding,
    ShapeBorder shape,
    Clip clipBehavior,
    MaterialTapTargetSize materialTapTargetSize,
    @required Widget icon,
    @required Widget label,
  }) = _FlatButtonWithIcon;

 

 

 const FlatButton({
    Key key,
    @required VoidCallback onPressed,
    ValueChanged<bool> onHighlightChanged,
    ButtonTextTheme textTheme,
    Color textColor,
    Color disabledTextColor,
    Color color,
    Color disabledColor,
    Color highlightColor,
    Color splashColor,
    Brightness colorBrightness,
    EdgeInsetsGeometry padding,
    ShapeBorder shape,
    Clip clipBehavior = Clip.none,
    MaterialTapTargetSize materialTapTargetSize,
    @required Widget child,
  }) : super(
         key: key,
         onPressed: onPressed,
         onHighlightChanged: onHighlightChanged,
         textTheme: textTheme,
         textColor: textColor,
         disabledTextColor: disabledTextColor,
         color: color,
         disabledColor: disabledColor,
         highlightColor: highlightColor,
         splashColor: splashColor,
         colorBrightness: colorBrightness,
         padding: padding,
         shape: shape,
         clipBehavior: clipBehavior,
         materialTapTargetSize: materialTapTargetSize,
         child: child,
      );

 

7 of 7 in the series: Fltter移动开发相关

每周学习第二期 (2019-01-11)

新闻

向老前辈,致敬!!!
一句话新闻
  • 统计显示,美国55%的智能手机用户、全世界86%的智能手机用户,使用安卓系统。
  • GitHub 宣布,个人用户可以免费使用私有库,数量不限,该功能以前是付费使用。
  • 印度的2018年安卓应用程序排行榜里面,前10名有5个来自中国,2017年是2个;前100名有44个来自中国,2017年是18

 

 

5G 通信的频率(3300-3600MHz 和 4800-5000MHz)比 4G (1880-1900MHz、2320-2370MHz、2575-2635MHz)高很多。频率越高,覆盖能力越差,这注定很多角落收不到 5G 信号,所以需要修建更多的信号发射装置。
英国沃达丰公司的工程师提出,可以使用城市的下水道盖子,作为无线信号的发射基地。这样不会占用地面空间,外部也看不到

 

 

诺丁汉大学发明了一种微型太阳能电池,每个发电单元的长度为3毫米,宽度为1.5毫米,可以嵌入纱线,进而编织成服装,使得后者具备发电功能,而且肉眼还看不出任何差别。电池封装在树脂之中,所以纺织品可以进行洗涤,也不怕磨损。
用户穿上这种纺织品,就可以发电。该技术已经过测试,能够为手机充电。一块5厘米×5厘米大小的纺织品,可以放置多达200个发电单元,产生2.5-10伏特和高达80毫瓦的功率,如果发电单元达到2000个,就能为手机充电。

 

 

斯坦福大学的科学家将电极植入瘫痪病人的大脑皮层,接受脑电波,转为数字信号,控制无线蓝牙鼠标,操作平板电脑。参与实验的患者,可以使用常见程序(网页浏览、电子邮件、聊天、发送短信等)。
这项发明不仅对瘫痪者有用,长期来看,可能会为意念操作电脑创造可能性。

 

 

美国路易斯安娜州开始采用数字驾照。用户下载一个 App,输入自己的物理驾照的信息,然后 App 会将这些信息提交到州政府的机动车辆数据库进行验证。通过验证,App 就会生成一个二维码。
需要驾照的场合,警察就可以拿自己的手机扫描 App 的二维码,从数据库返回这个驾照的信息。

学习资料

伯克利大学最新深度学习课程资料中文版下载

关于本书

本教材是加州大学伯克利分校 2019 年春学期《 Introduction to Deep Learning 》课程教材,伯克利的CS(计算机科学)是非常强的。由于伯克利就在湾区(硅谷),所以他们的计算机大佬们即是学术精英,也是业界大拿。本课程主要由李沐老师开设,基本上涵盖了深度学习的方方面面,可以说是一门比较全的参考资料了,
链接:https://pan.baidu.com/s/1-RGOQaD6Jr5Inks476MquQ
密码:k1q8

「优秀开源AI项目推荐」vid2vid:超逼真高清视频生成

英伟达和MIT的研究团队高出一个超逼真高清视频生成AI。
只要一幅动态的语义地图,就可获得和真实世界几乎一模一样的视频。换句话说,只要把你心中的场景勾勒出来,无需实拍,电影级的视频就可以自动P出来:
这背后的vid2vid技术,是一种在生成对抗性学习框架下的新方法:精心设计的生成器和鉴别器架构,再加上时空对抗目标。
研究论文:https://tcwang0509.github.io/vid2vid/paper_vid2vid.pdf
GitHub地址:https://github.com/NVIDIA/vid2vid

数码

在,网络技术越来越发达,无线网络覆盖越来越广泛,移动网络已经不满足于我们,WiFi的使用率就越来越多,在外面想要连接WiFi,但是外面的无线网络设置了密码,怎么连接呢?这时可能我们会想到WiFi万能钥匙,并不是所有的密码都可以破解,当然也可以破解一部分吗,除了WiFi万能钥匙,小编还寻到一款比较不错的无线密码破解工具ewsa,全称为Elcomsoft Wireless Security Auditor,拥有强大的密码破解能力,该软件通过密码词典去尝试破解无线AP上的WPA和WPA2密码,一般密码由8位数的字符组成,所有你可以使用暴力破解、字典破解等常用的破解方式来破解密码,帮助你轻松获得无线WiFi的密码,蹭网轻松松松。不仅支持密码破解,它还支持WiFi信号搜索功能,比如笔记本等移动设备都可以搜索WiFi信号,然后快速进行密码破解。而且对于你经常需要用的WiFi信号源提供记录功能,下次使用可以直接进行连接,无需重新破解,非常方便。

IT

第一名 GitKraken

适用于Windows、Mac和Linux的Git 客户端。在2018年,超过100万用户,连续3年获得用户最佳!
下载地址:https://www.gitkraken.com/git-client
  1. 压轴出场:微软主打的革命性开发扩展:VS Live Share,在这个扩展的加持下,你可以和你的同事完成真正的远程实时代码协同开发,对方并不需要将整个工程clone下来,只需要连接到你开的session,你和他就可以对一个文件进行开发,修改。

抖音热门视频制作工具,都在这儿了!

一、抖音数据分析平台
1)西瓜短视频助手
监测视频热度、音乐热度、主播热度工具,网页版和微信小程序都有
2)Kolranking
收集和监测大部分头部的账号,更多的是通过API 抓取抖音视频数据,做成了榜单形式
二、去水印工具
1)水印宝、InShot (功能强大,还有自由裁剪功能)
这些软件和APP 各有优缺点,有一些是付费的功能
三、字体工具
1)尖叫字体生成工具
2)文字翻转特效制作工具:字说、美册
3)变声APP :配音变声器、VoiceChanger
四、视频剪辑和字幕添加工具
Pr(专业级软件,电脑操作,较复杂) 、Ae 、巧影、Videoleap(苹果手机)、快剪辑、爱剪辑、印象、VUE
五、抖音视频拍摄
1)录屏:录屏大师、录制屏幕视频工具

一个不收集隐私的搜索引擎duckduckgo.com

python

JAVA

Spring Boot 的 10 个核心模块

1、spring-boot
这是 Spring Boot 的主模块,也是支持其他模块的核心模块,主要包含以下几点:
1) 提供了一个启动 Spring 应用的主类,并提供了一个相当方便的静态方法,它的主要是作用是负责创建和刷新 Spring 容器的上下文;
2) 内嵌式的并可自由选择搭配的 WEB 应用容器,如:Tomcat, Jetty, Undertow等;
3) 对配置外部化的支持;
4) 提供一个很方便的 Spring 容器上下文初始化器,包括合理记录日志默认参数的支持。
2、spring-boot-autoconfigure
Spring Boot能根据类路径下的内容自动一些公共大型应用,提供的@EnableAutoConfiguration 注解就能启用 Spring 功能的自动配置。
自动配置功能可以推断用户可能需要加载哪些 Spring Bean, 如:如果类路径下有HicariCP 这个连接池的包,此时并未提供任何有效连接池的配置,那么 Spring Boot 就知道你可能需要一个连接池,并做相应配置。如果用户配置了其他连接池,那么 Spring Boot 会放弃自动配置。
3、spring-boot-starters
Starters,我们叫它启动器好了,它是包括一系列依赖的描述符。简单的说就是,它可以一站式的帮你打包 Spring 及相关技术应用,而不需要你到处找依赖和示例配置代码,它都帮你做好了。
例如,第一章我们在介绍 Spring Boot 的时候就说了 spring-boot-starter-web 这个启动器,你只要引用了这个启动器应用,就会自动配置 WEB 应用的能力。
spring-boot-starters 这个启动器这主要提供了 spring-boot, spring-context,spring-beans 这三个 Spring 模块而已。
4、spring-boot-cli
这是 Spring Boot 的命令行工具,用于编译和运行 Groovy 源程序,可以十分简单的编写并运行一个应用程序。它也能监控你的文件,一旦有变动就会自动重新编译和重新启动应用程序。
5、spring-boot-actuator
这是 Spring Boot 提供的执行端点,你可以更好的监控及和你的应用程序交互。这个模块提供了像健康端点、环境端点、Spring Bean端点等。
6、spring-boot-actuator-autoconfigure
这个原理同上,为 Spring Boot 执行端点提供自动配置。
7、spring-boot-test
Spring Boot测试模块,为应用测试提供了许多非常有用的核心功能。
8、spring-boot-test-autoconfigure
这个原理同上,为 Spring Boot 测试模块提供自动配置。
9、spring-boot-loader
这个模块可以用来构建一个单独可执行的 jar 包,使用 java -jar 就能直接运行。一般不会直接使用这个来打包,使用 Spring Boot 提供的 Maven 或者 Gradle 插件就行了。
10、spring-boot-devtools
开发者工具模块,主要为 Spring Boot 开发阶段提供一些特性,如修改了代码自动重启应用等。这个模块的功能是可选的,只限于本地开发阶段,当打成整包运行时这些功能会被禁用。

Java工具包,提高开发效率,里面应有尽有Hutoo

Hutool是一个Java工具包,也只是一个工具包,它帮助我们简化每一行代码,减少每一个方法,让Java语言也可以“甜甜的”。Hutool最初是作者(Looly)项目中“util”包的一个整理,后来慢慢积累并加入更多非业务相关功能,并广泛学习其它开源项目精髓,经过自己整理修改,最终形成丰富的开源工具集。

包含组件

一个Java基础工具类,对文件、流、加密解密、转码、正则、线程、XML等JDK方法进行封装,组成各种Util工具类,同时提供以下组件

 

  • hutool-aop JDK动态代理封装,提供非IOC下的切面支持
  • hutool-bloomFilter 布隆过滤,提供一些Hash算法的布隆过滤
  • hutool-cache 缓存
  • hutool-core 核心,包括Bean操作、日期、各种Util等
  • hutool-cron 定时任务模块,提供类Crontab表达式的定时任务
  • hutool-crypto 加密解密模块
  • hutool-db JDBC封装后的数据操作,基于ActiveRecord思想
  • hutool-dfa 基于DFA模型的多关键字查找
  • hutool-extra 扩展模块,对第三方封装(模板引擎、邮件、Servlet、二维码等)
  • hutool-http 基于HttpUrlConnection的Http客户端封装
  • hutool-log 自动识别日志实现的日志门面
  • hutool-script 脚本执行封装,例如Javascript
  • hutool-setting 功能更强大的Setting配置文件和Properties封装
  • hutool-system 系统参数调用封装(JVM信息等)
  • hutool-json JSON实现
  • hutool-captcha 图片验证码实现
  • hutool-poi 针对POI中Excel的封装
<dependency>
 <groupId>cn.hutool</groupId>
 <artifactId>hutool-all</artifactId>
 <version>4.4.0</version>
</dependency>

数据库

Web服务端/前端

walle 2.0.0 正式发布,可能是春节前最良心的免费开源部署工具

教程


1、文档站点生成工具(英文)
本文以 JS 项目为例,介绍各种生成文档站点的工具。
本文总结了历史上重大的软件创新,进而提出专利制度不适合软件业,应该废除软件专利。
3、Wireguard 安装教程(英文)
介绍 Wirdguard 如何安装和配置。
fx 可以方便地在命令行操作 JSON 数据,本文是 fx 用法的教程。
作者谈了他不喜欢的8个 Python 语法。
本文较通俗地介绍了神经网络的历史发展和计算原理。
7、10年博客的经验(英文)
作者写了10年博客,介绍怎么可以通过博客取得最佳效果。
假设放大镜可以无限大,能够聚焦月光以点火吗?答案是不能。
一个软件工程师介绍自己安装的 iOS 软件。

资源


 

 

该网站提供美国的好奇号火星车拍摄的多张火星全景照片,各种不同的地貌,可以360度旋转观看。
《Rust 编程语言》的 EPUB 版本下载,可以从这本书开始学习 Rust 语言。
字体搜索引擎。
该网站是数学知识科普,覆盖了代数,几何,统计,微积分等领域。有一个爱好者翻译的中文镜像。(@rolitter 投稿)
介绍如何搭建 OAuth 服务的电子书。
Linux 命令的搜索入口,提供中文解释。(@jaywcjlove__ __投稿)
7、Awesome Mac(中文版)
收入各种好用的 Mac 软件。(@jaywcjlove 投稿)、

工具


1、WBO
一个多人实时分享的在线白板。

 

 

国人开发的 MacOS 视频播放器,特点是点击文本字幕,会显示英语单词的中文解释,英语学习者的小帮手。

 

 

一个生成网页互动表格的 JS 库,提供很多功能。
各种云服务之间转移文件的命令行工具。

 

 

jerverless 是一个 Web 服务器,可以将任何语言的程序转为 Serverless 函数,从网络调用。它会把源程序放在 Docker 容器里面运行,然后提供 Web 接口与用户通信。
这个库可以根据击打键盘的声音,分析用户的输入内容。
7、fx
命令行 JSON 数据的浏览工具。
一种将 HTML 转成 JSON 格式的规范标准。
Puppeteer 现在不仅封装 Chrome,还开始封装 Firefox 了,API 完全一样。以后,浏览器自动化可能只用它就可以了,其他库都要被干掉了。
基于 vue + elementUI 构建的网站管理后台脚手架。(@umi-soft__ __投稿)
一款 Hexo 的主题,提供更好的用户体验和更清爽的UI设计。(@dongyuanxin 投稿)

文摘


英国科幻小说家亚瑟.C.克拉克,提出了三个定律。
克拉克的第一定律:“如果一位杰出的老科学家表示,某些事情是可能的,那么他几乎肯定是对的。如果他说某事是不可能的,他很可能是错的。”
克拉克还补充说,上面定律里面“老人”的定义,取决于他所在的学科。“物理学、数学和航天科技中,超过三十岁的人就是老人;其他学科中,老人有时会推迟到四十岁。当然也有一些了不起的例外,但是每个刚刚大学毕业的研究人员都知道,超过五十岁的科学家只能去参加会议,其他什么也干不了,而且他本人也应该有自知之明,绝不要让自己去碰实验室的工作。”
克拉克的第二定律:“发现极限的唯一方法,就是尝试一些不可能的事情。”
克拉克的第三定律:“任何足够先进的技术都像魔术一样。”
20世纪50年代开始,鸡肉消费量大幅增长,成了人类最多消费的肉类来源。如今,全世界一共存在210亿只鸡。
为了适应对鸡肉的需求,人类逐步改变了鸡这个物种,使得当代肉鸡与原始的野生鸡差异越来越大。
肉鸡的腿部和胸部肌肉,生长得特别快,而内脏(包括心脏和肝脏)则比野生鸡小。这意味着,肉鸡根本没法在野外生存,而且较多的鸡肉和较小的器官也限制了肉鸡的寿命。
科学家认为,肉鸡实际上是人工设计的物种,使其适合人类的食物消费,让它成为地球上数量最多的陆生脊椎动物。

 

 

声音是一种波,人耳能够听到的频率范围在 20Hz – 20kHz 之间。
为了将音频变成数字信号,需要对音频进行抽样。每秒之内的抽样次数越多,就能越好地还原声音。CD 质量的音频就是每秒进行抽样44100次,也就是 44.1kHz。由于至少两次抽样才能确定一个波峰或波谷,所以 44.1kHz 的抽样频率,最高可以记录 22kHz 频率的声音。
抽样频率越高,所能记录的声音频率也就越高。但是,人耳最高只能听到 20kHz 频率的声音,所以抽样频率太高,意义不大。另一方面,抽样频率太低,高频声音无法记录到,会影响音质。比如,电话质量的声音,抽样频率是 8KHz,因此记录不到 4kHz 以上的声音。
CD 质量的音频在抽样以后,使用16个二进制位保存每一次抽样结果。所以,每秒的数据量是 16位 x 44,100 x 2个立体声声道 = 1411.2kbps,即 176.4KB,保存成 wav 文件,一分钟就是10.1MB。
wav 文件体积太大,一首歌有几十MB,因此人们就发明了音频压缩技术,缩小音频文件的体积。“无损”的音频压缩(比如 FLAC、ALAC、MP3 HD 格式),跟普通的文件压缩技术并无太大不同。为了达到更好的压缩效果,一般都是使用“有损”的音频压缩(比如 MP3、AAC、WMA、Ogg Vorbis 格式)。它的原理是,随着年龄增长,中年人会逐渐听不到 16kHZ 以上的声音,所以这部分信号可以抛弃掉。
MP3 格式可以把每秒钟的数据量压缩到 128kbps(即 16KB),一分钟只有 960KB,比起 wav 格式小了90%多。

本周图片


 

 

Pepper 是一只1970年出生在实验室的大猩猩,她一直被用于医学研究,曾经307次被麻醉枪击倒,36次肝脏活检,1次开放式肝脏活组织检查,6次宫颈活检,10次淋巴结活检和4次骨髓活检,还被接种了艾滋病病毒。由于恐惧和焦虑,她在实验室生活的后期曾经拒绝饮食,宁愿饿死。
从出生开始,她一直住在一个 5米 x 5米 x 7米 的笼子,从未离开过。这样生活了27年以后,1997年,经过动物保护组织的争取,实验室同意将她移交给动物保护组织,她被转移到佛罗里达州一个专门收留实验猩猩的场所。上面的照片摄于2002年。他死于2012年,一共活了42岁。
像这样专门用于实验的大猩猩,在美国共有几百只。美国国立卫生研究院已经宣布,将退出其中的大部分。
2、珍珠宫(组图)

 

 

珍珠宫是上个世纪70年代,伊朗革命爆发之前,美国建筑师为伊朗国王的妹妹设计的住所,具有未来主义风格,如今已成废墟。本文是珍珠宫的介绍 + 照片。上图是整个建筑的模型,下图是室内游泳池。

 

 

2014年,人工智能已经可以生成人脸,但你可以很容易看出哪几张是机器生成的。下图都是那时人工智能生成的人脸。

 

 

2018年,AI 生成的人脸,就不太容易跟真实的人脸区分了。

 

 

本周金句


1、一个敢于浪费一小时生命的人并没有发现生命的价值。
— 查尔斯·达尔文
2、创建一个手机操作系统有多难?
2014年,六个移动操作系统企图替代 iOS 和 android:Blackberry OS,Sailfish,Ubuntu Mobile,Firefox OS,Tizen 和 Windows Phone,现在它们都死了或不再有这种可能。
3、如果你不懂 p 值这样的概念,然后企图在3-4个月内完成机器学习的课程,能够使用 R 和 Python 编写代码。这意味着,你可以成为一名营销分析师,并能处理一些数字,仅此而已。
4、一家公司想装修办公室地板,结果发现下面是蜿蜒曲折的通信电缆。如果彻底装修,必须更换并重新连接电缆。他们这样做了吗?没有,当他们看到复杂的电缆后,就没有碰任何东西,只是小心地更换了地板。谁知道每根电缆的作用和连接方式?最好保持原样。

2 of 4 in the series: 分享每一周