Sequence

测试必备工具之最强抓包神器 Charles,你会了么?

孤者浪人 提交于 2020-08-05 08:30:49
前言 ​ 作为软件测试工程师,大家在工作中肯定经常会用到各种抓包工具来辅助测试,比如浏览器自带的抓包工具-F12,方便又快捷;比如时下特别流行的Fiddler工具,使用各种web和APP测试的各种场景的抓包分析;比如Wireshark,专注于调试网络问以及和分析网络协议包分析...然而,今天我要给大家分享的一款抓包工具叫做Charles,同样也是一个抓包神器! ​ Charles是一款的抓包修改工具,其实也是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的。它是用Java编写的,能支持Win体验可以使用免费试用版本,试用时间为30天。试用期过后每次只能试用30分钟,并且每次启动也会有延时。 ​ Charles主要功能非常丰富,包括: 1、截取HTTP和HTTPS网络协议 2、支持重发网络请求,方便后端调试 3、支持修改网络请求参数 4、支持网络请求的截获并动态修改 5、支持模拟网络 下载安装包 去Charles的官网,下载这个工具的安装包: https://www.charlesproxy.com/download/ 安装 双击这个安装包,并且一路next即可完成安装。 运行软件 安装完成之后,找到这个文件的桌面快捷方式 , ,双击打开即可运行软件。 打开即可看到如上图的界面。 设置代理 如开头讲到的

为什么在Python 3中“范围(1000000000000000(1000000000000001))”这么快?

假装没事ソ 提交于 2020-08-05 08:16:25
问题: It is my understanding that the range() function, which is actually an object type in Python 3 , generates its contents on the fly, similar to a generator. 据我了解, range() 函数实际上 是Python 3中的一种对象类型 ,它像生成器一样动态生成其内容。 This being the case, I would have expected the following line to take an inordinate amount of time, because in order to determine whether 1 quadrillion is in the range, a quadrillion values would have to be generated: 在这种情况下,我本以为下一行会花费过多的时间,因为要确定1个四舍五入是否在该范围内,必须生成一个四舍五入值: 1000000000000000 in range(1000000000000001) Furthermore: it seems that no matter how many zeroes I add on, the

Python 为什么只需一条语句“a,b=b,a”,就能直接交换两个变量?

你。 提交于 2020-08-05 06:29:13
从接触 Python 时起,我就觉得 Python 的元组解包(unpacking)挺有意思,非常简洁好用。 最显而易见的例子就是多重赋值,即在一条语句中同时给多个变量赋值: >>> x, y = 1, 2 >>> print(x, y) # 结果:1 2 在此例中,赋值操作符“=”号的右侧的两个数字会被存入到一个元组中,即变成 (1,2),然后再被解包,依次赋值给“=”号左侧的两个变量。 如果我们直接写 x = 1,2 ,然后打印出 x,或者在“=”号右侧写成一个元组,就能证实到这一点: >>> x = 1, 2 >>> print(x) # 结果:(1, 2) >>> x, y = (1, 2) >>> print(x, y) # 结果:1 2 一些博客或公众号文章在介绍到这个特性时,通常会顺着举一个例子,即基于两个变量,直接交换它们的值: >>> x, y = 1, 2 >>> x, y = y, x >>> print(x, y) # 结果:2 1 一般而言,交换两个变量的操作需要引入第三个变量。道理很简单,如果要交换两个杯子中所装的水,自然会需要第三个容器作为中转。 然而,Python 的写法并不需要借助中间变量,它的形式就跟前面的解包赋值一样。正因为这个形式相似,很多人就误以为 Python 的变量交换操作也是基于解包操作。 但是,事实是否如此呢? 我搜索了一番

2021届数字芯片秋招记录

