Sequence

Possible unbalanced tuple unpacking with sequence

我们两清 提交于 2020-08-18 08:27:37
使用Visual Studio Code, 遇到这样的警告,看着不舒服,怎样才能解决掉这个警告呢? "owner" : "python" , "code" : "unbalanced-tuple-unpacking" , "severity" : 8 , "message" : "Possible unbalanced tuple unpacking with sequence: left side has 4 label(s), right side has 0 value(s)" , "source" : "pylint" 解决方法就是在报出警告的代码行的后面加上注释:“# pylint: disable=unbalanced-tuple-unpacking”。 参考资料 ========= https://github.com/PyCQA/pylint/issues/2061 来源: oschina 链接: https://my.oschina.net/u/4370305/blog/4295116

德布鲁因序列与indexing 1

本秂侑毒 提交于 2020-08-18 07:41:36
目录 写在前面 标记left-most 1与right-most 1 确定位置 德布鲁因序列(De Bruijn sequence) 德布鲁因序列的使用 德布鲁因序列的生成与索引表的构建 参考 博客: 博客园 | CSDN | blog 写在前面 在数值计算中,为了控制精度以及避免越界,需要严格控制数值的范围,有时需要知道二进制表示中"left-most 1"或"right-most 1”的位置,这篇文章就来介绍一下通过 德布鲁因序列(De Bruijn sequence) 来快速定位的方法。 标记left-most 1与right-most 1 对于一个二进制数 \(v\) ,如何仅保留最低位或最高位的1? 最低位的1,即right-most 1,其特点是这一位右侧均为0,可通过 v & -v 或者 v & ((~v)+1) 来标记最低位的1。 比如 0101 1010 ,取反后为 1010 0101 ,再加1为 1010 0110 ,与后为 0000 0010 。 最高位的1,即left-most 1,其特点是这一位左侧均为0,可通过下面来标记最高位的1。 uint32_t keepHighestBit( uint32_t n ) { n |= (n >> 1); n |= (n >> 2); n |= (n >> 4); n |= (n >> 8); n |= (n >>

程序以服务形式启动断言异常分析

