Amp

Hacker News 简讯 2020-06-29

烈酒焚心 提交于 2020-08-07 12:15:55
最后更新时间: 2020-06-29 22:45 Klutz Press: books built for learning stuff - (charlieharrington.com) 克鲁茨出版社:专为学习而造的书 得分:72 / 评论:16 Arduino FIDO2 Authenticator - (ovcharov.me) Arduino FIDO2验证器 得分:95 / 评论:30 Megadesk - (tindie.com) 巨型办公桌 得分:69 / 评论:34 Neurons that fire together, wire together Ok, but how? - (dissociativediaries.com) 神经元一起放电,连接在一起。好吧,但是怎么做呢? 得分:62 / 评论:22 Windows98 Running in the Browser - (copy.sh) 浏览器中运行的窗口98 得分:341 / 评论:184 Textures.js is a JavaScript library for creating SVG patterns - (riccardoscalco.it) js是一个创建SVG模式的JavaScript库 得分:397 / 评论:32 Console, the vital tool that Apple

ET·ci —持续集成验证平台

北慕城南 提交于 2020-08-07 09:58:38
ET·ci 提供了编译-测试-发布解决方案,包括:自动提取配置库代码进行自动构建, 自动调度静态测试工具(如 QAC)进行静态测试,自动调度单元测试工具(如 Tessy)开展动态测试,自动调度 HIL 自动化测试系统等。使得开发、测试团队在软件开发、测试和交付生命周期中对研发过程进行可视化管理,帮助软件开发组、测试组轻松、高效地完成复杂的软件项目,缩短软件的整体测试周期和研发周期。ET·ci可应用于嵌入式软件测试自动调度,也是持续集成(continuous integration)解决方案的重要组成部分。 产品介绍 平台组成 典型的全自动软件测试调度平台主要由基础服务与框架模块、管理与配置模块、与基础服务交互的模块、配置管理工具集成模块、编译工具集成模块、静态测试工具集成模块、软件运行时间评估工具集成模块、单元/集成测试工具集成模块(可以扩充其他自动化测试工具,如HIL自动测试)等。 • 基础服务与框架模块 ♦ 定时获取配置库上稳定版本代码以及测试用例,自动进行测试 ♦ 监视配置库代码库/用例库,识别变更自动进行测试 ♦ 根据一键输入进行自动测试 ♦ 测试流程自动化执行及分析 ♦ 执行监控和过程数据抓取及生成报告并发送信息给相关授权人 • 管理与配置模块 ♦ 该模块一般包括项目管理、环境配置和日志管理 • 各集成模块 ♦ 配置管理工具集成 ♦ 编译工具集成 ♦ 静态测试工具集成 ♦

C++ 九阴真经之任意值

生来就可爱ヽ(ⅴ<●) 提交于 2020-08-07 09:53:36
any是一个可用于任何类型单个值的类型安全的容器,目前已收录到C++17标准库,但对于一些历史 项目,可能并没有使用最新编译器,那么可以自己简单的实现。 代码实现: #include <assert.h> #include <typeinfo> #include <string> class AnyVar { public: //保存真正数据的接口类 class placeholder { public: virtual ~placeholder() { } public: virtual const std::type_info & type() const = 0; virtual placeholder * clone() const = 0; }; //真正保存和获取数据的类。 template<typename ValueType> class holder : public placeholder { public: holder(const ValueType & value) : held(value) { } public: virtual const std::type_info & type() const { return typeid(ValueType); } virtual placeholder * clone() const { return

vue-treeselect 的使用

纵然是瞬间 提交于 2020-08-07 06:43:57
1、安装 npm install --save @riophae/vue-treeselect 然后在页面中引入 // import the component import Treeselect from '@riophae/vue-treeselect' // import the styles import '@riophae/vue-treeselect/dist/vue-treeselect.css' 注册组件 components: { Treeselect } 使用 < treeselect v-model = " value " :multiple = " true " :options = " options " /> 完整代码 < template > < div id = " app " > < treeselect v-model = " value " :multiple = " true " :options = " options " /> </ div > </ template > < script > // import the component import Treeselect from '@riophae/vue-treeselect' // import the styles import '@riophae/vue

