【学习参考】 JavaFx+openCv项目代码参考官网教程点击跳转 JavaFx项目部署参考点击跳转 【问题解决】 以上是学习的参考,实际操作部署后,运行exe文件会出现两个错误弹窗: Error invoking method! Failed to launch jvm! .exe程序无法执行。
根据网上的找的半自动解决方法【直接执行jar包看异常】,出现以下异常内容。
java.lang.reflect.InvocationTargetException <省略部分异常> Caused by: java.lang.UnsatisfiedLinkError: no opencv_java310 in java.library.path at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1867) at java.lang.Runtime.loadLibrary0(Runtime.java:870) at java.lang.System.loadLibrary(System.java:1122) at application.Main.main(Unknown Source) ... 11 more Exception running application application.Main 然后根据java.lang.UnsatisfiedLinkError: no opencv_java310 in java.library.path继续查找问题,看了多个解决方法后,明白问题的来源是程序中System.loadLibrary(Core.NATIVE_LIBRARY_NAME);加载不到opencv_java310.dll,而我用eclipse调试时因为按照教程对该参数进行设置过了,所以没有报错,但是部署的文件并不能获取到该参数,因此异常。所以对该加载opencv_java310.dll程序进行修改即可。修改如下:(两种方法,选其一即可) 相对路径方法
第一步: System.loadLibrary(Core.NATIVE_LIBRARY_NAME); 修改为: String relativelyPath=System.getProperty("user.dir"); System.load(relativelyPath+"\\opencv_java310.dll"); 第二步: 部署安装,但还是会报错 第三步: 找到部署的文件安装位置,默认C:\Users\[用户名]\AppData\Local\[项目名],然后打开其下的app文件夹,将opencv_java310.dll拷贝到这里。 执行上层文件夹中的exe文件即可正常运行,无报错。 绝对路径方法:
System.loadLibrary(Core.NATIVE_LIBRARY_NAME); 修改为: System.load("E:\\opencv\\build\\java\\x64\\opencv_java310.dll"); 以上路径根据你的opencv_java310.dll实际位置修改。 重新打包部署,然后执行无报错。
1.描述 在mac的linux虚拟机上安装了ubuntu16 服务器版本,准备在上面装 nginx php(larvel框架)学习一下,由于 sudo apt install 命令安装的mysql数据库缺失了部分内容,在安装php的pdo扩展时候各种小问题,所以决定重新安装mysql数据库。 2.过程 刚开始下载了一个5.7.18.tar.gz的源码包,安装过程提示需要安装boost1.59版本,不只是和谐的原因还是什么情况,下载的过程太慢了,每次到百分之50左右 就提示timeout,退出了。 果断丢弃之。 重新下载了一个5.6版本的mysql,直接tar xvzf ./confgiure(路径配置为 /usr/local/mysql) .make make install 3.问题 安装完事之后,启动mysql.service start,一直提示 the server quit without updating pid file 这个错误,果断打开蓝灯,谷歌一把,在stackflow上面找打了几个回答,都没有解决我的问题,但大概知道了是由于文件权限导致的混乱,而不能启动。通过多次启动失败,观察 data目录下的.err文件(不同用户的应该不同),观察各种错误,发现我的这个单当用户(XXX)的权限不够,刚开始冲动了一把,把网上说道的那些文件夹都 chown XXX:XXX chmod 777 了,关键问题是my.cnf 这个文件一定要写好,在[mysqld] 下面的 譬如 datadir,basedir,tmpdir,port 这几个关键的信息一定要填好路径,根据 .err文件提示的内容 可以发现这些错误。 4.总结 快睡觉了。噼里啪啦的写了一堆,记录下这个晚上两个多小时的查找问题的过程,希望以后不要犯下同样的错误,根本还是对Linux文件系统的权限分类(所有者,同组者,不同组者的具体权限不了解),以后得多多关注,接下来准备详细写一篇文章介绍这个。
描述:向github仓库推送时(Git push originmaster),出现如下错误:
fatal: 当前分支 master 没有对应的上游分支。
为推送当前分支并建立与远程上游的跟踪,使用
git push –set-upstream origin master
error: 无法推送一些引用到 ‘https://github.com/yourname/youname.github.io.git’
提示:更新被拒绝,因为远程版本库包含您本地尚不存在的提交。这通常是因为另外
提示:一个版本库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更
提示:(如 ‘git pull…’)。
提示:详见 ‘git push — help’ 中的 ‘Note about fast-forwards’小节。
解决方案:
git push -u origin +master
原文地址:http://blog.sina.com.cn/s/blog_677966330102vlfk.html
error: 无法推送一些引用到 ‘https://github.com/yourname/youname.github.io.git’
提示:更新被拒绝,因为远程版本库包含您本地尚不存在的提交。这通常是因为另外
提示:一个版本库已向该引用进行了推送。再次推送前,您可能需要先整合远程变更
提示:(如 ‘git pull…’)。
提示:详见 ‘git push — help’ 中的 ‘Note about fast-forwards’小节。
解决方案:
git push -u origin +master
原文地址:http://blog.sina.com.cn/s/blog_677966330102vlfk.html
原文链接:
https://yq.aliyun.com/articles/112248 FBI在过去几年成功的利用Tor浏览器的弱点去匿名了许多Tor用户的身份,为了挫败执法机构的努力和加强隐私保护,Tor项目正与安全研究人员合作开发加固版的Tor浏览器。安全研究人员正在测试名为Selfrando(PDF) 的技术防止浏览器漏洞被利用。Firefox和其它主流浏览器都使用标准的随机内存空间地址(ASLR)技术去防止恶意程序利用浏览器漏洞,研究人员声称 Selfrando相比ASLR显著改进了安全,而且不需要修改任何代码就能直接应用于Tor浏览器。研究人员和Tor项目正在测试一个加固版本的Tor 浏览器。他们的论文将在7月德国召开的隐私增强技术研讨会上展示。 文章转载自 开源中国社区[http://www.oschina.net]
实际上basemap这个概念并不只在arcgis中才有,在Python中有一个matplotlib basemap toolkit(https://pypi.python.org/pypi/basemap),是用来实现地理信息可视化的。其中,matplotlib是Python常用的数据绘制包,basemap是matplotlib的一个子包,用来进行地图绘制。本文所指的basemap是指esri提供的基础底图图层。
正式使用basemap是在前一阵做webgis开发的时候,需要在自己的矢量图层下面加一个底图图层,发现网上的相关文档不多,所以整理了一下帮助文档和demo,分享给大家。
首先,看一下arcgis帮助文档中对GIS basemap的介绍(http://resources.arcgis.com/zh-cn/help/main/10.1/index.html#/na/00s500000017000000/),因为重点介绍arcgis API,所以关于arcmap的操作方法和步骤不再赘述,只是简单介绍一下基础底图的概念:
底图图层属于一类地图图层,提供了一个可显示动态操作信息的框架。底图显示性能非常强大。由于底图图层相对稳定,不常发生变化,因此其显示只需计算一次,然后便可以多次重复使用。首次以特定的地图比例访问某个区域时,会对底图图层的显示进行计算。以后再以此地图比例访问该区域时,可调出该显示。众多 ArcMap 应用程序中都包括可用于显示和使用操作性信息、观测值和从分析模型中获取的信息的底图。底图用于位置参考,并为用户提供叠加或聚合业务图层、执行任务以及可视化地理信息的框架。底图是执行所有后续操作和地图制图的基础,它为地理信息的使用提供了环境和框架。底图相对稳定,并且在典型设置下,并不需要经常更新。此外,底图常常可在多种地图比例下使用。在各种地图比例范围内,底图都可以描绘出对应的内容。
接下来,重点介绍一下arcgis API for JS中esri提供的已有的17种basemap(包括”satellite”,”hybrid”,”streets”,”topo”,”osm”和”national-geographic”等等),包括代码和示例。
在下载的arcgis_js_api包中有一个basemaps.js文件(路径为arcgis_js_api\3.17\esri),里面定义了esri提供的全部的basemap,下面贴出了这个js文件中的详细代码:
1 // All material copyright ESRI, All Rights Reserved, unless otherwise specified. 2 // See http://js.arcgis.com/3.17/esri/copyright.txt for details. 3 //>>built 4 define("esri/basemaps", ["require", "dojo/has", "./kernel", "dojo/i18n!./nls/jsapi"], function(a, c, d, b) { 5 a = { 6 streets: { 7 title: b.basemaps.streets, 8 thumbnailUrl: a.toUrl("./images/basemap/streets.jpg"), 9 itemId: "d8855ee4d3d74413babfb0f41203b168", 10 baseMapLayers: [{ 11 url: "http://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer" 12 } 13 ] 14 }, 15 satellite: { 16 title: b.
马上华为提前批开始了,吓得我赶紧上牛客网刷题,记录如下: 所有代码都在github
1.字符串最后一个单词的长度 一段英文字符串中最后一个单词的长度。 题目比较简单,做法有很多: 比如, 可以放到stringstream里面split,拿到最后一个单词 也可以从后往前数到第一个空格为止。
让我觉得麻烦是第一次做这种要自己写输入的题, C++用cin是遇到空格停止的,因此要用getline读入一行
#include #include using namespace std; int main() { string str; getline(cin,str); int i=str.size()-1; int count=0; while(str[i]!=' '&&i>=0) { ++count; --i; } cout<return 0; } 2.计算字符个数 输入一个字符串和一个字符,统计该字符在该字符串中出现的次数。 for循环比较即可,没什么好说的
#include #include using namespace std; int main(int argc,char **argv) { string str; char c; getline(cin,str); cin>>c; int count=0; for(int i=0;iif(tolower(str[i])==tolower(c)) ++count; } cout << count<return 0; } 3.明明的随机数 说是随机数,其实跟随机数没有半毛钱关系, 就是输入一串整数,整数去重,输出排好序的结果, C++使用std::sort、std::unique、vector::erase可以轻易做到
#include #include #include #include using namespace std; int main() { // input int n; while(cin>>n) { vector<int>v; v.
大家好,我是北京航空航天大学软件学院的王意如。这次非常幸运,在惠普梦工厂的众测活动中抽中了刚刚发布的暗影精灵3笔记本。 暗影精灵3注定是不平凡的一代产品。与前代低调圆润的外观不同,这款产品的基因里多了一些张扬的气息,多了几块锐利的棱角,多了一份王者的霸气。 A面 B面、C面 D面 可以看出,整体风格非常硬朗,配色风格是黑色作为底色,红色点缀。即使是平时不容易看到的D面,也经过了细致的设计。并且,D面进通风孔面积较大,风程短,整体散热效率不会太差。 我拿到的这个产品比较特殊,与市面上的配置略有不同。整体配置如下: CPU
i7 7700HQ
内存
DDR4 8G 2400MHz
显卡
GTX 1050
屏幕
120Hz IPS (72 NTSC色域)
SSD
128G NVMe
HDD
1TB
在我看来,暗影精灵3最大的亮点就是这一块屏幕。随着《守望先锋》在全世界的流行,120/144Hz的高刷新率屏幕的热度又一次提高了。目前,许多万元以上的价位都配备了高刷新率的屏幕,然而大多都是选择了TN屏。众所周知,TN屏的可视角度远不如IPS等广视角屏幕,色彩表现也难以令人满意。笔者手中有一块LG 24GM77的144Hz TN屏,初始色彩严重泛白,需要经过校色仪调色才有较好的表现。而暗影精灵3配备的是72NTSC色域的120Hz IPS屏,几乎是这个尺寸上综合表现最好的屏幕了,无论是玩游戏还是看电影,都非常舒适。 暗影精灵3的IPS屏,可视角度非常大,即使在侧面,色彩表现依旧很出色 普通的TN屏,在可视角度小,只要不是完全正对着,就会产生色差 暗影3的键盘灯也很有电竞特色。WASD区域配备了不同颜色的键帽和独立的键盘灯,凸显游戏本风格。 此外,这一款游戏本的键盘是26键无冲的,不会在游戏中遇到”卡键”等情况。 关于机器的游戏性能,我们先用3D Mark进行测试。 在Fire Strix场景中,此设备的整体得分为5502,GPU子项为6040,CPU子项为10403。 测试期间温度最高为CPU 81℃,GPU 80℃,在CPU负载较高的场景下,CPU仍能保持在3.4GHz(7700HQ的四核睿频最大值为3.4GHz),整体噪音也是比较小的。可以初步认定,这个模具的散热规模可以很好的驾驭住7700HQ和GTX1050。 在Time Spy场景中,此设备整体得分为1860,GPU子项为1703,CPU子项为3909。 测试期间温度最高为CPU 86℃,GPU 85℃,CPU频率依旧稳在了3.4GHz。可以感受到,在85℃时,风扇声音明显增大,而温度也被压在了86℃,从中可以看出EC策略就是在85℃时加大风扇转速,在测试中能保证频率不降,能完整发挥CPU的性能。 我们用《风暴英雄》、《守望先锋》对设备进行进一步测试。 《风暴英雄》是暴雪推出的一款MOBA游戏,节奏较快,比较考验玩家的意识和大局观,对操作的要求比DotA低一些。 这款游戏本搭载了Realtek的新产品:RTL8822BE无线网卡。这个网卡有与杀手网卡类似的技术,可以调整发包的优先级,让游戏的数据包优先通过,从而降低游戏的延迟。 这是游戏中的两张实时截图,可以看到,游戏的延迟都在10ms以内,一方面是我所处的地理位置比较优越(工信部直属高校,国家骨干网络组成部分,欢迎报考北京航空航天大学,嗯),另一方面就是这一张网卡的优秀表现,二者延迟之和仅有5~10ms,让无线网卡也能享受到低延迟的体验。 游戏中我开了中特效,截图如下: 相对于高特效,中特效能保留大部分的细节,同时能提供更流畅的游戏体验。使用FRAPS进行游戏的帧数统计,生成的帧数曲线如下: 可以看出,帧数大部分时候都在100-120fps的区间,偶尔震荡到90左右。 大部分的帧生成时间聚集在5-20ms之间。 《守望先锋》是目前世界上销量第3的PC游戏,让FPS游戏进入了一个全新的时代。 需要注意的是,守望先锋默认的帧率限制是60,需要手动调整为120。这里我们采用中特效,开启垂直同步、三重缓冲、减少缓冲来进行测试。 高刷新率的屏幕是FPS游戏的最佳搭档。以猎空为例,在”闪现”的时候,周围景色移动的非常快,这时候60Hz的刷新率就显得难以应对,因为帧之间的间隔过大,难以让大脑”脑补”出对应的动画。而在120Hz的屏幕中,帧的数量翻倍,整个动画过程就显得平滑而自然。同时,在120Hz的屏幕上,对手的移动路线也能比60Hz更快地传达到玩家的眼中,能带来得天独厚的优势。甚至有人说,换了高刷新率的显示器,命中率直接就提升了。当然我是不知道真假的,因为我刚开始玩守望的时候就已经用上高刷新率的屏幕了(逃 对游戏的帧率进行统计,可以看出,大部分时间的帧率都在100-120区间内,偶尔会跌落到80左右。 帧生成时间较为平滑,只有少数的帧生成时间超过20ms,整体的游戏体验是比较顺畅的。 可以看出,在中特效下,搭载1050的暗影精灵3能轻松驾驭《风暴英雄》和《守望先锋》这两款游戏。 暗影精灵3几乎提供了玩家所需的一切特性:强大的CPU和GPU、保证设备满血运行,而噪音又不大的散热系统、低延迟网卡、无冲键盘等。而高刷新率广色域广视角的屏幕,则是目前市场上独一无二的。毫无疑问,各方面都表现优异的暗影精灵3,是这一价位上的王者。
如何理解持续集成、持续交付、持续部署?
在学习精益思想的过程中接触到了持续部署这个概念,查了下资料还有持续集成与持续交付。 身为没有技术背景的产品人员,靠自己搜索信息深刻理解这三个概念实在过于痛苦(相反,产品人员对精益是很容易深刻理解且高度认同的,因为越来越明白再好的产品人员、再好的用研意识与方法都无法保证需求的正确性,前期过度的产品设计是浪费的),所以来知乎上求助一下技术达人有没有现成的总结。
如何分辨与理解这三个概念?
你所在的技术团队是否认同与实践推广?在实践推广的过程中总结出了什么心得?
这类概念是否有必要向产品同事、老板普及推广?在普及推广中有过什么事情发生?
说出来才知道对不对;知道不对才能改进;改进才能成长 集成是指软件个人研发的部分向软件整体部分交付,以便尽早发现个人开发部分的问题;
部署是代码尽快向可运行的开发/测试节交付,以便尽早测试;
交付是指研发尽快向客户交付,以便尽早发现生产环境中存在的问题。
如果说等到所有东西都完成了才向下个环节交付,导致所有的问题只能再最后才爆发出来,解决成本巨大甚至无法解决。
而所谓的持续,就是说每完成一个完整的部分,就向下个环节交付,发现问题可以马上调整。是的问题不会放大到其他部分和后面的环节。
这种做法的核心思想在于:既然事实上难以做到事先完全了解完整的、正确的需求,那么就干脆一小块一小块的做,并且加快交付的速度和频率,使得交付物尽早在下个环节得到验证。早发现问题早返工。
举个例子,你家装修厨房,其中一项是铺地砖,边角地砖要切割大小。如果一次全切割完再铺上去,发现尺寸有误的话浪费和返工时间就大了,不如切一块铺一块。这就是持续集成。
装修厨房有很多部分,每个部分都有检测手段,如地砖铺完了要测试漏水与否,线路铺完了要通电测试电路通顺,水管装好了也要测试冷水热水。如果全部装完了再测,出现问题可能会互相影响,比如电路不行可能要把地砖给挖开……。那么每完成一部分就测试,这是持续部署。
全部装修完了,你去验收,发现地砖颜色不合意,水池太小,灶台位置不对,返工吗?所以不如没完成一部分,你就去用一下试用验收,这就是持续交付。
——————–
补充:从敏捷思想中提出的这三个观点,还强调一件事:通过技术手段自动化这三个工作。加快交付速度。 最近看了一篇文章 The Product Managers’ Guide to Continuous Delivery and DevOps 文中对「持续集成(Continuous Integration)」、「持续交付(Continuous Delivery)」和「持续部署(Continuous Deployment)」这三个概念有很详细的解释。这里借用文中的插图,说一下我对这三个概念的理解。
持续集成
持续集成强调开发人员提交了新代码之后,立刻进行构建、(单元)测试。根据测试结果,我们可以确定新代码和原有代码能否正确地集成在一起。
持续交付
持续交付在持续集成的基础上,将集成后的代码部署到更贴近真实运行环境的「类生产环境」(
production-like environments)中。比如,我们完成单元测试后,可以把代码部署到连接数据库的 Staging 环境中更多的测试。如果代码没有问题,可以继续
手动部署到生产环境中。
持续部署
持续部署则是在持续交付的基础上,把部署到生产环境的过程自动化。
我个人觉得持续集成、持续交付、持续部署非常值得推广。开发过程中最怕集成时遇到问题导致返工,而持续集成、持续交付、持续部署恰恰可以早发现早解决,从而可以避免这个问题。 即代码的零库存管理,是精益生产的精~精~精~精髓。
代码越早push出去,用户能越早用到,快就是商业价值; 用户越早用到就越早反馈,团队越早得到反馈,好坏都是有价值的输入; 用户不反馈,说明我们做了用户不想要的东西(通过用例跟踪)或者marketing没做好,能帮助产品市场人员调整策略; 代码库存越是积压,就越得不到生产检验,积压越多,代码间交叉感染的概率越大,下个release的复杂度和风险越高; 代码库存越多,workflow的包袱越重,管理成本越大,说敏捷越可笑。 流水不腐,户枢不蠹。
职业生涯没有被要求过要区分这三个概念 … 其实应该是四个词:持续集成、持续部署、持续交付、持续发布。
咱们把这几个词拆解一下:
持续 (Continuous):不断的获取反馈,响应反馈。
集成 (Integration):编译、测试、打包;
部署 (Deployment):应用组件或基本设施的代码或配置变更在产品环境生效称为“部署”;
发布 (Release):具有业务影响的功能变化对最终用户可见称为“发布”。
交付 (Delivery):可以理解为从 Deployment 到 Release 之间的阶段,更多的强调的是一种能力。开发有能力频繁的部署,业务有能力随时发布。
Zcash零币挖矿教程Windows系统N卡
Zcash零币挖矿教程Windows系统N卡。最近Zcash零币由1600元一个币升价到3000元一个币。假如你想用电脑赚点钱,可以加入挖矿队列里面
准备一台有N卡的电脑,作者是6张N卡的1070显卡组成,大约有430*6 的算力一台。
1.先在Zcash零币交易网站注册一个账号,获得属于你的零币Zec地址。
点击https://bter.com/signup/359931这个链接注册。 2.注册之后,在刚才的网站点击“我的账号”,选择Zcash Zec,点击“充值”,
稍等一会儿,就会看到专属你的Zcash 钱包地址,t1开头的一串字母和数字。复制钱包的地址,用文本存储到电脑或者手机上面,以后用到。我的Zcash地址是t1UfxBS54canaAEAPLHP6EVNAPcTWdA8Yec ,假如你觉得这篇文章帮到你可以打款到这个地址。
windows系统下: x86适合32位操作系统。 x86-64适合64位操作系统。 1、 web-based installer 是需要通过联网完成安装的 2、 executable installer 是可执行文件(*.exe)方式安装 3、embeddable zip file 嵌入式版本,可以集成到其它应用中。