单机dnf正在连接服务器,win7系统dnf正在连接服务器的解决方法

我们在操作win7系统电脑的时候,常常会遇到win7系统dnf正在连接服务器的困惑吧,一些朋友看过网上零散的win7系统dnf正在连接服务器的处理方法,并没有完完全全明白win7系统dnf正在连接服务器是如何解决的,今天小编准备了简单的解决办法,只需要按照手动关闭游戏或者使用wegame腾讯游戏助手软件来快速强制关闭游戏,如下图所示,小编使用了wegame中自带的关闭游戏功能,在点击wegame右下角的 三 按钮,在弹出的选项中选择【关闭游戏】;关闭后点击 开始游戏即可正常进入游戏。出现这样的现象是由于当前win7系统电脑与dnf游戏服务器连接失败导致的,这个问题早在以往就会有发生,但是到了跨区合并游戏大区后问题又被进一步放大了。和DNF本身服务器问题有很大的关系。的顺序即可轻松解决,具体的win7系统dnf正在连接服务器教程就在下文,一起来看看吧! 解决方法一: 1、手动关闭游戏或者使用wegame腾讯游戏助手软件来快速强制关闭游戏,如下图所示,小编使用了wegame中自带的关闭游戏功能,在点击wegame右下角的 三 按钮,在弹出的选项中选择【关闭游戏】; 2、关闭后点击 开始游戏即可正常进入游戏。出现这样的现象是由于当前win7系统电脑与dnf游戏服务器连接失败导致的,这个问题早在以往就会有发生,但是到了跨区合并游戏大区后问题又被进一步放大了。和DNF本身服务器问题有很大的关系。 解决方法二: 1、任务栏右下角的网络图标,然后点击‘打开网络和共享中心’; 2、点击左边的‘更改适配器设置’,如图: 3、在适配器设置界面找到本地连接,在本地连接上单击右键,选择【属性】; 4、在属性界面,找到【internwet 协议版本4(TCP/IPV4)】双击打开或者点击【属性】按钮; 5、然后点【使用下面的dns服务器地址】,将首选dns服务器设置为 8.8.8.8 然后点击确定 按钮保存设置,当然并非一定要8.8.8.8,我们可以按自己合适的dns来进行设置,那么那个dns合适呢?我们可以使用360安全卫士中-- 功能大全 -- 网络优化 -- dns优选 来查看最合适自己当前网络的dns在进行设置即可!

正在连接聊天服务器...,Clojure中的可扩展聊天服务器.存在和消息到达的问题黑白重新连接...

我正在尝试在Clojure中构建可扩展的聊天服务器.我正在使用http-kit,compojure和redis pub / sub在不同节点之间进行通信(扇出方法).服务器将使用websockets连接黑白客户端-服务器,并回退到长时间轮询.单个用户可以具有多个连接,以与浏览器中每个选项卡的一个连接聊天,并且应该将消息传递给所有连接. 所以基本上,当用户连接时,我将通道存储在具有随机uuid的原子中 {:userid1 [{:socketuuid "random uuid#1 for uerid1" :socket "channel#1 for userid1"} {:socketuuid "random uuid#2" :socket "channel#2"}] :userid2 [{:socketuuid "random uuid#1 for userid2" :socket "channel#1 for userid2}]} 消息被发布到websockets和长轮询通道的通用路由,消息结构看起来像 {:from "userid1" :to "userid2" :message "message content"} 服务器在:from和:to用户ID中找到原子中的所有通道,并将消息发送到各个用户的连接通道,同时还在Redis服务器上发布消息,连接节点在其中查找存储在其节点中的通道拥有原子并将消息传递给各个用户. 因此,我遇到的问题是如何正确实现状态.基本上,当通道断开连接时,http-kit会向您发送状态,状态可以是“服务器关闭”或“客户端关闭”,而我可以处理服务器断开连接(客户端将自动重新连接),但是断开连接时我遇到了问题从客户端发生,例如.用户导航到另一个页面,几秒钟后将连接.当客户端断开连接时,如何确定用户已脱机.我也担心长轮询模式下的消息到达黑白会重新连接(我的长轮询超时是30秒). 另外,请为上述架构提出一个良好的呈现机制.谢谢. 如果您需要更多信息,请发表评论.谢谢 编辑#1: 您能推荐有关在聊天服务器中实现在线状态的良好教程/材料吗,我似乎什么也找不到. 我当前的解决方案->我目前正在维护一个特定用户ID的已连接通道的全局计数和最后连接的时间戳,当用户断开连接时,计数会减少,并且会实施10秒钟的超时,这将检查用户是否已重新连接(即上次连接的戳记的使用时间为10秒,计数仍然为零),如果不是,则认为用户已脱机,您是否会推荐此解决方案?如果不是,则建议您采取任何改进或更好的方法. 另外请注意,我正在使用http-kit中的timer / scheduled-task,这些超时是否会对性能产生重大影响?

绝地求生玩什么服务器最快,【真国服第一!《绝地求生》国服采用超性能服务器任何宽带都畅玩】...

原标题:【真国服第一!《绝地求生》国服采用超性能服务器任何宽带都畅玩】 昨晚《绝地求生》国服官博发文表示,《绝地求生》国服将采用超性能服务器,帮助玩家的体验更加快速稳定。同时国服还推出“全服跨运营商网络全互联”,只要是在国服,无论玩家是哪家运营商体验都基本相同。 原文: “要不是刚刚卡了一下,这局我绝对吃鸡!” 相信所有怀揣着“吃鸡”梦想,奋斗在《绝地求生》的鸡友们可能都有过同样的想法。 你是否对始终无法成功登录游戏抱有怨言?你是否已经受够了绝命1V1时的延迟暴涨?你又是否已经习惯了漫长的等待?《绝地求生》国服将会给你带来崭新的游戏体验,狗年吃鸡就在国服,速度快人一步! 首次使用超性能服务器 为了解决可能困扰过鸡友们的服务器连接不稳定情况, 《绝地求生》国服首次使用了超性能服务器,相比于以往的普通服务器,超性能服务器单台成本提升了两倍,但是为了给所有玩家呈现一个最稳定的游戏环境和带来最卓越的性能提升,一切都是值得的。 按照描述来说,现在咱们在steam上玩吃鸡所遇到的不知名卡顿和掉线会得到极大改善。 跨运营商网络全互联 什么?我再也不用XX运营商了,玩游戏卡死了?没关系,《绝地求生》国服不仅讲究速度,还讲究公平。我们首次推出了全服“跨运营商网络全互联”,只要你想在国服吃鸡,不管你使用的网络属于哪家运营商,统统一视同仁,游戏体验基本无差。 相对于英雄联盟虽然开通了全网战区但还在划分网通区和电信区的机制,国服吃鸡在这方面能够达到竞技游戏玩家最渴望的战区---拿第一就真的要国服第一!而不是国服电信第一或者网通第一。 首次开启下载不限速 估计不少玩家对每次游戏更新是又期待又纠结,期待的是希望更新能够带来更好的优化和新内容,却又纠结龟速的下载速度实在太耗费时间,有时候几十kb的下载速度甚至让我们觉得自己是不是上了个假网。 而现在,腾讯针对《绝地求生》国服首次开启了下载不限速功能。不限速!不限速!不限速!重要的事情说三遍。总结下来就是这样:只要你的网速有多快,你的下载游戏的速度就有多快,理论上,无下载速度上限。国服吃鸡,速度快人一步! 就是以前咱们被限速过~~ 好啦~关于国服服务器的爆料内容就先说到这,盒妹今后还将持续为大家带来国服相关的爆料内容,敬请期待!感谢大家对《绝地求生》国服的支持,祝大家大吉大利,天天吃鸡! 其实说这么多,大家心里想的那就是一个国服啥时候上线呢?可别消费粉丝热情了,草嗷呜~~~ 责任编辑:

地下城与勇士正在自动连接频道服务器,DNF爆满频道服务器连接失败解决方法分享...

DNF从3月24日更新后登陆游戏会自动选择上次最后登陆游戏的频道进入,不会再出现频道选择界面,当上次的频道爆满后,玩家就无法登陆进入游戏了,小编也遇到过这种情况,后来经过多方查找终于找到了解决的办法,下面小编就为大家分享。 解决方法: 1、最简单的办法 删除电脑中的以下文件:C:\Users\用户名\AppData\LocalLow\DNF,dnf.cfg(或者C:\Users\Administrator\AppData\LocalLow\DNF,dnf.cfg) 注意不同的系统可能文件的地址有所不同,可以直接在C盘搜索dnf.cfg文件。 删除以后就能重上游戏自己随机选一条线登陆了。打码的是qq号。 还顺带能把支援兵弄成这样的状态,方便一键出战的时候不用把大号也一起出战再归队了 2、进阶的办法 打开上面的dnf.cfg文件,搜索server 不过我也没弄懂有十个搜索结果的话,到底是哪个对应哪个qq,如果搜索server的结果比较多的话可以尝试第一个办法,那样的话还简单很多。 本地频道的代码根据区服不一样,所以我只能给个大概的办法确认 100000000E0000001E 例如此频道是代表14X的话,那么13X就是100000000D0000001D,15X就是100000000F0000001F 在标注的地方一起多加一位=频道往前+1,少一位=频道往后+1,算法是十六进制即是遇到例如3F,往上+1则是40 这个就不隐藏了,希望能帮到有需要的人。 DNF爆满频道服务器连接失败解决方法就介绍到这里,相信各位玩家们都有所了解了吧,喜欢本文的玩家可以关注本站,小编还会为大家带来更多好看好玩的游戏游戏攻略。

力扣102题、107题(二叉树、层次遍历、较难)

102.给你一个二叉树,请你返回其按 层序遍历 得到的节点值。 (即逐层地,从左到右访问所有节点)。 本来这是一个比较简单的题目,只需要通过一个队列就能到完成层次遍历了,但是题目非要你返回一个二维数组,同时还要记录层数跟每一层有多少个元素,这就是难点所在了。 这里需要用到另一个关于内存分配的函数realloc,用于调整返回的数组的大小。 realloc函数: 根据评论区题解写出以下代码,该题处理空间的分配的做法还是很有必要学习一下的。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ int** levelOrder(struct TreeNode* root, int* returnSize, int** returnColumnSizes){ int **res = NULL; //用于存储返回结果 int *columnSize = NULL; //用于存储每一层有多少个节点 struct TreeNode **queue = malloc(sizeof(struct TreeNode*) * 2000); struct TreeNode *pNode = NULL; int front = 0, rear = 0, pre_rear; *returnSize = 0; //用于记录层 int i = 0; //用于记录每一层有多少个节点 if (!

使用python编写一个简单的计算器

代码: 结果: 代码解析: def test(content): return content.isdigit() testCMD = root.register(test) e1 = Entry(frame,textvariable=n1,width=10,validate="key",\ validatecommand=(testCMD,'%P')).grid(row=0,column=0) e2 = Entry(frame,textvariable=n2,width=10,validate="key",\ validatecommand=(testCMD,'%P')).grid(row=0,column=2) 这一部分代码是为了让第一个和第二个输入框中只能输入数字,对于字母、汉字、特殊字符等 会进行判定不允许输入进输入框中 e3 = Entry(frame,textvariable=n3,width=10,state="readonly")\ .grid(row=0,column=4) 此行代码定义第三个输入框,但是其中的“ state="readonly" ”表示此输入框只允许进行读取和copy不允许对齐进行输入内容 def calc(): result = int(n1.get()) + int(n2.get()) n3.set(str(result)) 定义计算过程与结果并将其进行类型转换方便后面输出结果 要是想简单的将此加法计算器改为其他类型的计算器,只需要在此步骤更改齐运算方式即可 Button(frame,text="计算结果",command=calc).grid(row=1,column=2,padx=5,pady=5) Button(frame,text="退出",command=frame.quit).grid(row=1,column=4,padx=5,pady=5) 定义两个按钮:输出结果和退出 注释:代码中的row以及column分别代表行和列,适当的调整可以使程序更加的美观 如下图: 图中的(0,0)分别代表着(row=0,column=0)也就是第0行,第0列 同理(1,4)代表(row=1,column=4),也即是第1行,第4列 要注意在python中row以及column的起始值是0

计算机c盘满了怎么移到d盘去,Win10电脑c盘满了怎么转移到d盘?

许多用户在使用电脑的时候因为不良的使用习惯,经常将一些文件或者程序安装在电脑的C盘中,最终导致C盘爆满电脑卡顿。那么我们要怎么把C盘的文件转移D盘呢?下面小编就带着大家一起看看吧! 操作方法: 1、双击“这台电脑”打开,在这台电脑中我们就可以看到我的文档,我的视频,我的音乐等私人文件夹; 2、右键点击你想转移的文件夹,选择属性; 3、打开文件夹属性后,点击“位置”标签切换过去; 4、这里我们就可以看移动选项了,我们可以点击移动然后浏览到一个我们创建好的文件夹进行转移,当然如果你嫌麻烦的话,我们还可以直接将,路径如C:USERXXDocuments更改为如D:USERXXDocumentsXX为你的用户名,然后点击应用,这时会弹出一个问我们是否要建立文件夹的提示,我们选择是; 5、OK,这么我们就转移成功啦,再打开D盘看看,是不是多了一个User的文件夹呢,接下去我们分别以同样的方法把我的视频、音乐的文件夹都转移过去就可以了。 Win10文件夹的属性还有“位置”标签,使用它就能转移位置,另外,把文件转移到一个没有建立的文件夹,系统就会即时建立,很便捷。

【FDCAN】STM32G0B1+FDCAN+HAL库调试记录

文章目录 前言一、实验环境?二、CAN和FDCAN区别1.介绍2.FDCAN有哪些优点(个人角度): 三、CAN发送1.STM32CubeMX配置截图:2.用户需要自己添加的内容:3.调试结果: 四、CAN接受1.滤波器类型采用掩码方式:1)添加如下函数实现:2)调试结果: 总结 前言 本文是本人以STM32G0B1为平台,记录下调试总结,仅供参考,若有不对的地方,还劳烦指正。 一、实验环境? 1)MCU:STM32FG0B1VCT6 2)CAN工具:广成CAN总线分析仪双通道can转usb模块USBCAN调试解析工具can卡 3)CAN收发器:TCAN1042DRQ1 4)STM32CubeMX版本:V6.3.0 5)固件版本:STM32Cube FW_G0 V1.5.0 6)仿真器:ST-LINK V2 7)MDK: V5.30.0.0 二、CAN和FDCAN区别 1.介绍 CAN:1986 年德国电气商博世公司开发出面向汽车的CAN 通信协议. CAN_FD:随着人们对数据传输带宽要求的增加,传统的CAN总线由于带宽的限制难以满足这种增加的需求。此外为了缩小CAN网络(max. 1MBit/s)与FlexRay(max.10MBit/s)网络的带宽差距,2011年BOSCH公司推出了CAN FD 。 2.FDCAN有哪些优点(个人角度): 1)速度更快,最快可以达到10M,普遍采用5M。 2)一包数据长度最大支持64个字节,而普通CAN一包最大8个字节,通信效率大大提高。 3)CAN_FD全称是Flexible Data-Rate,意思就是帧报文中数据段波特率可变的特性,即仲裁段和数据控制段使用标准的通信波特率,而传输数据段时就会切换到更高的通信波特率。 三、CAN发送 1.STM32CubeMX配置截图: 1)Clock Divider:表示CAN时钟分频,STM32G0B1时钟最大支持64M,这里选择不分频。 2)Frame Format:这里选择经典模式,即把它当作普通CAN模式。 3)Mode:这里选择正常工作模式,此外还有回环模式。 4)Nominal Prescaler:表示仲裁段和数据控制段分频系数 5)Nominal Sync Jump Width:重新同步跳跃宽度。 6)Nominal Time Seg1和Nominal Time Seg2:和设置波特率有关,BAUD=Freq/Clock Divider/Prescaler/(Seg1+Seg2+1)=64M/1/8/(10+5+1)=500K 7)下面Data和上面类似。 8)Std Filters Nbr:标准帧滤波器数量。是配置CAN接受时候使用的滤波器数量,用了多少个就写多少个。 9)Ext Filters Nbr:扩展帧滤波器数量。 2.用户需要自己添加的内容: 1)在初始化的时候添加如下: if (HAL_FDCAN_Start(&hfdcan2) != HAL_OK) { Error_Handler(); } 2)在主循环中添加如下:

上海华为OD--JAVA面试总结

我是2021年6月21日收到华为OD的机试邀请,华为OD机试第一次做很难,我在2019年的时候第一次接触这个机试,三道题一题不会,要想通过,前期不去LeetCode上刷题那是不可能的,好在这次面试有个华为的人事全程对接,可能是od那边真的很缺人,他们急迫想招人进去,然后给了一份常考机试题的答案给我了,一百多道,我大概花了5天时间,全部敲了一遍,机考链接给下来,有7天有效期,如果准备准备不充分的千万不要尝试去做,没过有6个月的封禁期,实在是得不偿失。想去OD的同学下面这个链接的机试题务必请务必掌握都是高频考题: 华为OD机试高频考题 下面重点讲一下本次7轮面试的面试题以及注意点: 第一轮 机试 2021年6月27日 说明机试第一和第二题一般对应LeetCode上的中等题,第三题为困难模式,总分400分,通过180分,也即是2道中等题搞出来基本就过了 第一题: 查找众数及中位数 1.众数是指一组数据中出现次数量多的那个数,众数可以是多个 2.中位数是指把一组数据从小到大排列,最中间的那个数,如果这组数据的个数是奇数,那最中间那个就是中位数,如果这组数据的个数为偶数,那就把中间的两个数之和除以2,所得的结果就是中位数 3.查找整型数组中元素的众数并组成一个新的数组,求新数组的中位数 输入描述: 输入一个一维整型数组,数组大小取值范围 0<N<1000,数组中每个元素取值范围 0<E<1000 输出描述: 输出众数组成的新数组的中位数 示例1: 输入 10 11 21 19 21 17 21 16 21 18 15 输出 21 示例2: 输入 2 1 5 4 3 3 9 2 7 4 6 2 15 4 2 4 输出 3 示例3: 输入 5 1 5 3 5 2 5 5 7 6 7 3 7 11 7 55 7 9 98 9 17 9 15 9 9 1 39 输出 7 答案(测试用例通过100%),【注:最终得分=用例通过率*本题总分数】

历年计算机使用人数变化,历年高考人数和录取率统计-数据可视化

今天是高考第二天,我们来回顾一下从1977年恢复高考以来高考人数和录取率的情况。 从以下数据可以看出,1977-1980年刚恢复高考这几年,高考人数较多。1984年高考人数最少,1985-2001年高考人数从不到200万逐步增加到近500万,2002-2007年高考人数以每年多100万的人数增加,2008年达到最高峰,2009年稍微有所下降,2010-2018年人数变化不大,均为900多万,2019年又增至1000万以上。 从录取人数上看,是逐年增加的。从1977年录取人数只有27万,到2019年的814万,可以看出中国近几年培养出了大量的大学生。录取人数增加幅度基本上从新世纪以来增加迅猛,这样也让很多人有遍地是大学生的错觉。 从录取率看,也是逐年增加。从1977年录取比例4.7%,到2018年的81.13%,可见考大学是越来越容易了。 高考是人生的转折点,千千万万学子寒窗苦读就为了这两天。但高考不是终点,而是另一个开始,永远要保持对知识的渴望,对美好明天的向往。愿每个高考学子都能考上理想的大学!

中国近五年的计算机专业就业率,未来五年,我国最有发展前途的工科专业,毕业好就业,发展前途好...