落爺英雄遲暮 提交于 2020-08-05 06:20:54
欢迎关注公众号,摸鱼范式,最新文章都在那里 HR面这类的就不记录了,只写一写技术面、主管面的经验。 vivo提前批 岗位信息 投递岗位:芯片验证工程师 工作地点:杭州 一共两面,一面技术面,二面HR面 技术面 首先介绍教育经历和项目经历 聊项目,会扣得比较细,根据项目提问题 你的加速器有哪些模块?是并行的嘛? 你的项目中使用了m3软核,你能解释一下m3启动流程吗?我回答说我不了解 你用过axi嘛,axi的特点有哪些,size信号是做什么用的? 解释一下CNN的典型层,我项目里有相关的 uvm有什么特点 fork-join,fork-join_any,fork-join_none的区别,如果fork-join_none里面是a和b,后面再跟个c,他们的启动顺序是?如果想让c最后启动怎么做?我说的是加一个#0 启动sequence有几种方法 vritual sequence如何工作? tlm接口有哪几种?实现tlm通信要做哪些工作? 你的参考模型是c吗?还是sv写的? 覆盖率有哪几种?代码覆盖率和功能覆盖率如何收集? phase有哪些? component和object的区别? new和create的区别是? 如何关闭随机约束? 结果 收到感谢信 乐鑫提前批 岗位信息 投递岗位:数字IC验证工程师 工作地点:上海 一共两面,技术面,HR面 技术面 自我介绍,教育背景,项目经历

Embedding和Word2Vec实战

[亡魂溺海] 提交于 2020-08-05 05:06:59
在之前的文章中谈到了文本向量化的一些基本原理和概念,本文将介绍Word2Vec的代码实现 https://www.cnblogs.com/dogecheng/p/11470196.html#Word2Vec Word2Vec论文地址 https://arxiv.org/abs/1301.3781 1.Embedding 与one-hot编码相比, 词嵌入可以将更多的信息塞入更低的维度中 下面我们用 Keras 完成一个词嵌入的学习,Keras 的 Embedding 层的输入是一个二维整数张量 , 形状为(samples,sequence_length),即(样本数,序列长度) 较短的序列应该用 0 填充,较长的序列应该被截断,保证输入的序列长度是相同的 Embedding 层输出是(samples,sequence_length,embedding_dimensionality) 的 三维浮点数张量 。 首先,我们需要对文本进行分词处理,然后对分词结果进行序列化 再统一输入的序列长度,最后把统一长度的序列化结果输入到 Embedding 层中 整个过程可以用下面的图描述 从样本的角度看,我们可以用下面的图描述这个过程 示意代码如下 from keras.preprocessing.text import Tokenizer from keras.preprocessing

Hibernate --主键生成策略

别等时光非礼了梦想. 提交于 2020-08-05 04:03:21
<id name="cust_id" column="cust_id"> <generator class ="native"></generator> </id> increment:代理主键,适合于所有数据库,由hibernate维护主键自增,和底层数据库无关,但是不适合于2个或以上hibernate进程。 identity:代理主键,适合于 Mysql 或ms sql server等支持自增的dbms,主键值不由hibernate维护。 sequence:代理主键,适合于 oracle 等支持序列的dbms,主键值不由hibernate维护,由序列产生。 native :代理主键,根据底层数据库的具体特性选择适合的主键生成策略, 如果是mysql或sqlserver,选择identity,如果是oracle,选择sequence 。 hilo:代理主键,hibernate把特定表的字段作为hign值,生成主键值 uuid.hex:代理主键,hibernate采用uuid 128位算法生成基于字符串的主键值 assign:适合于应用程序维护的自然主键。 来源: oschina 链接: https://my.oschina.net/u/4254945/blog/4290279

TCP 三次握手四次挥手