使用HashSet 为什么要重写hashcode()和equals() 方法

Deadly 提交于 2020-08-07 04:23:25
使用HashSet 为什么要重写hashcode()和equals() 方法 Object.hashCode() 和 equals() 方法的用途 hashCode()方法和equals()方法的作用其实一样,在Java里都是用来对比两个对象是否相等一致。 hashcode 其实是对象物理地址返回的整数值,equals() 方法默认比较的就是两个对象的地址是否相同;所以equals() 相等的两个对象,hashCode 一定相同; 下边从两个角度介绍了他们的区别:一个是性能,一个是可靠性。他们之间的主要区别也基本体现在这里。 1、equals()既然已经能实现对比的功能了,为什么还要hashCode()呢? 因为重写的equals()里一般比较的比较全面比较复杂,这样效率就比较低,而利用hashCode()进行对比,则只要生成一个hash值进行比较就可以了,效率很高。 2、hashCode()既然效率这么高为什么还要equals()呢? 因为hashCode()并不是完全可靠,有时候不同的对象他们生成的hashcode也会一样(生成hash值得公式可能存在的问题),所以hashCode()只能说是大部分时候可靠,并不是绝对可靠,所以我们可以得出(PS:以下两条结论是重点,很多人面试的时候都说不出来): equals()相等的两个对象他们的hashCode()肯定相等

快速上手系列--Flutter应用开发模板

核能气质少年 提交于 2020-08-07 04:21:55
> Flutter空壳模板工程,已搭建基础框架,实现国际化、主题换肤、登录注册等功能,可在此基础上简单修改实现自己的应用功能。 项目地址 https://github.com/xuexiangjys/flutter_template , 喜欢的话就点个赞,star一下吧~ 演示效果 运行 查看一下版本号是否正确 flutter --version 运行以下命令查看是否需要安装其它依赖项来完成安装 flutter doctor 运行启动您的应用 flutter packages get flutter run 项目集成介绍 > 本项目精选了目前Flutter最实用的几个库,可大大提高开发的效率。 cached_network_image (网络缓存图片) dio (非常好用的网络请求库) event_bus (事件工具) fluro (页面路由神器) flutter_easyrefresh (刷新组件) flutter_webview_plugin (网页加载) flutter_spinkit (loading加载动画) flutter_swiper (轮播图组件) flutter_xupdate (应用版本更新) oktoast path_provider (路径) package_info (应用包信息) permission_handler 权限申请 provider

SpringCloud:微服务 Docker 化之基础环境

谁说胖子不能爱 提交于 2020-08-07 04:21:41
1. 容器化 Docker 的横空出世,给了容器技术带来了质的飞跃,Docker 标准化了服务的基础设施,统一了应用的打包分发,部署以及操作系统相关类库等,解决了测试生产部署时环境差异的问题。对于运维来讲,由于镜像的不可变性,更容易进行服务部署和回滚操作。利用各种第三方容器管理平台,实现一键部署、动态伸缩等操作变的轻而易举。 2. 基础镜像选择 在操作系统的选择上,可选择传统的 CentOS 、 Ubuntu 或者更为轻量化的 Alpine 。比如 CentOS 或者 Ubuntu 的镜像都在 100MB 以上,压缩后也都有大几十 MB ,而轻量化的 Alpine 3.10 版本镜像大小约为 5.58MB ,而它压缩后更是仅有 2MB 大小左右。 Alpine 操作系统是一个面向安全的轻型 Linux 发行版。它不同于通常 Linux 发行版,Alpine 采用了 musl libc 和 busybox 以减小系统的体积和运行时资源消耗,但功能上比 busybox 又完善的多,因此得到开源社区越来越多的青睐。在保持瘦身的同时,Alpine 还提供了自己的包管理工具 apk 。 关于基础镜像的选择,一个是考虑镜像的大小,另一个是只提供最小的依赖包。关于第二点,不同的服务所需要的依赖包是不同的,这里不再展开讨论,如果仅从第一点考虑的话, Alpine 肯定是首选,镜像越小,远程推拉越快