还有几天时间高考成绩就要公布了,等到成绩公布之后,同学们就要着手准备填报志愿的事情。填报志愿也是一件非常重要的事情,影响着我们未来的就业前途与发展方向,因此在填报志愿之前一定要做足功课,对各个院校与专业的录取分数线,未来的就业前途都要进行详细的了解。这样才能防止我们在填报志愿时出差错。工科专业比起文科专业,毕业后就业面更广,而且正是我国缺乏的人才。只要在校期间把专业知识学好,毕业后是不愁就业的。今天就跟大家分享我国未来最有前景的工科专业有哪些? 1、计算机类专业 计算机专业的就业岗位很多,聚集了大量高端人才,每年的该专业的毕业率在90%以上。因为计算机学科交叉面非常多,覆盖了社会各行业,这就决定了该专业毕业后的就业领域非常广泛。受互联网的影响,我国大多数院校都开设了了计算机专业,因此造成计算机专业市场的人才增长迅速,不过对于计算机高端人才缺口却很大。所以如果学习该专业一定要把知识学好,这业后就很容易拿到高薪水,在我国一线城市该专业的毕业生基本都能拿到万元以上的薪资。 2.建筑学专业 随着我国城市化进程速度越来越快,对于建筑学的人才需求量较大,而该专业的学生毕业之后,基本上就是从事建筑设计行业,要具有一定的绘图技术。尤其是一些知名院校的毕业生,十分吃香,还没有毕业,就已经与企业签订了就业合同,而作为该专业的毕业生也愿意去与专业对口的单位就职。 3.人工智能专业 随着我国的社会发展,多数行业逐渐走向智能化。人工智能未来也将是一片蓝海,发展前景只会越来越好。再加上该方面的人才市场需求较大,如果有意向报考该专业学生,可以好好考虑。我们选择什么样的专业,不仅仅是看他当前是否热门,而是要看他在未来发展的潜力如何。人工智能专业因为现在还处在发展的初级阶段,本来还有十分大的发展潜力。 4.通信工程 随着计算机与互联网的广泛应用,推动了通信工程专业的发展。通信工程专业是电子工程的一个重要分支,涉及的领域较广,跨了电子与计算机行业。在近几年来该行业发展领域呈迅猛的增长趋势。毕业以后的就业率也很高。不过该专业设置的课程较多,知识点很复杂,想要学好并不容易,但是一旦学好毕业之后的前途就很光明。比如南京邮电大学,中国民航大学开设的通信工程专业都非常有实力。 在选择专业时不要看专业在现在是否热门,因为即使是非常热门的专业,但是等到我们大学4年毕业之后,那热门专业很可能就变成了冷门专业。所以我们在选择专业之前一定要对专业未来的发展进行研究,一定要选择呈上升趋势发展的行业。而不要选择在走下坡路的夕阳行业,对我们自身的发展非常不利。 举报/反馈

使用itext将HTML 生成PDF文件

1、使用itext将HTML模板生成PDF文件 HTML模板注意事项: 所有标签按语法正确闭合,否则会报错table用border设置表格如果下载到空白文件,看看整体XML的宽度width使用%来设置,itext解析% 2、项目需求 1.实现将html 内容(含中文) 生成pdf 2.将现有的png格式图片 合入 pdf 中的特定位置 3.将base64 编码的图腾 合入 pdf 中的特定位置 3、实现效果 4、实现功能 1.所需jar 包 <!-- https://mvnrepository.com/artifact/com.itextpdf/itextpdf --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itextpdf</artifactId> <version>5.5.11</version> </dependency> <!-- https://mvnrepository.com/artifact/com.itextpdf.tool/xmlworker --> <dependency> <groupId>com.itextpdf.tool</groupId> <artifactId>xmlworker</artifactId> <version>5.5.11</version> </dependency> <!-- https://mvnrepository.com/artifact/com.itextpdf/itext-asian --> <dependency> <groupId>com.itextpdf</groupId> <artifactId>itext-asian</artifactId> <version>5.2.0</version> </dependency> 2.代码功能实现 package com.sinosoft.cloudclaim.utils; import com.itextpdf.text.*; import com.itextpdf.text.pdf.BaseFont; import com.itextpdf.text.pdf.PdfWriter; import com.itextpdf.tool.xml.XMLWorkerHelper; import com.sinosoft.cloudclaim.investigation.utility.Base64; import java.io.ByteArrayInputStream; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.nio.charset.Charset; /** * @Description: * @author: YaoGX * @version: 1.

终端bash_profile配置不生效问题

MAC设置环境变量时, 配置的 bash_profile 没有生效,需要手动执行下面命令才生效。 source ~/.bash_profile 原因:zsh和bash有别, zsh模式不执行上述脚本,bash模式才执行。 zsh、bash 模式互相切换 切换bash chsh -s /bin/bash 切换zsh chsh -s /bin/zsh 区别:zsh完美兼容bash,并且有比bash更强大的功能,用起来也比bash更优雅,mac 自带 zsh,新款的默认使用后zsh。 解决: bash vim ~/.bashrc source ~/.bash_profile zsh vim ~/.zshrc source ~/.bash_profile

nacos启动报错 db.num is null【已解决】

文章目录 1、双击startup.cmd文件,启动nacos 一、问题db.num is null2、新建一个数据库nacos3、执行对应的sql语句4、修改配置文件 二、问题Unable to start embedded Tomcat5、修改cluster.conf配置文件6、再次启动7、登录 理论上启动nacos,只需要双击startup.cmd文件(win下),就可以直接启动,但是我在启动的过程中却发生了。本人下载的nacos版本为nacos-server-1.4.0。该篇博文为自己在安装过程中出现的异常以及自己的解决办法,特做简单总结记录 1、双击startup.cmd文件,启动nacos 一、问题db.num is null 2、新建一个数据库nacos 3、执行对应的sql语句 这些SQL包含我们nacos客户端使用到的一些数据库表,且含有登录nacos客户端所使用的用户名和密码(用户信息存在user表中) 4、修改配置文件 还是在在conf文件目录下,修改application.properties配置文件,将注释掉的数据库配置修改为我们本地数据的连接配置 二、问题Unable to start embedded Tomcat 5、修改cluster.conf配置文件 还是在conf文件目录下,将cluster.conf.example文件名后面的example删掉,且将文件内部的地址修改为我们的本机地址 6、再次启动 如果你想使用单机模式启动 在命令行输入该命令启动即可: startup.cmd -m standalone 7、登录 默认账号名和密码均为nacos

计算机出现蓝屏怎么解决,电脑出现蓝屏故障0x00000019怎么办?

原标题:电脑出现蓝屏故障0x00000019怎么办? 电脑开机出现蓝屏故障0x00000019怎么处理?电脑出现蓝屏,一般都会有提示错误代码或者出错的文件名等,最近就有用户跟小编反映,开机出现了蓝屏故障,提示错误代码0x00000019,应该这么解决呢?今天云骑士就来跟大家讲讲电脑开机出现蓝屏故障0x00000019怎么处理。 原因一:硬盘、数据线等硬件异常 解决方法: 1、按下组合键win+r打开运行,输入“EventVwr.msc”回车后打开事件查看器。 2、依次点击“Windows 日志”下的应用程序和系统,注意检查其中的系统日志和应用程序日志中标明错误的项。 3、然后重启电脑,按f8进入安全模式,选择最后一次正确的配置,回车即可。 原因二:磁盘驱动器在磁盘找不到特定的扇区或磁道所致 解决方法: 1、修复磁盘引导,打开云骑士桌面上的“修复系统引导”工具,点击“自动修复”,进行修复即可。 2、打开云骑士pe桌面上中的分区工具Diskgenius,点击“硬盘”,选择“坏道检测与修复”。 3、如果以上两种方法没有效果,可以尝试格式化分区,然后重新分区,重装系统来解决。 关于电脑蓝屏故障0x00000019怎么处理就跟大家介绍到这了,如果有遇到这个问题的朋友不妨试试云骑士介绍的办法哦,相信能够帮助到您的!返回搜狐,查看更多 责任编辑:

计算机点开一直压缩在屏幕下方,电脑屏幕显示被压缩了怎么变

屏幕显示模糊是各种显示器常见故障之一,其产生原因主要有三个方面:一是运输过程中或使用中受到震动而使FBT(行输出变压器)的聚焦电位器松动或移位,致使加到CRT中的聚焦电压变化(偏离工厂调试好的最佳电压值),造成屏幕模糊;二是使用环境湿度大,使CRT尾座板上聚焦引脚的放电环(半圆球)产生锈蚀,在CRT刚通电时出现模糊现象;三是CRT管内因制造工艺或CRT锥体玻壳内有杂物而使聚焦(focuse)极与加速极(G2)间产生静电积尘,形成极电阻而使屏幕出现严重的模糊现象。 怎样根据屏幕模糊的现象来判断是何种原因引起的呢? 首先从屏幕模糊的程度来看,若模糊现象较轻,仅仅是字符轮廓变粗,而字迹依然能识别,大多属第一种原因所引起;若字符大面积严重模糊,屏幕一片白色光晕,字符已无法辨认且调FBT上的聚焦电位器时屏幕亮度随之变化,则属第三种原因所为;如果CRT刚开机时模糊,随着时间的延长,屏幕字符越来越清晰,这通常为第二种原因所造成。 弄清了屏幕模糊的原因,如何根据故障现象来排除故障呢? 对于第一种情况,打开机盖,微调FBT中的聚焦(focuse)电位器即可排除故障。至于尾板上聚焦引脚放电环锈蚀的处理,一般使用无水酒精清洗放电环及尾座上各电极插头和插座,如放电环锈蚀严重时,可更换尾座部件。第三种原因引起的屏幕模糊的处理方法是:取下CRT尾座板,将CRT上高压帽中24KV高压用万用表笔线(最好使用绝缘性能好些的数字万用表)引到CRT聚焦板插座中,打开显示器交流电源,用一接地的表笔线对加速极(G2)插头瞬间放电2~3次(最好将CRT上G2插头用一外加保护套管短线引出来,对引出线进行对地瞬间放电作业)。 一般经过2~3次放电过程便能使聚焦(focuse)与加速极(G2)两电极之间的尘埃极电阻击穿。恢复原电路后,观察屏幕字符或图文显示的清晰程度,必要时适当调一下FBT上的聚焦电位器就能使模糊故障排除。这种方法人们常称“打Acking法”,操作中因涉及到高电压,应谨慎从事,切记保护人身和设备的安全。 需要说明的是,上述屏幕显示模糊故障,并不包括那些诸如加速极(G2)电压调整不当,亮度、对比度电位器调节位置不合适等引起的屏幕失调,看上去似乎有一层雾朦朦之感觉的情况在内。对于IBM 2248/G03、Envision/D350等显示器,用橡皮榔头对准CRT屏幕正中部位轻轻击打几次,有五成把握能排除这类显示器的模糊故障,这不失为修理显示器模糊故障捷径之路。 ◆◆ 评论读取中.... 请登录后再发表评论! ◆◆ 修改失败,请稍后尝试

