webp

springboot 热部署导致类型转换异常

夙愿已清 提交于 2020-08-09 15:53:54
原因: 1. JVM判断两个类对象是否相同的依据:一是类全称;一个是类加载器.(具体原理请自行百度,在此不再赘述)。 2. 大家都知道虚拟机的默认类加载机制是通过双亲委派实现的。springboot为了实现程序动态性(比如:代码热替换、模块热部署等,白话讲就是类文件修改后容器不重启),“破坏或牺牲” 了双亲委派模型。springboot通过强行干预-- “截获”了用户自定义类的加载(由jvm的加载器AppClassLoader变为springboot自定义的加载器RestartClassLoader,一旦发现类路径下有文件的修改,springboot中的spring-boot-devtools模块会立马丢弃原来的类文件及类加载器,重新生成新的类加载器来加载新的类文件,从而实现热部署。比较流行的OSGI也能实现热部署)。 3、 当对象被序列化到缓存里时,当前应用的类加载器是C1,当你改变了一些代码或者配置文件的时候,DevTools 工具将会自动重新启动这个容器,并且创建一个新的类加载器 C2. 这时候调用这个具有缓存的方法时,缓存管理将会从缓存里找到该条缓存记录并进行反序列化操作。如果缓存库不考虑上下文的话,也就是没注意到类加载器的变化时,该对象将会有错误的类加载器。即:类加载器不一致所导致。 方案一、解决方案就是在resources目录下面创建META-INF文件夹

#新闻拍一拍# 日本 ARM 超算富岳登顶 Top 500 榜单

限于喜欢 提交于 2020-08-09 14:48:11
日本 ARM 超算富岳登顶 Top 500 榜单 Top 500 公布了最新的 榜单 ,日本基于 ARM 架构的超算富岳登顶,其 Linpack 运算性能达到 415.5 petaflops,是排在第二位的美国橡树岭国家实验室 IBM 超算 Summit 的 2.8 倍。富岳运行的操作系统为 Red Hat Enterprise Linux 8 和 McKernel(轻量级多内核操作系统)。中国的神威太湖之光、天河二号 A 分别排名第四和第五。中国依旧保持超算数量第一,有 226 台,美国 114 台,日本 30 台,法国 18 台,德国 16,美国超算的总性能高于中国。500 台超算中 469 台使用英特尔 CPU,AMD CPU 的有 11 台。 来源: solidot 拍一拍:结合下一条,ARM 不仅在移动设备用的多,在桌面计算机也开始大量使用,甚至在超算上都要占个鳌头。 苹果宣布其设备将全面转向自建的“Apple Silicon”计算体系 苹果在 WWDC 2020 宣布转向自己的 ARM 芯片 Apple Sillicon 体系,在 Mac 设备上不仅允许安装经过修改的英特尔应用程序,还能原生运行现有的 iOS 和 iPadOS 应用程序。Apple Silicon 将使用各种定制技术,包括神经网络、GPU、Secure Enclave 等。兼容性方面,所有在 Intel

QMovie webp frame stutters

你。 提交于 2020-08-09 09:46:08
问题 I'm using QMovie to play a webp animation on a QLabal, the code like: Foo::Foo() { movie_ = new QMovie("/path/to/my.webp", "", this); ui->label->setMovie(movie_); } void Foo::on_pushButton_clicked() { movie_->stop(); movie_->start(); } But when I play the animation, the frame stutters, like: I try to extract the webp frames by using QImage::save, the code like: QImageReader *reader = new QImageReader("/path/to/my.webp"); reader->setDecideFormatFromContent(true); for (int i = 0; i < reader-

QMovie webp frame stutters

自闭症网瘾萝莉.ら 提交于 2020-08-09 09:45:26
问题 I'm using QMovie to play a webp animation on a QLabal, the code like: Foo::Foo() { movie_ = new QMovie("/path/to/my.webp", "", this); ui->label->setMovie(movie_); } void Foo::on_pushButton_clicked() { movie_->stop(); movie_->start(); } But when I play the animation, the frame stutters, like: I try to extract the webp frames by using QImage::save, the code like: QImageReader *reader = new QImageReader("/path/to/my.webp"); reader->setDecideFormatFromContent(true); for (int i = 0; i < reader-

