
有趣的bug
元无心
2023年尽量不摆烂
展开
-
SQL Server 多维数据集无法部署的可能解决办法
防火墙,记得检查一下防火墙SQL Server Browser 服务未启动,安装时默认禁止,需要去 services.msc 里确认一下是否正确启动用户’NT Service\MSSQLServerOLAPService’登录失败可以参考:https://blog.youkuaiyun.com/weixin_44293498/article/details/105180822...原创 2022-03-19 00:31:00 · 1512 阅读 · 0 评论 -
Windows Docker Desktop 无法启动报错 Docker Desktop is shutting down 的可能解决办法
之前有一次 docker 启动到一半的时候电脑蓝屏了,电脑重启之后 docker 就无法启动了,一直报错 Docker Desktop is shutting down。网上查了一下,发现一个可能的解决办法,删除 AppData\Roaming\Docker\settings.json,然后就能正常启动。不过我看了一下 docker 的启动日志,发现有个叫 locked-directories 的文件好像有点问题,所以我索性直接把整个 AppData\Roaming\Docker 目录删了,然后立刻就好了原创 2022-03-16 13:02:32 · 14784 阅读 · 6 评论 -
axios 下载图片和 JSON 出现乱码的可能解决办法
用 axios 下载文件已经是个老生常谈的话题了,但是仍然还是会有一些小坑。本文简单说说使用 axios 下载图片和 JSON 出现乱码时可能的解决办法。没有正确设置 responseType,需要在请求头中正确设置 responseType。构造 Blob 时没有指定正确的 type。通常服务端会返回二进制流,如何正确接受二进制流是个问题。直接贴代码吧,这段代码的通用性会稍好一些,只不过使用了 ES6 以后的语法,需要处理:const {data: imageBlob, headers} =原创 2021-12-29 17:27:27 · 1635 阅读 · 0 评论 -
Python raw string并不是“原始”字符串
前两天处理字符串的时候,因为需要做一些字符转义,比如说要把原字符串中所有的单引号前面加个反斜杠,给反斜杠前面再加个反斜杠啥的。一开始想着是这么写:s.replace("'", "\\'").replace("\\", "\\\\")后来觉得反斜杠太多了,实在不太美观,就想着能不能用raw string来代替:s.replace(r"'", r"\'").replace(r"\", r"\\")但是这个是会报错的,而且还是语法错误,SyntaxError: unexpected character原创 2021-07-19 09:49:06 · 705 阅读 · 0 评论 -
Vue项目使用terser-webpack-plugin打包报错TypeError: Cannot read property ‘javascript‘ of undefined的原因和可能的解决办法
最近滚回去干老本行了,写了一点前端;重新写前端的感觉还是有点陌生。废话不说了,直接进入正题。复制了之前的配置文件然后建了一个新项目,按照惯例,过程管理的工具可以没有,但是关乎性能的压缩工具是不能没有的。全部准备好了之后却发现无法打包,报了标题里的这个错。网上查了一下,发现直接 npm install -D terser-webpack-plugin 装的是最新版的 terser-webpack-plugin,版本是 5.1.4(截止写这篇文章的时候)。5.x是为webpack 5准备的插件,而使用vue原创 2021-07-08 10:32:33 · 5278 阅读 · 0 评论 -
python字符串format报错KeyError的可能原因和解决办法
虽然说Python现在有f开头的字符串用来格式化了,但是出于习惯,以及在部分场景下,比如需要混合使用原始字符串(raw string)的时候,感觉还是format函数好用。这次写的时候遇到了奇怪的KeyError。我一开始是这么写的:s = r'''function foo() { printf("{}");}'''.format(arg)但是这样会报错。后来发现,因为format自己用大括号作为占位符,如果字符串里本身有大括号,还得转义一下。具体怎么转义,就是用两个大括号,所以应该改成原创 2021-06-03 21:26:22 · 9637 阅读 · 2 评论 -
在 spring cloud config server 中使用 ssh 连接 git 仓库
最近没怎么写博客,短期内可能也不怎么写了,主要是因为改行了,我也没想到有一天会去做科研。等这个微服务项目结束后,我可能就会暂时告别业务开发;思之不免有些唏嘘。也许我可以在这里记录我的科研心得。但是科研笔记这种东西,也不是我藏私,实在是不知道从何写起,零零碎碎的一些感想,拿出来分享也没啥用,不能落地的想法也就是想法罢了;而能落地的想法全部都体现在论文里了。他日我若有幸发表论文,将在此敬告诸君,分享我的快乐。因为用 username 和 password 连接git仓库的方式不是很好(主要是经常会不小心原创 2020-11-14 21:09:58 · 1258 阅读 · 1 评论 -
docker运行容器报错standard_init_linux.go:211: exec user process caused “exec format error“的可能解决办法
这个问题主要是由不兼容引起的。主要包括几种不兼容:硬件架构不兼容。在 amd 和 arm 架构下构建的镜像很有可能不能互通。解决办法:针对不同的硬件架构构建不同的镜像,或者构建跨架构(multi-arch)的镜像。shell 执行不兼容。脚本可能是基于 bash 写的,不同的 shell 解释器存在不兼容的情况,而有些 Linux 发行版可能没有 bash,或者默认的 shell 解释器不是 bash。解决办法:在 shell 脚本的开头指定需要使用的解释器,比如#!/bin/bash,并且原创 2020-10-18 15:45:43 · 34295 阅读 · 0 评论 -
spring boot + feign + eureka部署后服务无法调用的可能解决办法
接着前面两篇继续。在本地部署运行正常之后,我把 eureka server 和 provider 部署到了服务器上。然后之前出现过的错误又再次出现了……按照顺序去排查,首先是网络不对,请求被发到了一个莫名其妙的网络上(参考之前 docker 莫名其妙把 hosts 改掉的事情),发现 eureka 默认会把请求发到服务的 hostname 上,这个行为有好有坏吧,在内网环境下或者有容器网络的情况下是好事,但是在现阶段的零零碎碎的公网 IP 直接调用的情况下就不是很好。所以改一下配置:eureka:原创 2020-09-30 20:11:38 · 1635 阅读 · 0 评论 -
spring boot设置active profiles的一个小坑
传统的配置文件写法是 properties ,但可读性太差,所以最近换成了 yml,并且按照官方文档配置了 profiles,也就是类似于 application-prod.yml 这种不同运行环境下的配置文件。我一开始是这么运行的:java -jar dist.jar -Dspring.profiles.active=prod但是在运行的时候一直不行,总是启动默认的配置。后来看到文档上写的,应该这么运行:java -jar dist.jar --spring.profiles.active=pro原创 2020-09-30 12:13:15 · 1091 阅读 · 0 评论 -
spring boot + feign + eureka报错Load balancer does not have available server for client的可能解决办法
接着上一篇。解决了上一个问题之后,好景不长,又报了一个新错误 Load balancer does not have available server for client。我看网上大部分都说是服务名称写错了,检查一下 feign 里的 name 写得对不对,但我确实没写错。后来发现,eureka 的配置是这样的:server: port: 8000eureka: client: register-with-eureka: false fetch-registry: fal原创 2020-09-30 00:09:07 · 2356 阅读 · 0 评论 -
spring boot + feign + eureka报错java.net.SocketTimeoutException: connect timed out的可能解决办法
身为前端,这次被迫写后端,体验属实不好,到处踩坑。不过有啥办法呢……按照网上的教程配了一个 eureka server,一个 provider ,一个 consumer ,在 eureka 里看两个服务都活得挺好,然后直接调 provider 也能调通,但是从 consumer 里用 feign 调 provider 就是调不通,一直报错java.net.SocketTimeoutException: connect timed out。查了很多资料,一直不行,主要是这个报错也没啥指导意义。后来看到.原创 2020-09-29 23:27:39 · 1772 阅读 · 0 评论 -
Ubuntu 18.04 无法安装docker报错 E: Unable to locate package docker-ce 的可能解决办法
用了个华为云的新服务器,首先是改了一下Ubuntu的镜像源,换了个中科大的(离得近),然后开始配环境。配环境的时候docker一直装不上,报错 E: Unable to locate package docker-ce 。然后看了一下安装过程,发现有这么一段报错:E: Failed to fetch https://mirrors.ustc.edu.cn/ubuntu/dists/bionic/main/binary-arm64/Packages 404 Not Found [IP: 218.104.原创 2020-09-11 21:33:33 · 9669 阅读 · 0 评论 -
记一次前端无法关闭的排障过程
晚上喝了半瓶酒,然后洗了个澡,正在贴地飞行的时候,被隔壁给拽到了地面上:他的前端关不掉了。我说怎么可能呢,啥症状?他说他把前端部署到80端口了,然后无论怎么搞都关不掉,重启了也没用。我说你看看80端口的进程,然后他熟练打出了netstat -ano | findstr 80,结果啥都没有……按理来说这时候就应该意识到问题所在了,但我不太清醒,就随口说了一句,那你把node杀掉呗。然后他找了半天,也没有node……我意识到不对了,我赶紧问他,你这不是dev模式?他说是在本地启了一个nginx,然后把打包原创 2020-08-19 19:48:45 · 522 阅读 · 0 评论 -
tkinter canvas + PIL渲染图片不显示的可能解决办法
这个问题的起因是想做一个文件选择器,选择图片之后用PIL缩放,然后渲染到tkinter的canvas里。然后我写了这么一段代码(为了简化这个问题,文件选择器改用写死的路径代替了):import tkinter as tkfrom PIL import Image, ImageTk# ...canvas_avatar = tk.Canvas(root, width=1800, height=1000) # root是整个窗口ele_avatar = canvas_avatar.create_ima原创 2020-07-13 21:33:09 · 1208 阅读 · 2 评论 -
ImportError: cannot import name ‘deprecated‘ from ‘nltk.internals‘的可能解决办法
看到网上的文章说nltk做分词效果很好,甚至可以完成单词的时态转换,就想着体验一下。安装完了之后,我运行了这段代码:from nltk.stem.wordnet import WordNetLemmatizerwords = ['gave', 'went', 'going', 'dating', 'comes']for word in words: print(WordNetLemmatizer().lemmatize(word, 'v')) # 还原动词但是出现了报错:ImportEr原创 2020-07-09 18:38:17 · 2013 阅读 · 0 评论 -
AttributeError: module ‘nltk‘ has no attribute ‘download‘的可能解决办法
在.py文件里直接运行nltk.download(),会报错:import nltknltk.download()环境是anaconda 3。后来看到有人说,不能在.py文件里直接运行,而应该在Jupiter Notebook或者命令行运行。所以,我用命令行试了一下:C:\Users\Administrator>pythonPython 3.7.7 (default, May 6 2020, 11:45:54) [MSC v.1916 64 bit (AMD64)] :: Anacon原创 2020-07-09 18:19:55 · 4714 阅读 · 3 评论 -
C++使用greater报错‘this‘ argument has type ‘const xxx‘, but method is not marked const的解决方案
使用STL的时候难免遇到需要自己定义排序函数的时候,这时候greater和less就能起到很大作用。但之前排序的对象都是基本类型(或者基本类型的容器),这次要给自定义类型排序,就遇到了问题。比如,我有这么一个场景,我想要给二维空间里的点做一个优先队列,从大到小排个序;所以我先定义一个Point类。因为需要进行大于的比较,所以我重载一个>运算符:class Point{ int val, x, y; Point(int val, int x, int y) : val(val),原创 2020-07-03 11:19:36 · 6480 阅读 · 0 评论 -
创建WebService Client报错/com/sun/tools/xjc/reader/xmlschema/bindinfo/binding.xsd的解决方案
有两个想吐槽的吧,第一个是我身为一个前端,都一年多没写过Java了,到头来还是躲不过去;第二个是网上以讹传讹的人太多,而且越传越错。sigh。报错的大概内容是/com/sun/tools/xjc/reader/xmlschema/bindinfo/binding.xsd; lineNumber: 52; columnNumber: 88; schema_reference: …(一堆乱码) accessExternalSchema’xjc.xsd’先说版本,我这里是JDK 8u201。其实很简单,在原创 2020-06-03 15:43:14 · 913 阅读 · 0 评论 -
element-ui表单验证,value一直为undefined的一种可能解决方案
有很多人遇到过这个问题,但是一般都是因为prop没写对,或者没有在data里声明;但我遇到的情况这两者都不是。代码如下:<template> <el-form :rules="rules"> <el-form-item prop="value"> <el-input v-model="form.value"/> &l...原创 2020-04-18 16:59:39 · 17627 阅读 · 15 评论 -
TypeScript按模块引入d3报错div.transition() is not a function的解决方案
一般来说,直接导入整个d3,我们会这么写:import * as d3 from 'd3';这样,我们就可以像在js里一样,使用熟悉的d3.select了。但是因为不想一次性导入整个d3给项目增加大小,所以我就对d3进行了按模块导入:import * as d3 from 'd3-selection';这个其实也不影响select,但是因为我想给一个div增加transition的效...原创 2020-04-02 10:31:01 · 3218 阅读 · 0 评论 -
使用spring-data-jpa进行count时报错No property count found for type xxx的解决方案
在用spring做count查询的时候,遇到了一个有点诡异的报错。首先,这里有一张表:CREATE TABLE t_user ( user_id INT AUTO_INCREMENT PRIMARY KEY, user_name VARCHAR(30), password VARCHAR(32));是一张很普通的数据表,并没有任何奇怪的地方。然后,配置好JPA之后(...原创 2020-03-19 16:58:24 · 1258 阅读 · 2 评论 -
docker部署nuxt项目报错“读取文件头错误 (连接被对方重设)”的解决方案
症状是这样,在服务器上手动运行是可以的,也可以访问localhost:3000,但打包放进docker里启动之后就不行了,虽然能ping通,但是会一直报错“读取文件头错误 (连接被对方重设)”。看了很多文章,大概原因是host不对,或者是代理的问题。查找之后,发现原因是Dockerfile里没有明确host和port,导致host发生了错误。贴一份可用的代码,我把构建后nuxt放到了/opt/a...原创 2020-03-16 15:29:41 · 3056 阅读 · 0 评论 -
将数组分成和相等的三个部分,以及maven报错“找不到或无法加载主类”
这两个确实是风马牛不相及的东西,但是在等待SQL脚本运行的时候做一道算法题,似乎也没什么问题(笑)。先说maven的事情。因为是前端,平时不写Java,遇到这个熟悉的报错居然有点不知所措……用的是IDEA,检查project structure之后发现没有问题,然后看看target里生成的class,发现没有对应的class文件,也就是说没build成功,也不知道为啥。maven clean之后...原创 2020-03-11 09:30:11 · 225 阅读 · 0 评论 -
@vue/cli创建项目报错ERROR Failed to get response from /vue-cli-version-marker的解决方案
致谢:优快云@beeegood提供的问题。今天他们遇到一个很有意思的bug,用@vue/cli创建项目的时候报错了,还是个从来没见过的报错:一开始以为是版本问题,毕竟报错信息上写着update,但是cli的版本是最新的,而且询问之后,node和npm版本也是最新的(12.16.1,截止我写这篇文章的时候是最新的);最要命的是,也没有老版本的vue-cli……这就非常有意思了。按照惯例...原创 2020-02-26 20:31:08 · 20034 阅读 · 19 评论 -
Vue 2.x 子组件删除时使用setTimeout导致splice数组元素后视图没有正确更新的解决方案
在实际业务中,经常会有这样的场景:一堆消息卡片。比如:对于这种情况,在Vue里,我们一般都会封装一个Card组件,然后在父组件中用v-for进行渲染。以下是一个随手写的例子(也可以在https://codesandbox.io/s/great-field-x95lw?fontsize=14&hidenavigation=1&theme=dark查看):// App.vue&...原创 2020-02-22 21:14:18 · 781 阅读 · 0 评论 -
Ubuntu 16.04 + MySQL 8.0-由The driver has not received any packets from the server引发的一系列错误,以及最后的解决方案
按照惯例,遇到Linux相关的问题先说系统版本,我用的是Ubuntu 16.04。事情的起因是这样的,把打了个jar包扔上服务器,然后nohup java -jar运行,本来一切正常(之前一直都很正常),但这次报了个没见过的错:The driver has not received any packets from the server。网上查了一下说是连接超时,然后我就想着打开MySQL去...原创 2020-02-09 22:23:24 · 1502 阅读 · 0 评论 -
TS2339: Property does not exist on type 'CombinedVueInstance<Vue, unknown, ...>'的解决方案
Vue + TypeScript的项目里,在watch里使用data里定义的数据的时候,发现类型消失了,出现了这个报错:TS2339: Property does not exist on type 'CombinedVueInstance<Vue, unknown, unknown, unknown, Readonly<{ ... }>>'。查了一些资料之后,发现是因...原创 2020-02-08 23:59:58 · 18133 阅读 · 0 评论 -
ElementUI el-select绑定对象报错<transition-group> children must be keyed: <ElTag>的解决方案
症状是选择的时候会同时选取所有的选项,同时控制台报错<transition-group> children must be keyed: <ElTag>。简而言之,是因为没有指定el-select的value-key属性,或者没有正确指定el-select的value-key属性。按照官网的说法:如果 Select 的绑定值为对象类型,请务必指定 value-key ...原创 2020-02-05 18:15:45 · 21958 阅读 · 4 评论 -
TypeScript模块扩展变成覆盖原模块的解决方案
之前写过和TS模块机制有关的问题,联想到遇到的一个“奇怪”的问题,在扩展VantUI的类型声明时,曾经遇到这样一个问题,如果这么写,就能正确扩展模块:// src/shims-vant.d.tsimport { VanComponent } from 'vant/types/component'declare module 'vant' { export class Calendar ...原创 2020-01-29 11:10:16 · 4972 阅读 · 0 评论 -
TS2669: Augmentations for the global scope can only be directly nested in external modules...的解决方案
看了网上不少资料,大多以讹传讹,完全不能用;因此查阅文档解决了之后记录一下。问题的场景是这样的,做一个Vue + TS的项目,需要引入一些UMD库(需要在HTML中通过<script>标签引入)。以高德地图为例,它的文档是这样的:在页面添加 JS API 的入口脚本标签,并将其中「您申请的key值」替换为您刚刚申请的 key;<script type="text/java...原创 2020-01-29 10:20:15 · 5950 阅读 · 0 评论 -
string超出内存限制:C++ string的operator+=、operator+、append与push_back
沉寂了很久,从今天开始重操旧业,做点题啥的,一方面是比较功利性的,另一方面……好吧确实是比较功利性的,没什么特殊的原因。今天遇到了一个很有意思的问题:string超出内存限制。题目其实很简单,也没什么太多的坑;虽然说测试用例里的字符串确实很大,但理论上来说是不应该出现这个问题的,并且我在本地测试也没有问题(本地是MinGW的g++)。后来发现问题出在这里,比如我要实现一个字符串反转(以下是示...原创 2020-01-26 19:59:22 · 2441 阅读 · 1 评论 -
Centos7 SSH服务无法启动报错sshd.service failed的解决方案
因为我这里是虚拟机环境,所以和网上遇到的问题还不太一样。我看很多人遇到的问题,要么是防火墙没开,22端口被挡了,要么是没有ssh密钥加密不通过的,甚至还有某些配置文件被莫名其妙修改的……不过我这里的报错和他们都不一样,用journal -xe看一下,我这里的报错是这个:could not load host key dsa key。其实看到这个报错的时候,我还是挺惊讶的:Centos不是一直以...原创 2019-11-03 09:07:34 · 17358 阅读 · 0 评论 -
unable to load the file system codecModuleNotFoundError: No module named 'encodings'的解决方案
早上起来打开VSCode,发现某个插件炸了……明明昨天还好好的。还好这个插件提供了Debug功能,打开控制台(我今天才知道VSC有一个长得很像Chrome的控制台,当真是孤陋寡闻了),提示如下:Fatal Python error: Py_Initialize: unable to load the file system codecModuleNotFoundError: No module ...原创 2019-10-26 09:13:57 · 3972 阅读 · 2 评论 -
Shell test字符串比较恒为真的bug
这个bug说大不大,说小不小,但是很烦人。第一天写shell就搞出这种问题来……其实说穿了还是shell对空格的要求很高。接触的上一个对空格要求这么高的语言是Python。环境是RHEL8。具体情况是这样的:[ 'abcd'!='abcd' ]echo $?# 0理论上应该输出1才对,这两个字符串明明是完全相同的。一开始我觉得是不是堆引用的问题,比如字符串常量引用了堆里的不同位置,后来...原创 2019-06-30 22:10:07 · 500 阅读 · 0 评论 -
Execution failed for task ':app:transformDexArchiveWithExternalLibsDexMergerForDebug'的解决方案
按照官方文档的流程走了一遍,莫名其妙就报了这个错。网上查了一圈,有说是因为用户目录里含有中文字符(准确来说是非ACSII字符),然后我就去改了一下,但是并没有解决。后来我发现我的报错跟他们的不同之处在于,同样是这个错误,但指向的路径不同。我的报错显示的是/android/app/build/intermediates/transforms/dexBuilder/debug/196这个目录找不到,...原创 2019-07-11 11:40:21 · 1121 阅读 · 0 评论 -
《Web开发权威指南》配套资源
事实证明,即使是不写文档,也比错误的文档造成的危害小。原创 2019-07-28 22:16:49 · 354 阅读 · 1 评论 -
tsc编译错误'error TS1008: Unexpected token; 'module, class, interface, enum, import or statement' expect
其实归根结底是ts的版本问题。原创 2019-07-19 13:38:16 · 2500 阅读 · 0 评论 -
Linux tar命令选项顺序不同导致"Exiting with failure status due to previous errors"
按照惯例,遇到Linux的问题先说环境:我用的是Centos 7.6。今天遇到了这样一个问题,改变tar命令的选项顺序后,会报错”Exiting with failure status due to previous errors“,但是还是会创建一个普通格式的压缩文件:# 假设我们所在的目录下有一个目录叫test,test里面有一个叫test.test的文件tar -cvfz test.t...原创 2019-07-02 23:01:14 · 10839 阅读 · 1 评论 -
TypeScript显式赋值断言导致Vue属性非响应
所谓的“显式赋值断言”,其实就是!:运算符。这是TypeScript 2.7引入的特性,可以参考TypeScript官方文档。不过还是建议看一下英文的文档,更准确一点。我必须吐槽,中文文档居然删掉了一部分原文。最过分的是,中文文档甚至删去了官方给出的一些用法!不知是何居心?这次遇到的问题是Vue的计算属性不触发。计算属性不触发的原因想必大家都很清楚,无非是属性没有更新(避免重复计算以提高性能)...原创 2019-05-21 00:20:13 · 1679 阅读 · 3 评论