自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

木申的博客

木申申的博客

  • 博客(45)
  • 收藏
  • 关注

原创 nginx rewrite_by_lua 执行了 2 次

配置在 server 层的效果,等价于在每个 location 层都配置了rewrite,而对于 php 服务的访问,是经历了一次内部跳转的。nginx发生内部跳转时,当前请求会重新执行rewrite、access 这些 nginx 的请求处理阶段,从而导致对应的 Lua 代码重复执行。配置在了server 层,配置如下(简化版),非预期的执行了 2 次。

2023-06-29 19:42:43 633

原创 golang 一题彻底理解defer

请先思考,再看答案答案是xxx,原因是,在return的执行过程中,会先赋值给返回值,再return,而defer的具体执行时间在这两者之间i := 1result = iresult++ // defer 的执行时间return很多人对defer的理解,是defer在函数完成后执行,要得出这题的答案,必须明确的知道具体的执行时间...

2021-01-20 14:24:28 142

原创 mac 在dock中点击应用图标,无法弹出窗口

忽然某一天,不知道怎么回事,mac会出现,点击图标,无法弹出窗口的问题,如下图:虽然还没找到原因,但是已经找到解决方案了,在iterm里输入Killall Dock注:这个命令不会关闭所有的应用,所以不要担心,一朝回到解放前...

2021-01-19 15:46:49 3656 3

原创 go context的使用 超时控制 实例

概述context不管大佬们怎么评价,它都是go语言的精髓所在,是一定要学会的使用用在并发时,管控生命周期的;通俗点说,就是goroutine的时候使用实际例子需求:我是一个内容网站,通过getContent方法,我获取内容推荐给用户,但是如果推荐服务超时了(不管因为什么),我就返回给用户最热的10条新闻,而不是直接返回504package mainimport ( "context" "fmt" "time")// 这个方法的目的是,控制子调用的超时,因为整个getConten

2021-01-14 11:31:33 737 1

原创 go interface 坑 (判空)

interface 本质interface 实际上是有两个字段组成,一个是类型,是一个值,在判空时,只有同时是nil,才能得到true实际案例在doSomething中,err是等于空的,但是传递给error这个接口后,确又不等于空了,因为虽然它的值是空的,但是它的类型,是myError运行结果...

2021-01-13 16:45:02 931

原创 golang proto import 路径问题 和 google protobuf

背景记录使用proto做gprc接口的几个小坑,基于goland ideimport写proto时,有时候需要引入其它proto,之后会发现goland提示import路径不存在注意,这里只是goland插件提示而已,与实际生成无关,只需要在插件路径中,加入你proto的路径即可而在实际生成pb文件时,只需要在命令中,通过-I加入关联的目录即可protoc --go_out=plugins=grpc:. -I=${GOPATH}/src -I=. *.protogoogle protob

2021-01-13 15:59:15 7622 1

原创 golang 读取excel(xlsx文件) 时间格式解析