作为架构风格的 REST 到底是什么

柔情痞子 提交于 2020-08-08 05:20:48
很多人搞不明白 REST(Representational State Transfer 表述性状态转移)原因在于一开始就是把它当做 设计风格 而不是 架构风格 来理解,因而一上来就大谈特谈什么 RESTful API,结果是只见树木不见森林。 仅从设计的角度去理解 REST(仅把它作为 API 设计原则),最多仅能理解其资源、表述这些概念,却很难理解状态转移到底是怎么回事。 要想搞清楚 REST,必须透彻理解三个关键概念: 资源、表述、状态转移 。 REST 架构风格提出者和 HTTP 1.1 规范主要设计者都是同一个人 Roy Fielding。事实上,HTTP 1.1 正是 REST 风格的实现,因而认识 REST 最好的方式是从基于 HTTP 的 Web 应用开始。 场景: 我们看一个典型场景。 李小四想在京东上买一部 iPhone。 首先他在浏览器地址栏输入 www.jd.com(当然也可以通过搜索引擎进入),打开京东商城首页,然后在首页搜索栏输入“iPhone”,回车,页面切换到含有 iPhone 关键字的商品列表。 李小四用鼠标点击其中一个商品,进入该商品详情页。 李小四看了看介绍,觉得中意,于是选定颜色、型号、规格、数量,点击“加入购物车”,再点击“去购物车结算“,填写收货人信息、支付方式、开票信息,点击“提交订单”,选择一种支付方式支付并完成订单。

(Python基础教程之二十二)爬虫下载网页视频(video blob)

感情迁移 提交于 2020-08-08 03:04:10
现在视频链接一般为m3u8,找到m3u8地址就可以下载了 打开Chrome Developer工具,然后点击“网络”标签。 导航到包含视频的页面,然后开始播放。 将文件列表过滤为“ m3u8”。 找到master.m3u8或index.m3u8并单击它。 将文件保存到磁盘并在其中查看。 如果文件包含一个m3u8主URL,则复制该URL。 使用ffmpeg 工具下载m3u8视频 ffmpeg -i "https://secure.brightcove.com/services/mobile/streaming/index/rendition.m3u8?assetId=6138283938001&secure=true&videoId=6138277786001" -bsf:a aac_adtstoasc -vcodec copy -c copy -crf 50 6138277786001.mp4 Python下载代码 #!/usr/bin/env python3 import requests,urllib from bs4 import BeautifulSoup import os import subprocess pwd = os.path.split(os.path.realpath(__file__))[0] url = "https://www.topgear.com

Pulsar笔记(好)

天大地大妈咪最大 提交于 2020-08-08 02:57:02
Pulsar 是由 Yahoo 于 2016 年开源并捐赠给 Apache 基金会的一款消息中间件,其主要特点是多租户且易于扩展,本文根据自己对 Pulsar 相关文档的理解并请教相关 PMC 后写成,囿于水平有限,错误难免,欢迎留言指正。 1 Pulsar vs Kafka 很多人查看 Pulsar 之前可能对 Kafka 很熟悉,参照上图可见二者内部结构的区别,下面详述二者的异同以明了 Pulsar 的特点。 1.1 名词对应表 根据个人对 参考文档1 的理解,整理如下 Pulsar 和 Kafka名词对应列表 : Pulsar Kafka Topic Topic Partition Partition Ledger(Segment)/Fragment Fragment/Segment Bookie Broker Broker Client SDK Ensemble Size metadata.broker.list Write Quorum Size (Qw) Replica Number Ack Quorum Size (Qa) request.required.acks Pulsar 和 Kafka 都是以 Topic 描述一个基本的数据集合,Topic 数据又分为若干 Partition,即对数据进行逻辑上的 sharding 后存储为若干子集合。但 Kafka 以

机器学习中的AUC-ROC曲线