ⅰ亾dé卋堺 提交于 2020-08-04 18:56:02
三次握手 所谓的“三次握手”:为了对每次发送的数据量进行跟踪与协商,确保数据段的发送和接收同步, 根据所接收到的数据量而确认数据发送、接收完毕后何时撤消联系,并建立虚连接。 为了提供可靠的传送,TCP在发送新的数据之前,以特定的顺序将数据包的序号,并需要这些包传送给目标机之后的确认消息。 TCP总是用来发送大批量的数据。当应用程序在收到数据后要做出确认时也要用到TCP。 第一次 第一次握手:建立连接时,客户端发送syn包(seq=j)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。 第二次 第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(seq=k),即SYN+ACK包,此时服务器进入SYN_RECV状态。 第三次 第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念: (1)未连接队列 在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(seq=j)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认

C++14新特性的所有知识点全在这儿啦!

狂风中的少年 提交于 2020-08-04 12:42:25
前面程序喵介绍过C++11的新特性,在这里(),这篇文章介绍下C++14的新特性。 函数返回值类型推导 C++14对函数返回类型推导规则做了优化,先看一段代码: #include <iostream> using namespace std; auto func(int i) { return i; } int main() { cout << func(4) << endl; return 0; } 使用C++11编译: ~/test$ g++ test.cc -std=c++11 test.cc:5:16: error: ‘func’ function uses ‘auto’ type specifier without trailing return type auto func(int i) { ^ test.cc:5:16: note: deduced return type only available with -std=c++14 or -std=gnu++14 上面的代码使用C++11是不能通过编译的,通过编译器输出的信息也可以看见这个特性需要到C++14才被支持。 返回值类型推导也可以用在模板中: #include <iostream> using namespace std; template<typename T> auto func(T t) {

种群进化+邻域搜索的混合算法(GA+TS)求解作业车间调度问题(JSP)-算法介绍

柔情痞子 提交于 2020-08-04 11:16:22
程序猿声 代码黑科技的分享区 过去小编简单了解过作业车间调度问题(JSP),这两个月简单接触了柔性车间调度问题(FJSP),但是因为一些原因打算暂时研究到这里。 在研究的时候,小编发现网上这方面的 中文资源不多,那么秉持着普度众生的原则,就在这里和大家分享一下最近研究的一些成果。 柔性作业车间调度问题介绍 之前我们曾经做过车间调度问题(JSP)的内容,相关可以看这篇文章: 这里再简单介绍一下FJSP: 集合 表示一系列相互独立的工件,任一工件 需要经过 等一系列工序的加工方可完成,工序之间按照固定的加工顺序依次完成。集合 表示可用的加工机器, 表示工件 的第 道工序,可以在可用机器集合 中的任意机器上进行加工。每道工序的加工时间与加工机器相关。 一道工序一旦开始加工,就不能中断。每台机器一次只能加工一道工序。在初始加工时刻,所有工件和机器都是可用的。 一般来说,该问题的目标是最小化Makespan,通常用L来表示,即从开始加工到所有工件加工完毕总的时长。 综上所述,柔性车间调度问题和车间调度问题相似,在此之上改变了一个条件:对JSP,每道工序只能在某个特定的机器上加工;对FJSP,工序可能有多个可加工的机器(且不同机器上加工时间不同)。 所以,FJSP不光要选择工序在机器上加工的顺序,还要选择在哪个机器上加工。这也意味着FJSP是比JSP更复杂的优化问题。 根据小编这段时间的研究

【NIO】解读 java.nio.channels.Selector

喜欢而已 提交于 2020-08-04 11:10:15
目录 Part 1. What's Selector? Part 2. Why Selector? Part 3. How to use Selector? 1) Create Selector 2) Channel's Register 3) Selection Key 4) Selector.select() 5) Selector.selectedKeys() Part 4. Demo Train Part 1. What's Selector? Selector is the core conception for NIO from JDK1.4 which is a multiplexor of SelectableChannel objects that allows one thread to handle multiple channels. Part 2. Why Selector? Before NIO came out, We used Socket programming like this: //---Server--- //Create ServerSocket and bind the port ServerSocket serverSocket = ……; serverSocket.bind(8899); While (true) { //