问题起源最近在写一个读取xlsx文件,并解析其中数据的项目,在所有的数据都就绪之后,却遇到了时间格式获取不正确的问题时间格式我查询到的结果我的代码func main() { f, err := excelize.OpenFile("./template.xlsx") if err != nil { log.Fatal(err) } rows := f.GetRows("Sheet1") for _, row := range rows { fm

2020-10-29 20:47:22 3504

原创 理解 二进制 补码

概述二进制理解了很久,写下自己的理解,我的理解细致的描述了我的思考过程,适合未理解二进制的小白,而只是回归二进制概率的,希望干错利落得到答案的,请点击二进制 百度百科理解互补定义一个规则,指定一个最大值,两个数相加等于这个最大值如:我定义12为最大值,在我定义的规则中,6于6互补,5与7互补这个规则还有一个漏洞,12为最大值了,那6+7=?,如果不定义最大值,它应该等于13所以,需要补充定义,我定义最小值为1,6+7=1,1-12形成一个环对这个环的理解,可以想象我们挂在墙上的时钟,12点一

2020-10-26 21:23:28 612

原创 二进制 零扩展与符号扩展

概述学计算机组成的时候遇到了,就写一下自己的理解应用场景在计算机组成中,少位二进制数和多位二进制数进行运算时,需要用到如1111(4位二进制)与11001100(8位二进制)相加或者其它运算时,4位的二进制需要进行扩展,才能与8位二进制运算零扩展高位直接补0的扩展,如1111变成00001111,补0并不影响计算结果,这个很好理解,但如果二进制数带了符号,就不一样了,因为最高位是符号位,所以1111就总一个负数,变成了一个正数00001111,由此,产生了符号扩展符号扩展高位直接补符号位,

2020-10-26 21:20:14 2375

原创 python requests库 Session 设置默认cookie

r = requests.Session() for k, v in get_cookie().items(): r.cookies.set(k, v)通过 r.cookies.set( ) 可以进行设置, 必须以键值对的形式进行

2019-04-16 08:25:34 2280

原创 软件测试思考之手工测试

测试的工作,通常就是找bug,对于一个bug,代码上的错误,属于直接错误,改好代码,bug消失,测试就结束了,这是初级测试。如果要进阶,要进行更加高级的思考,为什么会产生这个bug,很多人直观的觉得,产生bug不就是因为写错代码了么。然而现实工作中,我发现很多bug产生的原因,是因为开发不理解需求。这时候,我们不应该一直去找bug,而是集合产品经理,多开几次需求讨论会,开发明确了需求,...

2019-04-07 11:55:05 534

原创 python rotated binary search 二分查找

有一道leetcode题,简单点说,就是一个有序序列,随机截成两段,然后这两段交换位置,让你在O(logn)的时间里找一个search一个值,本质上是二分查找的变异Suppose a sorted array is rotated at some pivot unknown to you beforehand.(i.e.,0 1 2 4 5 6 7might become4 5 6...

2019-04-07 11:21:51 165

原创 cmder history 清理以及控制条数

cmder的config目录下,删除.history里的记录,就清空了history 修改setting里的history_file_lines变量,可以控制history的记录数

2019-02-26 15:22:01 3139

原创 git add --all,warning:LF will be replaced by CRLF in Pipfile

解决方案:git config --global core.autocrlf false 

2019-01-31 10:24:36 320

原创 PyCharm中,python import同级目录模块,报错

我在app.py中执行下面语句会报错from forms import xxx解决方案:将当前目录置为Sources Root即可。

2019-01-29 08:45:44 1155 1

原创 Neither SQLALCHEMY_DATABASE_URI nor SQLALCHEMY_BINDS is set.

在玩flask框架的时候,遇到这么一个问题,说我变量没有设置,我就纳闷了,明明设置了,后来明白了,由于python代码是一行行解析的,所以设置一定是放在前面才行错误的写法:正确的写法:...

2019-01-27 21:29:10 2626 1

原创 论flask和Django

近期学习了下flask和Django,从一个小白的角度来说,更加推崇flask,因为flask更加轻,意味着需要去理解更多web相关的东西。这意味着flask更加好学。因为当Django帮我做了太多事情的时候,我就完全无法理解很多东西,做到后面,会发现,不知道自己在干什么。所以,大型框架适合已经理解了web网站原理的人去用,提升效率。而对于一个初学者,重要的是去理解网站的原理,所以选择...

2019-01-27 21:22:16 331

原创 robot framework pybot.bat python.exe 不是内部或外部命令

win10环境变量配置一行一行的加!!注意每次修改成功之后,要退出命令行,重新运行ride.py文件!! 一定要退出命令行!!

2018-11-22 13:44:35 940

原创 python中两列表,任意交换元素,使差值最小

上课老师出了一道题,任意交换两个列表的元素,使差值最小,是一道华为的面试题。我想不出来, 百度了一下,本质上,是背包问题的一个变种,然后我看懂了背包问题的原理,并阅读了别人的C++代码,然后按照自己的理解,写出了Python的代码。关于背包问题的理解,我推荐一个作者,写的极好,我就是在这篇文章的指导下,花了5个小时,理解的。写出我理解的时间,是给那些看了1个小时,就垂头丧气的人,一点信心,...

2018-10-16 08:59:49 2287 3

原创 python 可迭代对象 数据

看了很多解释,都是在拿迭代器,讲解可迭代对象,然后写写代码,就完了。完全不懂内部实现。花了很久,终于找到内部实现了,也就是搞懂了,用 for 去遍历可迭代对象时,拿的数据到底在哪里。class Add: def __init__(self): self.base = 0 def __iter__(self): return self...

2018-10-11 15:59:10 956

原创 python pycharm Triple double-quoted strings should be used for docstrings.

 换成这样即可

2018-09-30 16:07:52 8806 4

原创 python 基础学习 第三天 总结

今天补上了剩余的数据类型,元组,集合,字典,python四大金刚(列表,元组,集合,字典)终于齐聚一堂了,桃园三结义?多了一个。三缺一?刚好。这四个丑陋的东西昨天搞死我了,方法巨多,又不知道有啥子含义,背倒是能背,没啥子意义啊,一个列表不就行了吗?干嘛搞四大金刚,虽然存在即是合理的,但是没人给我阐述它的合理性呀。查了,没人阐述,我也不能用心换心之术,去看看guido龟叔到底是怎么想的,...

2018-09-28 14:46:49 125

原创 python 基础学习 总结 第二天

今天学习了数据类型,包括数字类型,字符串,和列表。有一个收货,编程语言的基本概念是一样的,我学过js,java,c,c++,变量就两种,数字,字符串。有些语言细分,整型,浮点型,还可以再细,长整型,短整型,分的越细,对内存的利用就越好,语言也就越低级,可以说,越靠近内存,越靠近硬件越低级,同样,它的效率越高。而python语言就比较皮了,能不分就不分,数字型也就整型和浮点,当然,复数那...

2018-09-27 10:28:24 101

原创 python 基础学习 总结 第一天

第一天总结本来以为学计算机本科的我,学输入输出只需要瞄一眼就过去了,而事实上并不是这样, ,,python的输出是一个函数,写法是print("你要输出的东西");但是,既然不函数,就会可能存在别的参数,用help命名偷窥一下它,   一看,怎么这么不入流的画风,唉,计算机的世界就是这样,这是命令行执行python多了四个参数,一个个解释:sep:如果输出里...

2018-09-26 22:56:57 276

原创 wifi共享 断网,连接不上

在安装了虚拟机,用xshell连接之后,突然wifi共享就总是断线,连上了网络没没了。尝试了很多方法,现在共享一个我成功解决的方法。第一步,右键网络,点击属性,进入如下页面:第二步,点击本机连接,再点属性。第三步,再共享栏,允许其他网络用户连接。...

2018-09-20 18:58:37 601

原创 SQLZOO 第六套 英文 (困难版)The JOIN operation

8.Instead show the name of all players who scored a goal against Germany. SELECT distinct playerFROM game JOIN goal ON matchid = id WHERE (team1='GER' or team2='GER')and teamid != 'GER'9.Show...

2018-09-16 10:44:39 161

原创 SQLZOO 英文第四套(困难版) SELECT within SELECT

5. Show the name and the population of each country in Europe. Show the population as a percentage of the population of Germany.SELECT name, CONCAT(ROUND(ROUND((population / (SELECT population FR...

2018-09-15 11:53:13 348

原创 SQLZOO 中文第二套 (困难版)

11.Show the name - but substitute Australasia for Oceania - for countries beginning with N.SELECT name, CASE WHEN continent='Oceania ' THEN 'Australasia'ELSE continent ENDFROM worldWHERE name...

2018-09-13 08:40:03 591

原创 SQLZOO 英文第三套 SELECT from Nobel

 Change the query shown so that it displays Nobel prizes for 1950. SELECT yr, subject, winnerFROM nobelWHERE yr = 1950 Show who won the 1962 prize for Literature. SELECT winnerFROM nobelWHE...

2018-09-13 08:22:48 231

原创 Java命令行运行.class文件,提示错误,找不到或无法加载主类问题

解决方法:配置好ClassPath路径后,直接从src目录下,运行包名+类名。详细演示如下:文件路径如下:文件代码如下:package com.woniuxy.leassion4;public class Test { public static void main(String[] args) { System.out.println("包中的Java...

2018-09-02 22:02:11 1631 1

原创 辗转相除法和更相减损法 定义,原理,Java实现以及优化

要求两个正整数的最大公约数有两种方法,辗转相除法和更相减损法。注:gcd(a,b)代表a和b的最大公约数。辗转相除法的定义:对于两个正整数a和b,其中a>b,r为a除以b的余数,gcd(a,b) = gcd(b,r);原理:设a,b的最大公约数为u,a = u · t1; b = u · t2; (t1 , t2 为某个数,满足等式要求,是多少并不重要,一定存在,因为u为a,b的...

2018-08-29 20:31:18 2571

原创 静态变量为什么不能使用this关键字

public class Student{ //定义一个静态变量,名为a static int a;}静态变量(static 所修饰的变量),是在程序运行之前,也就是编译阶段,分配内存。void test(){ this.a = 1;}而this关键字的意思是,当前对象的a,也就是说,必须要有对象才能用this。而对象的产生,必须在程序运行时,通过n...

2018-08-28 15:01:16 3701 5

原创 面向对象的理解

//面向过程方法1(){ ... 方法2()}方法2(){ ... 方法3()}方法3(){ ...}//面向对象对象.方法1();对象.方法2();对象.方法3(); 

2018-08-28 09:57:26 93

原创 为什么Java数组长度不可改变?

数组的内存是连续分配的;int [] array = {1, 2 ,3};假设数组内存如上图所示,那么当我们增加数组长度时,就可能导致别的变量被覆盖,导致出错。这时,有人会想,那减少长度也是可以的呀,但是这会出现一个现象,那就是突然,空出来一个内存空间。如果内存空间一开始就分配好,那么会符合整体布局,这个空间可以和别的空间组合,变成一块更大的空间。如下图所示:综合上...

2018-08-22 13:59:08 9328

原创 Java 变量定义中的内存分配问题

int a = 1; Java 到底干了什么。1是一个数值型变量,会直接放在栈中,如下图所示:           第一:先看看栈中是否有1,没有,则划分一个区域,存放1,a指向1.指向的意思一直没搞定,终于想通了,意思是 a 就是 1的地址,不是a等于1的地址,在后续的编译过程中,会把a替换为1的地址。如果理解为a等于1的地址,那么...

2018-08-22 09:25:49 465 1

原创 java == 与 equals 的问题

提出问题:在控制台输入男,进行判断,判断为false,不输出 性别为男Scanner sc = new Scanner();if(sc.next() == "男"){ system.out.println("性别为男");}预备知识:java分为值类型和引用类型。java存储空间分为栈和堆。结论:==判断的是地址是否相同,而equals判断的是地址对应的值是否...

2018-08-21 19:14:12 136

原创 计算机补码的理解

提出问题:计算机本质上是二进制电路,比较好作加法,但是不好作减法,人们需要将减法转化为加法。预备知识:负数的表示,计算机使用最高位代表符号位,如1001 = -1,0001 = 1。1 + (-1) = 1001 + 0001 = 1010 = -2,出现错误。说明在二进制中,不能直接在正数前面添负号,将它变为负数。来试试一个方法,数学中负数完整的表示为 -2 = 0 - 2;那么...

2018-08-21 18:38:13 172

原创 Java清晰逻辑和调理的代码的怎样的

一个简单的问题,判断润年还是平年?下面两段代码同时解决这一个问题:Scanner sc = new Scanner(System.in);int year = sc.nextInt();if ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) { System.out.println("是闰年");} e...

2018-08-21 17:43:54 398

原创 为什么32位系统只能支持4G内存

预备知识:内存:计算机有两个存储空间,一个叫内存,一个叫硬盘;区别?试想,玩游戏时加个硬盘,能提高游戏性能吗?不能,但加内存可以,因为CPU只能直接操作内存,不能操作硬盘。玩游戏时,或者用软件时,都有个加载过程,就是把硬盘里的内容,传输到内存。32位:内存地址的位数。byte与bit:一个bit就是一个二进制位,如1111 0000,就是8bit,也叫8位;1byte = 8 bit,...

2018-08-21 10:23:23 2796

原创 十进制乘法 位移运算 的表示

在计算机中 如何计算十进制25 * 10?预备知识: 4(十进制) * 2 = 100(二进制) * 2 =  100(二进制) << 1(左移一位) = 1000(二进制) = 8 (十进制)可以自行演示4(十进制)* 4 ; 得到的结论为 左移 1 位,即乘以2,左移两位,即乘以4,依次类推。右移即除。25 * 10 = 25 * 8 + 25 * 2= 转二进...

2018-08-21 09:39:52 3815

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除