【昇腾】ModelArts与Atlas 200 DK云端协同开发——行人检测Demo(完整版)

允我心安 提交于 2020-08-07 04:18:45
摘要: 本文主要为大家展示如何基于ModelArts与Atlas 200 DK 端云协同开发的行人检测Demo实现过程。 基于开源数据集,使用ModelArts训练行人检测模型,在本地MindStudio完成模型转换,最终部署到Atlas 200 DK,从数据集到最终部署的端到端开发实践技能。开发技能的流程如图所示: 图片来自博客五讲四美好少年 环境准备: 基于Linux Ubuntu 16.04.3 LTS的虚拟机 Atlas 200 DK 前情提要: 行人检测使用ModelArts的yolo3_resnet18算法,此算法有预置算法和AI市场的版本,共三种,应该都可以用,这里使用的是预置算法版本。 模型训练(可选): 数据集使用的是VOC2007中的Person类别,使用ModelArts创建数据集,并筛选出Person部分,因在OBS中,不太方便下载下来(根据下载文件个数要付费,省点钱吧),可根据自己的数据集训练,注意数据集格式要为VOC2007的格式,即图片 + .xml标注,详情可参见ModelArts关于数据集部分文档。从数据及创建到整体训练最终得到.pb模型, 请参见博客相关指导 。 部署: 完整的Demo放在了百度网盘中,下载链接如下,下载完成后,上传到Atlas 200 DK 上执行运行main.py即可。 链接: https:// pan.baidu.com/s

开源项目的编译优化实践

故事扮演 提交于 2020-08-07 04:04:22
Zilliz 公司以 “重新定义数据科学” (Reinvent Data Science)为愿景,专注于研发利用新一代异构计算的开源数据科学软件。随着各项目的蓬勃发展,我们对于持续集成、持续交付、持续部署(CI/CD)都提出了更高的要求。本文是 CI/CD 系列的开篇,重点介绍持续集成的编译优化实践。 ​ | 问题与挑战 在编译构建过程中我们遇到以下几个问题: 1) 编译时间较长 项目每天都要完成上百次的代码集成,面对几十万行的代码量,开发人员进行小的 feature 改动都有可能会导致工程的全量编译,需要花费超过一个小时或者更长时间,显然让人难以接受。 2) 编译环境复杂 项目代码在不同的操作系统(CentOS、Ubuntu 等)、底层依赖库(GCC、LLVM、CUDA 等)、硬件架构等环境下进行编译,并且各编译环境下生成的编译产物都很有可能无法在其他平台下使用。 3) 项目依赖关系复杂 当前项目编译所涉及的各功能组件依赖以及第三方依赖不下三四十个,项目发展时常带来依赖关系的变动,难免会遇到依赖冲突问题。依赖之间的版本控制过于复杂,更新依赖版本容易导致影响其他组件业务。 4) 第三方依赖下载缓慢或无法下载 网络延迟或者第三方依赖仓库不稳定等问题所导致资源下载缓慢或访问失败,严重影响代码集成构建。 | 主要思路 对项目的依赖关系进行解耦。将依赖关系复杂的组件进行拆分

Linux centOS下安装FFmpeg

一个人想着一个人 提交于 2020-08-07 03:15:13
0.前提准备:使用yum安装编译工具 gcc cc cl yum -y install gcc cc cl 1.安装ffmpeg时需要提前安装yasm插件 1)下载 wget http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz 2)解压 tar -xvf yasm-1.3.0.tar.gz 3)进入解压后的文件夹路径下,执行安装 cd yasm-1.3.0/ ./configure && make && make install 2.安装FFmpeg 1)下载 wget http://www.ffmpeg.org/releases/ffmpeg-3.4.tar.gz 2)解压 tar -xvf ffmpeg-3.4.tar.gz 3)进入解压后的文件夹路径下,执行安装 cd ffmpeg-3.4/ ./configure && make && make install 3.查看安装结果 ffmpeg -version 出现如下类似结果,则安装OK 来源: oschina 链接: https://my.oschina.net/u/554046/blog/4280523