隐身守侯 提交于 2020-08-18 04:40:49
前言 程序以服务的形式启动,遇到断言vector subscript out of range,会产生两种情况 1)在线程中遇到断言错误,该线程会停止,但是主线程不受影响 2)主线程遇到断言错误,程序直接退出,不会弹窗,提示断言错误,如果服务是以自动形式启动,将会自动重新启动。 测试代码 std::vector<int> vecTest; for (int i = 0; i <= vecTest.size(); i++) { std::cout << vecTest[3] << std::endl; } reference operator[](size_type _Pos) { // subscript mutable sequence #if _ITERATOR_DEBUG_LEVEL == 2 if (size() <= _Pos) { // report error _DEBUG_ERROR("vector subscript out of range"); _SCL_SECURE_OUT_OF_RANGE; } Debug 和 Release 的真正区别,在于一组编译选项。 Debug 版本 参数 含义 /MDd /MLd 或 /MTd 使用 Debug runtime library(调试版本的运行时刻函数库) /Od 关闭优化开关 /D "_DEBUG" 相当于

在使用pipreqs检查python项目依赖时遇到的问题

♀尐吖头ヾ 提交于 2020-08-17 23:48:01
先安装 pip install pipreqs 首先执行E:\code\Hainan\RubberMeteor\webserver> pipreqs --use-local ./ 报错:UnicodeDecodeError: 'gbk' codec can't decode byte 0xbf in position 2: illegal multibyte sequence 需要上--encoding=utf8 如下 E:\code\Hainan\RubberMeteor\webserver> pipreqs --use-local --encoding=utf8 --force . 如果已经存在requirements.txt,需要加上 --force 覆盖之 遇到代码开头结尾编码问题 ERROR: Failed on file: ./app.py File "d:\python37\lib\runpy.py", line 193, in _run_module_as_main "__main__", mod_spec) File "d:\python37\lib\runpy.py", line 85, in _run_code exec(code, run_globals) File "D:\Python37\Scripts\pipreqs.exe\__main__.py",

聊聊nifi的AbstractBinlogTableEventWriter

纵然是瞬间 提交于 2020-08-17 18:25:26
序 本文主要研究一下nifi的AbstractBinlogTableEventWriter AbstractBinlogTableEventWriter nifi-1.11.4/nifi-nar-bundles/nifi-cdc/nifi-cdc-mysql-bundle/nifi-cdc-mysql-processors/src/main/java/org/apache/nifi/cdc/mysql/event/io/AbstractBinlogTableEventWriter.java public abstract class AbstractBinlogTableEventWriter<T extends BinlogTableEventInfo> extends AbstractBinlogEventWriter<T> { protected void writeJson(T event) throws IOException { super.writeJson(event); if (event.getDatabaseName() != null) { jsonGenerator.writeStringField("database", event.getDatabaseName()); } else { jsonGenerator.writeNullField(

某大型企业ospf面试题分析(含路由策略和路由过滤,及双点双向重发布)

守給你的承諾、 提交于 2020-08-17 17:54:30
面试问题背景 本面试题来自国内最大通信技术公司之一,央企,有很多金融网项目。 了解行业的同学,一定知道是哪个企业。 上面试问题(取自百哥收集整理的面试总结大全,关注百哥51cto博客或知乎,不定期分享名企面经) 问题分析 很显然,按面试总结里的答案,并不是面试官想要的,也并不能解决数据分流与互备的需求。 那么,怎样才能实现呢,一起来分析。 OSPF选举路由优劣的方式,是看cost值,先看下普通的单进程ospf,通过修改cost值是否能实现分流 这里所有接口带宽相同,默认cost相同,所以会形成等价路由,也就是说业务流量上行的时候,两条路都会走。 需求是业务走左边,办公走右边,我们尝试修改接口cost,发现不行,因为这样做的结果是 所有数据都走左边,或者所有数据都走右边,并不能实现不同数据左右分离。 所以,实现分流,必须使用双进程ospf,这样来 如图,启用两个OSPF进程,进程号分别是OSPF 100 和 OSPF 1 两个OSPF进程,LSDB和路由计算是完全独立的,相当于两个不同的路由协议,相当于OSPF和RIP 那么两个进程互相学习对方的路由,就要用路由重发布了(也叫路由重分布、路由引入) 这时,对R4来讲,访问业务服务器和办公服务器的路由,是由两台ASBR,也就是R2和R3,以重发布的方式,通过5类lsa发过来的 这时,R2和R3在做重发布时,给100网段

程序员必备画图技能之——时序图

瘦欲@ 提交于 2020-08-17 15:28:16
什么是时序图 时序图(Sequence Diagram),又名序列图、循序图,是一种UML交互图。它通过描述对象之间发送消息的时间顺序显示多个对象之间的动态协作。 使用场景 时序图的使用场景非常广泛,几乎各行各业都可以使用。当然,作为一个软件工作者,我这边主要列举和软件开发有关的场景。 1. 梳理业务流程 一般的软件开发都是为了支撑某个具体的业务。有时候业务的流程会比较复杂,涉及到多种角色,这时就可以使用时序图来梳理这个业务逻辑。这样会使业务看起来非常清晰,代码写起来也是水到渠成的事情了。 2. 梳理开源软件 作为一个合格的程序员,阅读源代码的能力一定要过关。一般成熟框架的源代码调用深度都比较深,类之间的调用关系也比较复杂。我喜欢用时序图来梳理框架中这些对象之间的关系。比如再看Tomcat启动流程的过程中,我就时序图梳理了各个组件之间的关系,看起来层次非常清楚,也便于记忆。 时序图的角色 我们在画时序图时会涉及下面7种元素: 角色(Actor) 对象(Object) 生命线(LifeLine) 控制焦点(Activation) 消息(Message) 自关联消息 组合片段。 其中前6种是比较常用和重要的元素,最后的组合片段元素不是很常用,但是比较复杂。我们先介绍前6种元素,再单独介绍组合片段元素。 1. 角色(Actor) 系统角色,可以是人或者其他系统和子系统。以一个小人图标表示

Create index for contiguous runs of values

瘦欲@ 提交于 2020-08-17 05:24:26
问题 I have a vector: test <-c(1,1,0,2,2,3,4,1,1,0) test # [1] 1 1 0 2 2 3 4 1 1 0 I want to construct an grouping variable which indicates when values change: # [1] 1 1 2 3 3 4 5 6 6 7 What is the best way to do this? 回答1: Use run length encoding ( rle ), seq_along and rep r <- rle(test) changes <- rep(seq_along(r$lengths), r$lengths) changes ## [1] 1 1 2 3 3 4 5 6 6 7 回答2: Alternative option, which will admittedly only work for numeric data. test <-c(1,1,0,2,2,3,4,1,1,0) cumsum(c(1L, diff(test)

Create index for contiguous runs of values

一笑奈何 提交于 2020-08-17 05:24:23
问题 I have a vector: test <-c(1,1,0,2,2,3,4,1,1,0) test # [1] 1 1 0 2 2 3 4 1 1 0 I want to construct an grouping variable which indicates when values change: # [1] 1 1 2 3 3 4 5 6 6 7 What is the best way to do this? 回答1: Use run length encoding ( rle ), seq_along and rep r <- rle(test) changes <- rep(seq_along(r$lengths), r$lengths) changes ## [1] 1 1 2 3 3 4 5 6 6 7 回答2: Alternative option, which will admittedly only work for numeric data. test <-c(1,1,0,2,2,3,4,1,1,0) cumsum(c(1L, diff(test)

oracle存储过程迁移达梦心得

感情迁移 提交于 2020-08-17 04:07:00
这几天把项目的存储过程从oracle迁移到了达梦8,记录一下心得。国产数据库做到这样,已经算很了不起了,跟oracle兼容性确实很高。 但还是有一些细节没做好,主要是出错提示不友好,另外一个网上的资料也很少,出问题不好定位。(达梦的错误码比较简单,就是一个负数,不像oracle是ora-错误码,在百度时输入一个负数搜索信息,跟一长串错误码搜索效率差很远) 准备工作: 1 达梦的数据库管理工具默认不显示行号,也不能自动补全,需要手动设置。行号设置方法:在sql编辑页面,左侧空白竖栏(一般编辑器显示行号的地方)右击,选择”显示行号“。自动补全设置方法:在sql编辑页面空白处右击,选择“选项”,弹出的界面展开“查询分析器”,进入“编辑器”配置页面,选中“启用SQL输入助手” 2 装完达梦数据库后,需要启动oracle兼容模式 sp_set_para_value(2,‘COMPATIBLE_MODE’,2); ,另外,需要启动dbms_job包,SP_INIT_JOB_SYS(1)。改完设置后记得重启。 迁移碰上的问题及解决方法: 1 使用达梦的数据库迁移工具,把oracle的用户整体迁移到达梦后,是变成一个模式,而不是用户,使用起来不方便。 ​ 解决方法:达梦数据库有用户和模式两个概念,库表和存储过程等是建在模式下面的,而用户则是独立的,与安全和权限功能挂钩,这跟mysql比较像