spring.jackson.date-format设置对ObjectMapper无效的解决方案

通常,可以通过在application.properties文件中添加日期类型数据的格式和时区配置,可以实现全局时间格式化 #jackson相关配置 spring.jackson.date-format = yyyy-MM-dd HH:mm:ss #时区必须要设置 spring.jackson.time-zone= GMT+8 #ALWAYS的意思是即时属性为null,仍然也会输出这个key spring.jackson.default-property-inclusion=ALWAYS 这种方式,仅对webmvc起作用(失效的话是另一种情况,网友可自行搜索解决方案) 但是,有些情况下,会需要通过ObjectMapper的writeValueAsString直接进行对象的序列化。此时会发现以上的全局设置并不起作用,日期类型数据将序列化为时间戳。如果想格式化,则必须通过添加注解的方式: @Data public class GetSysDateResult { @JsonProperty(value = "SysDate") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date sysDate; } 这样显然不方便,也可能会造成系统中配置的混乱。 经过研究,我简单封装了一个工具类,可静态调用,且通过添加setXXX实现静态类支持@Value的方法实现对配置文件中设置的支持。同时,此方案不影响@JsonFormat设置。 希望对大家能有所帮助。 import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.ObjectMapper; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Component; import java.text.SimpleDateFormat; import java.util.TimeZone; @Component public final class JsonUtil { private static ObjectMapper mapper = new ObjectMapper(); // 获取配置中的日期格式并设置 @Value("${spring.jackson.date-format}") public void setPattern(String val) { SimpleDateFormat df = new SimpleDateFormat(val); mapper.

pandas之to_csv方法保存csv文件中出现乱码问题的解决办法

pandas之to_csv方法保存csv文件中出现乱码问题的解决办法 今天在用pandas库的to_csv方法将txt文件转化为csv文件时,发现打印结果正常,但是保存的csv文件中出现乱码,错误如下: data.to_csv(r'E:\读取文件.csv', encoding="utf-8") 错误原因就在于encoding="utf-8",将它改为encoding="utf_8_sig"就成功保存无乱码了,详情如下 示例代码: data.to_csv(r'E:\读取文件.csv', encoding="utf_8_sig")

ipad触摸测试软件,平板电脑屏幕灵敏度测试:iPad系列最出色

【搜狐数码消息】10月10日消息,在发布了有关手机屏幕灵敏度的测试结果之后,Agawi的研究人员最近就对平板电脑的触控灵敏度进行了一次测试。结果发现,苹果iPad和iPad mini是所有平板电脑当中屏幕灵敏度最高的,超过了Android平板以及微软Surface。 从Agawi公布的测试结果来看,iPad和Android设备之间在屏幕灵敏度上的差距非常大。那么两类设备之间的差距究竟来自何处?是各自平台先天上的区别?还是苹果的优化更到位?目前我们还不得而知。 让我们说回测试结果。可以看出,iPad mini的得分实际上要比全尺寸iPad更高。Nvidia Shield紧随其后,微软Surface的排名也不错。而Android平板总体表现不佳,最低应用响应时间都在100毫秒以上。 想要理解这些结果,我们需要去理解触控灵敏度,或者说是触摸到屏幕与屏幕响应之间的延迟。较早前的研究发现,100毫秒的延迟就能够被用户所察觉——比如用手写笔在屏幕上书写,你会看到笔记和你的笔锋之间存在着明显的延迟。在50毫秒之下,延迟依旧能够被察觉,但并不那么明显。而即使是10毫秒下,延迟还是可以被看出,但已经非常不明显了。只有在1毫秒的延迟下,人眼才不会察觉到延迟的存在。 所以说,目前的设备距离1毫秒的理想情况还相去甚远。此外,即便iPad mini和iPad变得越来越快,但屏幕延迟依旧要比iPhone 5的成绩(55毫秒)要高一些。(Eskimo)

unable to connect to 192.168.1.110:5555 解决办法

问题记录 测试想要adb wife连接Android设备时,经常碰到如下错误 unable to connect to 192.168.x.xxx:5555: cannot connect to 192.168.x.xxx:5555: 由于目标计算机积极拒绝,无法连接。 (10061) 通过网上查询找到了可行的办法,记录一下 注意几点 1.Android设备需要开启开发者模式,并且打开usb调试 2.Android设备需和电脑在同一个局域网内 3.adb tcpip 无线模块之后,需要拔出usb线(建议直接可以usb调试) 4.执行命令“adb tcpip 5555”可能会需要重新开启usb调试 5.断开wife操作:adb disconnect 解决办法 1.Android设备开启usb调试模式,并通过usb连接到电脑 2.在终端执行命令“adb tcpip 5555” 成功daemon not running; starting now at tcp:5037 daemon started successfully 3.继续执行adb connect 192.168.x.xxx(你的手机ip地址)成功connected to 192.168.x.xxx:5555 之后拔下usb调试线 4.可以检测一下是否连接成功:adb devices 成功List of devices attached 192.168.x.xxx:5555 device

C++实践之Qt学习(十一):键盘鼠标事件