走远了吗. 提交于 2020-08-07 08:28:12
作者|ANIRUDDHA BHANDARI 编译|VK 来源|Analytics Vidhya AUC-ROC曲线 你已经建立了你的机器学习模型-那么接下来呢?你需要对它进行评估,并验证它有多好(或有多坏),这样你就可以决定是否实现它。这时就可以引入AUC-ROC曲线了。 这个名字可能有点夸张,但它只是说我们正在计算“Receiver Characteristic Operator”(ROC)的“Area Under the Curve”(AUC)。 别担心,我们会详细了解这些术语的含义,一切都将是小菜一碟! 现在,只需知道AUC-ROC曲线可以帮助我们可视化机器学习分类器的性能。虽然它只适用于二值分类问题,但我们将在最后看到如何扩展它来评估多类分类问题。 我们还将讨论敏感性(sensitivity )和特异性(specificity )等主题,因为这些是AUC-ROC曲线背后的关键主题。 目录 什么是敏感性和特异性? 预测概率 AUC-ROC曲线是什么? AUC-ROC曲线是如何工作的? Python中的AUC-ROC 用于多类分类的AUC-ROC 什么是敏感性和特异性? 混淆矩阵: 从混淆矩阵中,我们可以得到一些在前面的文章中没有讨论过的重要度量。让我们在这里谈谈他们。 敏感度/真正例率/召回率 敏感度告诉我们什么比例的正例得到了正确的分类。

RecycledView源码解析

≡放荡痞女 提交于 2020-08-07 04:31:56
RecyclerView LayoutManager Adapter,ViewHolder,ItemDecoration这些和RecycleView使用息息相关的类到底是什么关系 ItemDecoration这些和RecycleView使用息息相关的类到底是什么关系 onMeasure onLayout sMinWidthField = View.class.getDeclaredField("mMinWidth"); chooseSize setMeasuredDimension countOne ViewHolder Adapter,ViewHolder,ItemDecoration这些和RecycleView使用息息相关的类到底是什么关系 AdapterDataObserver { dispatchLayoutStep1 } dispatchLayoutStep2 getViewForPosition createViewHolder onLayout 1.RecyclerView是将绘制流程交给LayoutManager处理,如果没有设置不会测量子View。 2.绘制流程是区分正向绘制和倒置绘制。 3.绘制是先确定锚点,然后向上绘制,向下绘制,fill()至少会执行两次, 如果绘制完还有剩余空间,则会再执行一次fill()方法。 4

游戏开发中的多语言处理

偶尔善良 提交于 2020-08-07 04:24:05
前言 之前我写过一遍《数据表的使用》的文章,今天继续用文本处理为例讲解一下数据表导出工具的使用和多语言的使用方式。 编写数据表 我们先定义一个UI文本表,写好表头,添加几个测试用对本文,注意类型使用lang。 使用工具导出 打开build.bat文件,修改数据表和项目路径,双击运行,这时候如果不出问题你的项目下就会出现对应的数据和枚举文件 为了减少配置数据的大小,所有数据才用数组形式,所以生成了枚举文件,使用枚举索引对应的数值。 使用数据 添加数据到数据管理器,如果不是合并的表需要给一个key,我通常使用文件名。 所有的数据都归XlsxDataManager负责管理,不过这个XlsxDataManager可以分模块,如果游戏中数据始终不清理,可以使用一个就行。 2. 将语言文件添加到语言管理器。 语言文本管理器的处理方式与creator官方插件i18n处理方式一样,也可以处理文本替换。 3. 定义一个UI文本管理类 4. 定义UI文本组件 在界面中拖入一个label,挂上UI文本组件,填好我们在数据表中定义的ID 运行查看效果即可 如何切换语言? 执行另一个脚本,这个脚本每次都会添加zh中新添加的字段,不会替换已有字段。 如果不出问题,导出目录会多出一个语言文本,可以拿给负责翻译的人员。 为了测试自己简单翻译一下。 更改语言为en 运行看效果 结语 此套方案可以用于同时支持多种语言