文章目录 键盘事件鼠标事件 键盘事件 重写KeyPressEvent事件函数: virtual void keyPressEvent(QKeyEvent *event); void GameWnd::keyPressEvent(QKeyEvent *event) { qDebug() << event->key(); switch(event->key()) { case Qt::Key_Up: break; case Qt::Key_Down: break; case Qt::Key_Left: break; case Qt::Key_Right: break; } } 相对应的有keyReleaseEvent表示键盘松开事件。 鼠标事件 鼠标事件有:鼠标按下、鼠标移动、鼠标松开、双击、滚轮滚动。 重写相应的事件函数: void mousePressEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *event); void mouseReleaseEvent(QMouseEvent *event); void mouseDoubleClickEvent(QMouseEvent *event); void wheelEvent(QWheelEvent *event); 示例:鼠标按下事件: void GameWnd::mousePressEvent(QMouseEvent *event) { if(event->button() == Qt::LeftButton) { qDebug() << "左键" ; } else if(event->button() == Qt::RightButton) { qDebug() << "

C++实践之Qt学习(十):绘图

文章目录 重绘事件绘制基本图形绘制资源图像示例:滚动背景绘制 重绘事件 根据博客园这篇文章的介绍: 在Qt中,paintEvent方法是进行重绘的,只要出现以下几种情况,系统就会自动调用paintEvent方法。 a)当窗口部件第一次显示时,系统会自动产生一个绘图事件 b)重新调整窗口部件大小 c)当窗口部件被其他部件遮挡,然后又再次显示出来时,就会对隐藏的区域产生一个重绘事件 也可以通过调用QWidget::update()和QWidget::repaint()来产生一个绘图事件,其中repaint会强制产生一个即时的重绘事件,update会在Qt下一次处理事件时才会调用绘制事件,如果窗口部件在屏幕上是不可见的,则update和repaint什么都不会做。如果连续多次调用update方法,Qt会自动的将其压缩为一个单一的绘制事件,避免闪烁现象 因此,要实现绘图操作,就需要重写该函数,该函数不需要主动调用,也不需要关联到信号上,系统将会自动调用。 函数的原型: [virtual protected] void QWidget::paintEvent(QPaintEvent *event) 绘制基本图形 在绘图事件中,可以通过QPainter画家类进行绘制操作。并可以给画家设置画笔QPen、画刷QBrush。 void GameWnd::paintEvent(QPaintEvent *event) { QPainter painter(this); // 创建画家对象,并指定其绘图设备 QPen pen(QColor(255, 102, 102)); // 创建画笔,可以指定绘图的线条颜色 // 设置画笔宽度、风格 pen.setWidth(5); pen.setStyle(Qt::DashDotLine); // 绘制直线 painter.drawLine(0, 0, 100, 100); // 设置画家的画笔 painter.setPen(pen); // 绘制矩形 painter.drawRect(20, 20, 100, 80); QBrush brush(Qt::cyan); // 创建画刷,指定颜色,画刷的作用是绘制图形内部颜色 brush.setStyle(Qt::Dense3Pattern); // 设置风格 painter.setBrush(brush); // 绘制圆形 painter.drawEllipse(QPoint(100, 100), 50, 50); // 绘制文字 painter.drawText(10, 150, "

Jupyter Notebook使用

1.在Jupyter Notebook中,自动补全代码 首先安装一个第三方的包: pip install jupyter_contrib_nbextensions 然后执行: jupyter contrib nbextension install --user --skip-running-check 然后打开Jupyter Notebook,会发现菜单栏多了Nbextensions,点进去: Hinterland即是自动代码补全,打钩; 另外,Table of Contents是显示目录Notebook的目录。 2. 目录效果: 关于目录 在Markdown编辑模式下(在命令模式下,按m进入Markdown模式,按y进入代码模式), # 一级标题目录 ## 二级标题目录 ### 三级标题目录 Ctrl+Enter则自动生成标题 3.多行输出 from IPython.core.interactiveshell import InteractiveShell InteractiveShell.ast_node_interactivity = "all"

计算机专业surface pro,surface pro4家庭版和专业版的不同

1.Windows 7 Starter即Windows 7 简易版或初级版,它是功能最少的Windows 7 版本,可以加入家庭组,任务栏上有变化,有Jump List菜单,但没有Aero效果,仅限于上网本市场。 2.Windows 7 Home Basic Windows 7家庭普通版,也叫家庭基础版,Windows 7的家庭普通版主要针对中、低级的家庭计算机,所以Windows Aero功能也没有,仅限于新兴市场来发布。 3.Windows 7 Home Premium Windows 7家庭高级版,这个版本是针对家用主流计算机市场而开发的版本,它包含了各种Windows Aero功能、Windows Media Center媒体中心以及触控屏幕的控制功能,在美化效果上也较突出,因此这个版本得到大部分家庭用户的青睐。 4.Windows 7 Professional Windows 7专业版,这个版本主要是面向小企业用户和计算机爱好者,它不仅包含了家庭高级版的所有功能,同时还增加了包括远程桌面、服务器、加密的文件系统、展示模式、位置识别打印、软件限制方针以及Windows XP模式等在内的新功能。是目前用的最多的一个版本之一。 5.Windows 7 Enterprise Windows 7企业版,Windows 7 Enterprise提供一系列企业级增强功能,如内置或外置驱动器数据保护的BitLocker、锁定非授权软件运行的AppLocker、无缝连接基于Windows Server 2008 R2企业网络的DirectAccess,以及Windows Server 2008 R2网络缓存等。主要便用与企业和服务器相关的应用,用的人相对较少。 6.Windows 7 Ultimate Windows 7旗舰版,这个版本是授权给一般用户使用的高级Windows 7版本,它包括了Windows 7企业版的所有功能。是Windows 7 各版本中最为灵活、强大的一个版本,是目前用的最多的另一个版本之一。 取消 评论

jdk8_Stream流使用-映射

map()实现类型转换 接收一个函数作为方法参数,这个函数会被应用到集合中每一个元素上,并最终将其映射为一个新的元素 案例: 将List 转换List public class MapDemo { static class KeyValue { private Integer key; private String value; public KeyValue(Integer key, String value) { this.key = key; this.value = value; } @Override public String toString() { return "KeyValue{" + "key=" + key + ", value='" + value + '\'' + '}'; } } public static void main(String[] args) { List<Student> studentList = new ArrayList<>(); studentList.add(new Student(1, "张三", 23)); studentList.

jdk8_Stream流-自定义收集器

介绍 对于自定义收集器实现,需要对Collector接口中的方法进行实现 Collector接口需要三个参数。T:流中要收集的元素类型、A:累加器的类型、R:收集的结果类型 public interface Collector<T, A, R> { Supplier<A> supplier(); BiConsumer<A, T> accumulator(); BinaryOperator<A> combiner(); Function<A, R> finisher(); Set<Characteristics> characteristics(); } 需要实现Collector接口中的五个方法:supplier、accumulator、finisher、combiner、characteristics **supplier:**用于创建一个容器,在调用它时,需要创建一个空的累加器实例,供后续方法使用**accumulator:**基于supplier中创建的累加容器,进行累加操作**finisher:**当遍历完流后,在其内部完成最终转换,返回一个最终结果**combiner:**用于在并发情况下,将每个线程的容器进行合并**characteristics:**用于定义收集器行为,如是否可以并行或使用哪些优化。其本身是一个枚举,内部有三个值,分别为: **CONCURRENT:**表明收集器是并行的且只会存在一个中间容器**UNORDERED:**表明结果不受流中顺序影响,收集是无序的**IDENTITY_FINISH:**表明累积器的结果将会直接作为归约的最终结果,跳过finisher()、 自定义实现 返回及格的学生信息 自定义器实现 public class MyCollector implements Collector<Student, List<Student>, List<Student>> { @Override public Supplier<List<Student>> supplier() { return ArrayList::new; } @Override public BiConsumer<List<Student>, Student> accumulator() { return ((students, student) -> { if (student.isPass()) { students.add(student); } }); } @Override public BinaryOperator<List<Student>> combiner() { return null; } @Override public Function<List<Student>, List<Student>> finisher() { return Function.

jdk8_Stream流使用-收集器

简介 通过使用收集器,可以让代码更加方便的进行简化与重用。其内部主要核心是通过Collectors完成更加复杂的计算转换,从而获取到最终结果。并且Collectors内部提供了非常多的常用静态方法,直接拿来就可以了。比方说:toList Collectors常用方法使用 通过counting()统计集合总数 public class CollectorsDemo { public static void main(String[] args) { List<Student> studentList = new ArrayList<>(); studentList.add(new Student("张三", 23)); studentList.add(new Student("李四", 20)); studentList.add(new Student("王五", 19)); studentList.add(new Student("小明", 21)); studentList.add(new Student("小红", 24)); Long collect = studentList.stream().collect(Collectors.counting()); System.out.println(collect); //等同于 long count = studentList.stream().count(); System.out.println(count); } } Collectors.counting 中内部做的调用reducing()进行数据汇总 public static <T> Collector<T, ?, Long> counting() { return reducing(0L, e -> 1L, Long::sum); } 通过maxBy()与minBy()获取最大值最小值 public class CollectorsDemo { public static void main(String[] args) { List<Student> studentList = new ArrayList<>(); studentList.

如何能让一维数组转换成二维数组

分析 接口给我们的数据是一个一维数组[{}, {}, {},{},{},{},{},{}],为了方便轮播图使用,我们把4件商品分成一组,一组是一个单位来填充轮播的一屏。 二维数组转换成一维数组([1,1],[2,2],[3,3] 转换成 [1, 1, 2, 2, 3, 3]) slice()方法 // 得到需要的数据: 把一维数组转成二位数组 // 转换前:[1,2,3,4,5,6,7,8] // 取size=4; 4个一组 // 转换后:[[1,2,3,4], [5,6,7,8]] findRelGoods(id).then(data => { const size = 4 // 每页4条 const total = Math.ceil(data.result.length / size) // 总页数 //Math.ceil向上取整 for (let i = 0; i < total; i++) { const t = data.result.slice(i * size, (i + 1) * size) sliders.value.push(t) } }) 一维数组转换成二维数组 apply()方法 let arr =[[1,1],[2,2],[3,3]]; let onearr=[].

GitHub Pages + Hexo搭建个人博客网站,史上最全教程

文章目录 一、准备工作1. GitHub账号2. 安装Git3. 安装NodeJS 二、创建仓库三、安装Hexo四、更换主题1. NexT 主题2. Fluid主题 五、创建文章六、个性化页面展示1. 浏览器tab页名称2. 博客标题3. 主页正中间的文字 七、添加阅读量统计1. 申请LeanCloud账号并创建应用2. 修改Fluid配置单篇文章阅读量计数页面底部展示网站的 PV、UV 统计数 八、添加评论功能九、发布到GitHub Pages方式一方式二 十、发布到自己服务器,Nginx代理十一、最终效果展示 本文介绍如何使用GitHub Pages + Hexo搭建个人博客网站,完全免费,所有内容本人亲测,绝对可用。 一、准备工作 1. GitHub账号 需要有一个GitHub账号,没有的话到 官网 申请一个。 注册很简单,不懂的话可以参考 GitHub申请账号 2. 安装Git 在自己电脑上安装好Git,hexo部署到GitHub时要用。 网上找篇教程或者参考 Git安装(Windows) 3. 安装NodeJS 在自己电脑上安装好NodeJS,Hexo是基于NodeJS编写的,所以需要安装NodeJS和npm工具。 网上找篇教程或者参考 NodeJS安装及配置(Windows) 二、创建仓库 在GitHub上创建一个新的代码仓库用于保存我们的网页。 点击Your repositories,进入仓库页面。 点击New按钮,进入仓库创建页面。 填写仓库名,格式必须为<用户名>.github.io,然后点击Create repository。 点击creating a new file创建一个新文件,作为我们网站的主页。 新文件的名字必须为index.html,内容先随便写一个简单的,内容示例如下,填写之后点击Commit new file提交。 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>yaorongke</title> </head> <body> <h1>yaorongke的个人主页</h1> <h1>Hello ~</h1> </body> </html> GitHub Pages中找到我们主页的地址为 https://yaorongke.

spring security的认证和授权流程

一.springsecurity的认证流程 1.1 常用过滤器 SpringSecurity 采用的是责任链的设计模式,它有一条很长的过滤器链。现在对这条过滤器链的 15 个过滤器进行说明: WebAsyncManagerIntegrationFilter 将 Security 上下文与 Spring Web 中用于 处理异步请求映射的 WebAsyncManager 进行集成。 SecurityContextPersistenceFilter 在每次请求处理之前将该请求相关的安全上 下文信息加载到 SecurityContextHolder 中,然后在该次请求处理完成之后,将 SecurityContextHolder 中关于这次请求的信息存储到一个“仓储”中,然后将 SecurityContextHolder 中的信息清除,例如在 Session 中维护一个用户的安全信 息就是这个过滤器处理的。 HeaderWriterFilter 用于将头信息加入响应中 CsrfFilter 用于处理跨站请求伪造 LogoutFilter 用于处理退出登录 UsernamePasswordAuthenticationFilter 用于处理基于表单的登录请求,从表单中 获取用户名和密码。默认情况下处理来自 /login 的请求。从表单中获取用户名和密码 时,默认使用的表单 name 值为 username 和 password,这两个值可以通过设置这个 过滤器的 usernameParameter 和 passwordParameter 两个参数的值进行修改。 DefaultLoginPageGeneratingFilter 如果没有配置登录页面,那系统初始化时就会 配置这个过滤器,并且用于在需要进行登录时生成一个登录表单页面。 BasicAuthenticationFilter 检测和处理 http basic 认证 RequestCacheAwareFilter 用来处理请求的缓存 SecurityContextHolderAwareRequestFilter 主要是包装请求对象 request AnonymousAuthenticationFilter 检测 SecurityContextHolder 中是否存在 Authentication 对象,如果不存在为其提供一个匿名 Authentication

GitHub申请账号

访问GitHub官网:https://github.com/,点击Sign up 按钮。 填写用户名、密码、邮箱,然后点击Create account。 选择团队人数,然后点击Continue。 选择感兴趣的功能,我这里全部选上了,然后点击Continue。 这里要选择免费服务还是企业付费服务,对于个人开发者来说免费的就够了,我这里选择免费的,点击Continue for free。 创建组织,填写组织名、邮箱等信息,然后点击Next。 可以邀请其他成员,不邀请的话直接点击Complete setup。 这个页面是一个类似问卷的调查页面,随便填下就好,然后点击Submit提交。 注册账号的流程到这里就完成了。

计算机丢失msvbvm50 dll,"无法启动此程序,因为计算机中丢失MSVBVM50.DLL"的解决方法...

腾讯视频/爱奇艺/优酷/外卖 充值4折起 今天在Win8.1系统下运行“喜羊羊与灰太狼屏保.exe”程序时,突然弹出如图所示的“系统错误”窗口: 内容为“系统错误。无法启动此程序,因为计算机中丢失MSVBVM50.DLL。尝试重新安装该程序以解决此问题。” 首先普及一下常识,MSVBVM50.DLL文件是什么东东呢?DLL是Dynamic Link Library 的缩写,DLL文件其实就是动态链接库文件。DLL 是一个包含可由多个程序同时使用的代码和数据的库,有助于共享数据和资源,多个应用程序可同时访问内存中单个DLL 副本的内容。那么为何系统容易丢失DLL文件呢?因为DLL很容易被杀毒软件误认为是病毒或者木马而错杀,因而导致无法启动程序的系统错误。 既然提示系统缺失MSVBVM50.DLL文件,那解决起来也很简单,只需下载一个MSVBVM50.DLL文件(下载地址)再放到系统中就可以了(如果你感觉手动操作麻烦的话,可以选择使用“DLL文件修复工具”)。 关键是下载的dll文件放到系统的什么地方。 如果你使用的是32位操作系统,放到目录C:/WINNT/System32下;如果你使用的是64位系统,放到目录C:/Windows/SysWOW64下。 一般情况下,只要把MSVBVM50.DLL文件放到系统目录中,问题应该就能解决了。如果还是提示系统错误,那么我们可以手动注册一下: Win + R 快捷键调出“运行”对话框,输入“regsvr32 msvbvm50.dll”,回车运行即可。 腾讯视频/爱奇艺/优酷/外卖 充值4折起

浙大PTA 第4章-29 找出不是两个数组共有的元素 (20 分)

全题解析链接 浙大Python题目集 PTA95题全部解析 给定两个整型数组,本题要求找出不是两者共有的元素。 输入格式: 输入分别在两行中给出两个整型数组,每行先给出正整数N(≤20),随后是N个整数,其间以空格分隔。 输出格式: 在一行中按照数字给出的顺序输出不是两数组共有的元素,数字间以空格分隔,但行末不得有多余的空格。题目保证至少存在一个这样的数字。同一数字不重复输出。 输入样例: 10 3 -5 2 8 0 3 5 -15 9 100 11 6 4 8 2 6 -5 9 0 100 8 1 输出样例: 3 5 -15 6 4 1 题解: li1 = list(map(int,input().split())) li2 = list(map(int,input().split())) li3 = [] for i in li1[1:]: if i not in li2[1:] and i not in li3: li3.append(i) for i in li2[1:]: if i not in li1[1:] and i not in li3: li3.

2001年河北省高考人数和普通高校招生录取分数线

2001年河北高考总人数约40.55万人。 经河北省招生委员会研究确定,今年我省普通高校招生各批各类录取控制分数线和建档线如下: 一、理工类 本科一批控制分数线为572分,本科二批控制分数线为533分,本科三批控制分数线为500分。 专科批建档分数线为410分。 二、文史类 本科一批控制分数线为537分,本科二批控制分数线为510分,本科三批控制分数线为480分。 专科批建档分数线为380分。 三、体育 本科控制分数线,男生专业分71分、文化分310分,女生专业分68分、文化分300分。 专科建档分数线,男生专业分60分、文化分205分,女生专业分60分,文化分200分。 四、美术 本科控制分数线为194分(专业分)/300分(文化分)。 专科建档分数线为176分(专业分)/220分(文化分)。 五、音乐 1、声乐:本科控制分数线为60分(专业分)/300分(文化分)。 2、器乐:本科控制分数线为54分(专业分)/300分(文化分)。 3、舞蹈:本科控制分数线为52分(专业分)/255分(文化分)。 4、音乐专科:建档分数线为40分(专业分)/200分(文化分)。 以上各批各类分数线,是按招生计划的一定倍数划定的。考虑到因志愿填写不当或部分考生不服从调剂的因素,并尊重院校招生自主权,为学校提供超出招生数一定比例的档案等因素,因此线上人数大于实际录取数,每批上线的考生不会全部被录取。 据统计,今年我省考生成绩总体较高,尤其是高分段考生多于去年,因此考生填报志愿时要考虑这一因素。 由于专科各批各学校之间的提档线差距很大,全省不统一确定控制分数线,只确定建档线。录取时,专科批各招生院校根据招生计划和考生志愿从高分到低分分别确定提档线。考生应根据自己的高考成绩和身体条件及爱好,慎重填报升学志愿,以免落选。

win怎么在计算机里按日期搜索文件,通用win7系统搜索某时间段内的文件的方法...

系统总裁Win7专业版系统自带的搜索功能非常方便,能够帮助用户快速搜索自己所需要的文件,但是有时候并不需要搜索文件名,想要搜索某时间段内的文件,不知如何实现。下面小编就给大家介绍下搜索某时间段内文件的方法。 首先在搜索框中点击一下,文件资源管理器顶部就会显示搜索工具栏,点击修改日期按钮即可弹出日期范围选择框。 不过这里的日期范围都是整周、整月、整年的选项,那么如何自定义一个任意的日期范围呢?点击今天,然后在搜索框中显示的今天蓝色字符上点击,即可弹出日期选择框。 那么如何选择日期范围呢?点击日期选择框上面的2016年4月,时间范围即上移到2016年,时间范围也显示为12个月。这时注意观察搜索框里的日期已经变成了一个中间用两点隔开的日期范围。 在搜索里手动修改日期范围即可,例如修改成201641-2016421即可搜索2012年10月11日至2012年11月11日时间范围内的所有文件。 通过上文的设置,您就能够在系统下搜索你需要的某时间段内的文件,时间段由您根据需求自己设置。

计算机boot进入u盘启动,戴尔服务器怎么进入u盘启动模式 选择oneshotbios

导读:谈到模式,大家应该都了解,有人问dell服务器怎么看raid,当然了,还有人想问戴尔笔记本u盘启动快捷键,这到底怎么回事呢?其实dell服务器bios呢,下面是小编为大家整理的戴尔服务器怎么进入u盘启动模式,欢迎大家参考和学习。 戴尔服务器怎么进入u盘启动模式 1、把准备好资料的两个优盘,分别插入服务器主机上。重启服务器 开机按F11 进入 boot manager(以戴尔电脑为例) 2、进入以后,选择one shot bios boot menu就进入了启动盘选择界面,我这里有两个优盘,先随便选一个看看是不是进入系统。如果没有就重新进入选第二个。 3、很快进入系统安装界面,输入序列号( 这一步下面如果出错。返回到最上面,看看是不是install.wim没有替换好。) 4、这里务必选择GUI模式。 5、选择自定义安装,下一步浏览-加载另一个优盘里面的RAID驱动,不然识别不了硬盘。 6、在内存里安装好驱动以后,服务器对应的硬盘就出来了,这时候格式化需要安装的磁盘,就可以安装系统到对应的磁盘了。 注意事项:优盘写入镜像以后,要转换成NTFS格式,并把原镜像里的install.wim替换到优盘里。 服务器开机F11进入以后,选ONE SHOT BIOS BOOT MENU,选择正确的启动优盘。 一定弄清楚自己服务器的RAID磁盘管理器型号,在官网下载正确的驱动。 方法一、传统法 设置电脑U盘启动,传统的方法是进入电脑bios设置,然后进入boot启动项设置,之后将USB设备设为第一启动项,然后保存即可,以下是具体步骤: 1、重启戴尔笔记本,在笔记本标志画面的时候,立即按键盘上的“F2键”即可进入笔记本bios设置,如下图所示: 注:在戴尔笔记本开机标志界面底部会有F2 Setup和F12 Boot Options提示,这里我们按F2键进入bios设置即可。 2、进入bios设置以后,我们使用键盘上的→键,切换到顶部的菜单中的“Boot”菜单,然后在里面选择“USB Storage Device”为第一启动项即可,选择后,Entel键确认,最后按F10键保存,之后会提示你是否保存,我们选中“Yes”然后按回车确认即可,之后戴尔笔记本将自动重启,之后即可进入U盘启动界面了。 补充说明: 在开机进入到标志画面时,马上按下键盘左上角的F2键,就能进入到BIOS主界面,一般在标志画面出现时,在屏幕的右下方都会有进入BIOS按键提示,如果不记得或不知道,看一看就可以了。 刚进入BIOS时,默认的是Main这一项,这里主要是设置时间,和一些硬件的显示,我们不要动这里面的选项。 我们要通过左右方向键,选择Boot这一项,Boot为“启动”的意思,在这里就是要设置U盘或光盘启动的地方。 如果要从U盘启动,选择USB Storage Device,用上下方向键移动到这一项,然后用+/-键,把这一项移动到最上面,再按Enter键确定。 如果要从光盘启动,选择CD/DVD/CD-RW Drive,用上下方向键移动到这一项,然后用+/-键,把这一项移动到最上面,再按Enter键确定。 如果装完系统后,要恢复原来硬盘启动,就要选择Hard Drive,同样用上下方向键移动到这一项,然后用+/-键,把这一项移动到最上面,再按Enter键确定。 移到最上面的原因是,哪一项在最上面,哪一项就为第一启动,移到Boot Priority Order这一项下面就可以了,这个是标题,中文意思是“启动顺序设置”。 设置完以后,按F10键进行保存并退出,重启电脑就可以从U盘或光盘启动了,如果在PE中看不到电脑中的硬盘,那就是硬盘模式设置不正确,那就要重新进入BIOS,对硬盘进行模式设置,下面对硬盘模式设置方法进行讲解说明。 设置硬盘模式,进入到BIOS主界面后,把光标移到Advanced这一项上,Advanced为高级设置意思。 进入到Advanced这一项后,选择SATA Uperation这项,其意思是“SATA工作模式”,然后按Enter键,进入其子项。 在打开的小窗口中选择ATA这一项,然后按Enter键确定,原因是,尤于一些老式的PE系统不兼容ACHI模式,所以要启动传统的ATA模式,如果是一些比较新的PE系统,它们都能够兼容ACHI模式。 当然,最后一个步骤就是对所有设置进行保存,一般可以到Exit主项下选择Save & Exit Setup这一项,中文意思是“退出并保存设置”,还有一个直接的方法,就是直接按F10键,这个F10键是所有电脑通用的“退出并退出键”,按它就可以了,整个BIOS从U盘或光盘启动就设置完了。 方法二、快捷键法 不同品牌笔记本电脑拥有不同的启动项快捷设置按键,戴尔笔记本的启动项快捷键为F12,使用方法如下: 同样是在电脑重启或者开机进入标志界面的时候,我们立即按键盘上的F12键,之后将进入如下快捷启动项设置界面,这里我们直接选择第二项“USB Storage Device(有些直接显示插入笔记本的U盘名称,总是是含有USB字样的这项)”,选中后,我们直接按Enter(回车键),之后即可进入U盘启动界面了。 如果想要从光盘启动,选择CD/DVD/CD-RW Drive这一项,然后按Enter键,就能马上从光盘启动,当然,也要先在光驱中放入系统光盘,这样,快捷启动方法就讲解完了。 戴尔笔记本怎么设置U盘启方法就为大家介绍到这里,建议大家优先采用方法二,这样比较方便与快捷。 注意事项 由于BIOS版本不同,可能在启动设置选项上会有所不同,但一般都会差不多,请灵活运用。 在装系统或设置BIOS前,最好检测U盘与电脑的兼容性,以免不必要的麻烦。 dell r720服务器 怎么从u盘启动

Mac virtualbox k8s通过yaml创建pod_解决k8s无法通过svc访问其他节点pod的问题

问题描述 有两个(或多个)运行在不同节点上的pod,通过一个svc提供服务,如下: root@master1:~# kubectl get pod -o wide NAME READY STATUS RESTARTS AGE IP NODE kubia-nwjcc 1/1 Running 0 33m 10.244.1.27 worker1 kubia-zcpbb 1/1 Running 0 33m 10.244.2.11 worker2 root@master1:~# kubectl get svc kubia NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE kubia ClusterIP 10.98.41.49 <none> 80/TCP 34m 当透过其他pod访问该svc时(使用命令k exec kubia-nwjcc -- curl http://10.98.41.49),出现了只能访问到和自己同处于一个节点的pod的问题,访问到其他节点上的pod时会出现command terminated with exit code 7的问题,如下: 正常访问到相同节点的pod root@master1:~# kubectl exec kubia-nwjcc -- curl http://10.98.41.49 % Total % Received % Xferd Average Speed Time Time Time Current Dload Upload Total Spent Left Speed 100 23 0 23 0 0 8543 0 --:--:-- --:--:-- --:--:-- 11500 You've hit kubia-nwjcc 无法访问其他节点的pod

Symantec清除工具 CleanWipe_14.3.558.1000

链接: https://pan.baidu.com/s/13CLqz2AD_azkL2vfFPYh2Q 提取码: f3uu 复制这段内容后打开百度网盘手机App,操作更方便哦 Symantec版本为 14.3 以下的版本都可以用

MapReduce实战项目——芝加哥的犯罪数据分析

数据来源是https://www.kaggle.com/currie32/crimes-in-chicago 以下是数据集的预览 数据各个标签的含义如下 //ID --> 身份证ID Case Number --> 案件编号 Date --> 事件发生的日期 Block --> 事件发生地的部分编辑地址,将其放置在与实际地址相同的块上。 IUCR --> 犯罪报告代码 //Primary Type --> 主要类型(主要描述的IUCR代码) //Description --> 描述(IUCR代码的次要描述,主要描述的子类别) Location Description --> 地点描述(事件发生地点的描述) Arrest --> 逮捕(表明是否有人被逮捕) Domestic --> 家庭暴力(表明事件是否与伊利诺伊州家庭暴力法案所定义的家庭暴力有关) Beat --> 节拍(表示事故发生的节拍,巡逻是最小的警察地理区域,每个巡逻区都有一辆专用的警车。三到五个街区组成了一个警察区,三个街区组成了一个警察区。芝加哥警察局有22个警区) District --> 地区(显示事件发生的警区) //Ward --> 病房-发生事故的病房(市议会分区) Community Area --> 社区区域(表示事件发生的社区区域,芝加哥有77个社区) FBI Code --> 联邦调查局代码(表明了联邦调查局国家事件报告系统(nibrs)中的犯罪分类) //X Coordinate --> X 坐标(事故发生地点的 x 坐标,在伊利诺斯州东部1983年的投影上。这个位置是从实际位置移动的部分编校,但落在同一块。) //Y Coordinate --> Y 坐标(事故发生地点的 y 坐标,在伊利诺斯州东部1983年的投影上。这个位置是从实际位置移动的部分编校,但落在同一块) Year --> 事故发生的年份

力扣150题(逆波兰式,栈)

来源:力扣(LeetCode) 链接:https://leetcode-cn.com/problems/evaluate-reverse-polish-notation 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。 150.根据 逆波兰表示法,求表达式的值。有效的算符包括 +、-、*、/ 。每个运算对象可以是整数,也可以是另一个逆波兰表达式。 说明: 整数除法只保留整数部分。 给定逆波兰表达式总是有效的。换句话说,表达式总会得出有效数值且不存在除数为 0 的情况。 本来看题目说每个操作对象可以是另一个逆波兰表达式,想着应该先遍历一遍字符串数组,然后先计算数组中每个是逆波兰式的字符串,然后再计算整个字符串数组表示的逆波兰式。但是看题目所给的测试用例中,字符串数组中的字符串都是单个字符的,看别人的题解也没有对字符串数组中的元素是逆波兰式的情况进行处理,所以该题目其实应该当做计算一次逆波兰式即可。计算一次逆波兰式的话就比较简单了,就是利用一个栈,遍历一下字符串数组,遇到数字就入栈,遇到运算符就出栈两个字符进行计算,这里要注意先出栈的元素是第二个运算数字;然后将计算结果重新压入栈中,再接着遍历字符串数组,最后留在栈里的元素就是运算结果了。由于这里是字符串数组,C语言中字符串之间的比较不能用逻辑运算符==来判断,因此遍历字符串的时候判断是否是运算符需要用到库函数strmp,要注意该函数的返回结果代表是什么意思,自己在这就理所当然的以为相等返回1,不等返回0,导致了错误。 还有当遇到数字的时候需要入栈,由于我们遍历的是字符串数组,得到的每个元素是字符串,所以还需要用到库函数atoi,能够将一个字符串转换成数字。 看到评论区中别人发的题解,有人在遍历字符串数组时,不是判断是否是运算符,而是判断是否是数字,这种方法也是可以的,不过要利用到库函数isdigit函数来判断是否是数字。 6. 最后附上调试时的完整代码,顺带复习了一下如何创建二维字符数组,由于二维字符数组中每个元素是一个字符串,因此可以定义一个字符指针数组,然后给这个字符指针数组赋值上初始值。 #include <stdio.h> #include <stdlib.h> #include <string.h> #include <stdbool.h> int evalRPN(char ** tokens, int tokensSize){ int *stack = malloc(sizeof(int) * tokensSize); int top = -1; for (int i = 0; i < tokensSize; i++) { if ((strcmp(tokens[i], "+") == 0) || (strcmp(tokens[i], "-") == 0) || (strcmp(tokens[i], "*") == 0) || (strcmp(tokens[i], "/") == 0)) { int num2 = stack[top--]; int num1 = stack[top--]; if (strcmp(tokens[i], "

Fgui切割图集为散图

Fgui切割图集为散图 嗯,快周末了,有点时间,根据fgui 的 Unity3D对应的sdk源码,组织了下代码,写了个小工具,能切割由fgui编辑器导出的图集。目前仅支持 导出的图集选择使用二进制模式 using FGUIAtlasSpliter; class Program{ static void Main(string[] args) { var bytePath = @"D:\Atlas\bag_fui.bytes"; var exportDir = @"D:\UISources"; UIPackageTool.SplitAtlas(bytePath, exportDir); } } github:https://github.com/XiaoGuiAxuan/FGUIAtlasSpliter

aspose-cells.jar实现Excel文件转换为PDF文件

利用 aspose-cells-8.5.2.jar 实现 excel 内容转换为 pdf 文件输出。 开发过程中如果不验证 License 输出文件中会产生水印,详见如下 verifyLicense() 方法 主要实现代码: /** * @param src 需要被转换的excel全路径带文件名 * @param dest 转换之后pdf的全路径带文件名 * @throws GeneralException */ public static void convert(String src,String dest) throws GeneralException { // 验证License 若不验证则转化出的pdf文档会有水印产生 if (!verifyLicense()) { throw new GeneralException("License验证失败!"); } try (FileOutputStream fileOS = new FileOutputStream(new File(dest));) { Workbook wb = new Workbook(src); wb.save(fileOS, com.aspose.cells.SaveFormat.PDF); } catch (Exception e) { e.printStackTrace(); } } private static boolean verifyLicense() { boolean result = false; try { InputStream is = Excel2pdfUtil.

将CSV文件数据存入MySQL数据库的详细代码 | 直接可以用

文章目录 前言步骤1. 定义一个init方法,用于读取数据库2. 定义一个del类,用于运行完所有程序后关闭数据库和游标对象3. 读取csv文件的列索引,用于建立数据表时的字段4. 读取csv文件数据5. 在数据表中写入数据6. 定义一个确认事务运行7. 新创建数据表 【需要更改】8. 运行程序9. 封装函数 完整代码补充 前言 想把之前存入CSV文件的天气数据读取出来放进MySQL数据库,于是新建了一个python文档 参照这篇教程读取csv文件写入mysql数据库 不需要其他准备,只要更改CSV文件地址,和创建的表格名字,各项属性即可 有需要更改的地方我会在下面直接标出来!!! 环境: vscode+MySQL python 首先导入两个库 import pymysql import pandas as pd 步骤 1. 定义一个init方法,用于读取数据库 【需要根据自己数据库的名字和密码更改代码】 def __init__(self): 账号 user=“root”, 密码password=“root” 要存储的数据库的名字 database=“weather” 若存入数据有中文,加上 charset=“utf8” #定义一个init方法,用于读取数据库 def __init__(self): #读取数据库和建立游标对象 self.connect = pymysql.connect(host="127.0.0.1",port=3306,user="root",password="root",database="weather",charset="utf8") self.cursor = self.connect.cursor() 2. 定义一个del类,用于运行完所有程序后关闭数据库和游标对象 def __del__(self):: #定义一个del类,用于运行完所有程序的时候关闭数据库和游标对象 def __del__(self): self.connect.close() self.cursor.close() 3. 读取csv文件的列索引,用于建立数据表时的字段 【更改CSV文件读取路径】 def read_csv_colnmus(self): def read_csv_colnmus(self): #读取csv文件的列索引,用于建立数据表时的字段 csv_name='D:\\code\\python project\\pachong\\weather_project\\weather_year.

Python 爬虫进阶必备 | 某常见 cookie 加密算法逻辑分析 (加速乐 - jsl)

点击上方“咸鱼学Python”,选择“加为星标” 第一时间关注Python技术干货! 今日网站 我测试的这个站不太好发,涉及 gov,所以我找了找另一个用同一套加密的站,大家将就一下 aHR0cHM6Ly93d3cuY252ZC5vcmcuY24vZmxhdy9saXN0Lmh0bQ== 加密分析 看标题就知道本次文章的分析主题是 cookie 加密,所以打开测试网站,看看 cookie 框选出来的就是我们要分析的字段啦 大大的jsl,极具辨识度 开一个无痕窗口看看能不能抓到包 接下来应该是有图的,但是 Chrome 对于网站 状态码为 521 的请求展示处理不是很好 【假装有图.jpg】 手速不够没有截到,大家将就一下 通过上图,(因为只能看到状态码 521 的红色请求一闪而过,我esc键都按烂了也没断下来)所以果断换了 Fiddler 通过 Fiddler 抓包,看到这个网站有类似下面的几个请求 现在分别看看这 几个请求 请求 1、单纯的请求网页,请求头中没有 cookie,返回了个script,包含了一串js代码,并且在response header中携带了set-cookie 请求 2、请求带上了 cookie,cookie 分别为__jsluid_s和__jsl_clearance_s,返回了另一个段js代码 请求 3、请求还是携带了两个cookie,但是__jsl_clearance_s发生了改变,请求返回的是正常的网站页面 经过上面的分析,这两段返回的 js 应该就是加密的关键 现在我们需要分析 第二个请求里__jsl_clearance_s怎么来的? 第三个请求中__jsl_clearance_s是怎么改的? 加密分析 先看第一段代码 document.cookie=('_')+('_')+('j')+('s')+('l')+('_')+('c')+('l')+('e')+('a')+('r')+('a')+('n')+('c')+('e')+('_')+('s')+('=')+(-~{}+'')+((1+[2])/[2]+'')+((1<<1)+'')+(2+4+'')+(4+5+'')+(-~{}+'')+((1<<3)+'')+([2]*(3)+'')+((2)*[2]+'')+(1+5+'')+('.')+(~~[]+'')+(([2]+0>>2)+'')+(2+7+'')+('|')+('-')+(+!+[]+'')+('|')+('z')+('G')+('A')+(9+'')+('N')+('Y')+('U')+('%')+((1<<1)+'')+('B')+('g')+('Y')+('R')+('W')+('V')+('Z')+('b')+('W')+('m')+('i')+('S')+(2+4+'')+('X')+('w')+('v')+('A')+('Q')+('P')+('g')+('%')+((1+[2]>>2)+'')+('D')+(';')+('m')+('a')+('x')+('-')+('a')+('g')+('e')+('=')+((1|2)+'')+(1+5+'')+((+[])+'')+((+false)+'')+(';')+('p')+('a')+('t')+('h')+('=')+('/');location.href=location.pathname+location.search 在编辑器里改改就能跑出下面的逻辑 这样第一个疑问就得到解答了 现在看第二段的js代码 这个代码比较长,经过了混淆 结尾部分调用了go函数,并传入了如下参数 { "bts": ["1626918646.167|0|xcX", "rLB%2FdFGil%2FWSDtvv5CSWRc%3D"], "chars": "vyPzcSzkrMmFNwvtkEHtwG", "ct": "30ef50b82076b2284fa6ca90acbb5938", "ha": "md5", "tn": "__jsl_clearance_s", "vt": "3600", "

学习日记|JavaScript在网页实现的五子棋游戏

js实现的五子棋 学习js的第三天,跟着老师完成的五子棋小游戏,记录学习成果欢迎大佬们一起分享经验,批评指正。 本程序主要通过三部分实现: 1.棋盘绘制 2.鼠标交互 3.输赢判断 <!DOCTYPE html> <html> <head> <title> canvastest </title> </head> <body> <h1> canvas</h1> <canvas id="canvas"width="400"height="400"> </canvas> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.js"></script> <script> var canv=document.getElementById("canvas"); var ctx=canv.getContext("2d"); ctx.strokeStyle="black"; var bow=0; //画出棋盘; var matrix=[ [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], [0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0], ]; ctx.beginPath(); for(var i=0;i<19;i++){ ctx.moveTo(10+20*i,10); ctx.lineTo(10+i*20,370); ctx.moveTo(10,20*i+10); ctx.lineTo(370,i*20+10); } ctx.stroke(); //鼠标交互; $("#canvas").click(function(event) { console.log(event.offsetX) console.log(bow); var arcPosX,arcPosY; var mtxPosX,mtxPosY; for(var x=0;x<19;x++) { if((Math.

基于jsp网上蛋糕销售系统的设计与实现

介绍: spring+struts+ Hibernate +mysql 会员模块:会员即用户,用户需要先注册才能登录。登录之后用户可以在网上查看对比所有蛋糕信息,如果有看中的蛋糕即可加入到购物车之中,然后下订单,若购物车中有不想要的蛋糕可以删除。除此之外,用户可以查看公告信息,也可以在网站论坛上发表评论。 管理员模块:管理员具有系统最高权限,功能如下: (1)修改管理员密码:管理员能够在这里修改下次登录的密码,但是管理员的用户名是不可更改的。 (2)用户信息管理:管理员能够查看会员资料,并有权将其删除。被管理员删除的会员将无法用其删除的账户登录该系统。 (3)查看蛋糕信息:管理员能够查看全部蛋糕类别信息及其属性,能够添加和删除蛋糕类别。 (4)蛋糕信息管理:管理员能够查看蛋糕信息,比如查看所有蛋糕的属性,以及可以帮蛋糕设置特价,还能对蛋糕的属性进行添加、修改和删除。 (5)订单信息管理:管理员能够查看订单的信息,并可以选择对其进行受理或者删除操作。 (6)网站论坛:管理员能查看所有用户在网站论坛的留言,对这些留言具有删除权限。 (7)公告管理:管理员查看网站所发布的所有公告,并且及时对公告做出更新。 截图: 数据库表: (1)会员信息主要指会员注册时所包含的信息,这些信息就是会员的属性。该系统的会员信息图如图7-27所示: 图7-27 会员信息图 (2)蛋糕类别是对蛋糕的种类的介绍,其拥有三个属性。该系统的蛋糕类别图如图7-28所示: 图7-28 蛋糕类别图 (3)蛋糕信息与蛋糕类别不同,蛋糕信息主要是蛋糕本身的各个属性,该系统的蛋糕信息图如图7-29所示: 图7-29 蛋糕信息图 (4)公告是系统的一种通知信息,它有四个属性。该系统的公告信息图如图7-30所示: 图7-30 公告信息图 (5)管理员是系统另一使用者,拥有系统最高权限。本系统的管理员信息图如图7-31所示: 图7-31 管理员信息图 (6)任何一个购物系统都会生成其订单,订单的属性大同小异,本系统的订单信息图如图7-32所示:

Linux为用户配置.bash_profile文件后不生效

之前有一个服务器上安装了数据库,创建了操作系统用户dmdba。在给dmdba配置环境变量的时候怎么都不生效。配置是直接写在~/.bash_profile文件里。使用su - dmdba命令切换到该用户下后,echo环境变量发现不生效,需要手动source ~/.bash_profile才行。 挣扎两天,无果。后来灵光一现,看了/etc/passwd文件,发现这个文件里面dmdba用户的解释器用的是/bin/sh。 使用usermod -s /bin/bash dmdba命令修改dmdba用户的解释器后,再su - dmdba切换进去,发现环境变量生效了! 但不知其所以然。

Cannot read property ‘0‘ of null(element 时间日期选择器el-date-picker点击清空按钮报错)(问题篇)

1、问题如下图 2、解决办法,加个判断,判断时间是否为null,是的话,清空绑定的时间和发送请求的时间,不为空,则发请求,检索数据。 getItemChange(time) { //判断选择器的时间是否为空 if (time === null) { //清空要发送请求的开始时间和结束时间 this.labelQuery.startTime = ""; this.labelQuery.endTime = ""; //清空时间选择器,绑定的时间 this.value2 = ""; //重新执行查询数据的函数 this.queryReaderLabelInfo(); } //判断如果不为空时 if (time[1] && time[0]) { // 开始时间不能大于等于结束时间 if (time[0].getTime() >= time[1].getTime()) { //弹出错误警告 this.$message({ showClose: true, message: "查询的结束时间不能小于查询的开始时间!", type: "错误", }); } else { //给要发送请求的字段赋值 this.labelQuery.startTime = time[0].getTime(); this.labelQuery.endTime = time[1].getTime(); //执行查询数据的函数 this.queryReaderLabelInfo(); } } },