- 博客(43)
- 资源 (14)
- 收藏
- 关注
原创 webstorm批量编辑快捷键
https://blog.youkuaiyun.com/u012632105/article/details/106786923/
2025-01-13 17:03:10
151
转载 Linux chmod命令
hadoop-2.5.2/share/hadoop/yarn/lib: 将hadoop的jline-9.9.94.jar替换为jline-2.12.jar。sudo tar -zxvf ./hadoop-2.6.0.tar.gz -C /usr/local # 解压到/usr/local中。sudo mv ./hadoop-2.6.0/ ./hadoop # 将文件夹名改为hadoop。hive-env.sh.template hive-env.sh默认配置。
2024-12-13 09:33:07
25
原创 Nodejs解压缩具体方法 Adm-zip
https://blog.youkuaiyun.com/gitblog_00207/article/details/141381310
2024-11-04 17:27:00
453
原创 Vue-Electron初始化项目及打包
其实就是本文的核心重点,一开始要么是报Electron安装错误,要么就是nsis有问题,我们需要配置npmrc。因为我用的是iview,打包后所有的icon都丢了。然后其实就可以运行项目了,我们选择用yarn。vue.config.js增加这三行代码。提供完整的vue.config.js。则会在demo目录下创建Vue项目。
2023-09-26 11:31:07
561
原创 Nodejs压缩图片实现方案
并没有在npm里列出,需要访问github,目前选择使用sharp 0.31.2版本。并且在.npmrc里面配置镜像源。因为sharp有额外的依赖项。图片压缩的大小可以自己选择。
2023-09-05 15:05:51
523
原创 Mongoose 设置Mongo集合的索引
意思是某个元素的值如果为空,则不进行唯一值的判断。比如某字段即可以是选填字段,又必须唯一,在不填的时候Mongo会默认为null,如果不进行稀疏索引判断,两个null就是不唯一了。Mongoose是在程序启动时统一添加索引,如果原来的表里数据不符合唯一性,则无法添加unique索引,需要先解决冲突。同时要记得先解决冲突再重启服务,直接添加数据无法成功建立索引。唯一索引,可以保证整个集合某个字段只有唯一值。index就是索引,是增加查询效率的。这样设置完之后,就会自动建立索引。
2023-05-26 15:09:44
828
2
原创 WebStorm安装插件启动后报错问题
我是在安装activate-power-mode的时候重启报错了,webstorm无法安装,并且报了很多Java的问题。如果插件没有成功安装,在这个目录下会有jar包,把对应的删除即可。同时要用这个模块,老的不行了。
2023-03-14 16:53:01
1025
2
原创 用Nodejs unzip解压巨大的压缩包文件 child_process spawn exec
这是因为exec函数有个默认的缓冲区大小,大约是200KB,我们可以通过设置maxBuffer去解决问题,但不能彻底解决。因为仍不知道文件到底有多大,文件列表是不是能正常返回。是指定运行的环境,否则会报下图的错误,意思是找不到可执行的unzip命令。这也是我工作中遇到的一个问题,通过。更多是返回一个执行的结果。适合返回所有的数据,
2023-03-14 10:15:55
531
原创 SQL语句面试题整理-四年经验
面试中偶尔会要求我们写SQL,而工作中其实未必写的很难,我是完全不会复杂SQL,这个时候我们稍微复习下就好。这篇博客直接给题目和答案,原理啥的没必要分析了,面试能回答就回答,我个人觉得面试问SQL,问的很深的多半是外包。大家不要过分关注表名和结构,主要看SQL大概怎么写就行了。
2023-01-19 10:06:37
2419
3
原创 MongoDB面试题整理-四年经验
MongoDB是一个文档数据库,提供好的性能,领先的非关系型数据库。采用BSON存储文档数据。BSON()是一种类json的一种二进制形式的存储格式,简称Binary JSON.相对于json多了date类型和二进制数组。
2023-01-16 07:09:12
5549
原创 Redis面试题整理-四年经验
master就会启动一个线程,生成RDB快照,还会把新的写请求都缓存在内存中,RDB文件生成后,master会将这个RDB发送给slave的,slave拿到之后做的第一件事情就是写进本地的磁盘,然后加载进内存,然后master会把内存里面缓存的那些新命名都发给slave。比如可以通过 lrange 命令,读取某个闭区间内的元素,可以基于 List 实现分页查询,这个是很棒的一个功能,基于 Redis 实现简单的高性能分页,可以做类似微博那种下拉不断分页的东西,性能高,就一页一页走。或者是异步更新失败导致。
2023-01-15 14:28:42
787
原创 操作系统面试题整理-四年经验
管道(pipe)及命名管道(named pipe): 管道可用于具有亲缘关系的父子进程间的通信,有名管道除了具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;
2023-01-14 20:52:09
594
原创 MySQL面试题整理-四年经验
默认情况下事务每次提交的时候都会刷事务日志到磁盘中,这是因为变量 innodb_flush_log_at_trx_commit 的值为1。真实的情况是,3层的b+树可以表示上百万的数据,如果上百万的数据查找只需要三次IO,性能提高将是巨大的,如果没有索引,每个数据项都要发生一次IO,那么总共需要百万次的IO,显然成本非常非常高。1.redo log通常是物理日志,记录的是数据页的物理修改,而不是某一行或某几行修改成怎样怎样,它用来恢复提交后的物理数据页(恢复数据页,且只能恢复到最后一次提交的位置)。
2023-01-14 20:47:36
769
原创 数据结构面试题整理-四年经验
右半边的当前元素大于左半边的当前元素,则取左半边的元素。排序算法如果是稳定的,那么从一个键上排序,然后再从另一个键上排序,第一个键排序的结果可以为第二个键排序所用。看实现方式,如果是只记录出现的次数,最后自己组数组,则不稳定,但如果是看到有存在的元素,将元素取出来,那就是稳定的。栈也可以实现浏览器的前进后退,前进的时候在后退栈压入数据(同时可能需要出栈),后退的时候出栈,入前进栈。如果此数据之前已经被缓存在链表中了,我们遍历得到这个数据对应的结点,并将其从原来的位置删除,然后再插入到链表的头部。
2023-01-14 20:44:12
352
原创 计算机网络面试题整理-四年经验
http是无状态的,也就是后续处理无法处理之前的信息。处理办法有Cookie,Section会话保存,甚至可以用数据库和缓存处理。
2023-01-14 20:35:03
513
2
原创 Node.js面试题整理-四年经验
/函数声明 function f() {... } //函数引用 var f = function() {... }其实没什么卵用的知识。//能够正常调用,由于引擎会提早扫描代码,将该函数存储到函数定义区 f();} //报错,由于虽然g也进行了变量提高,但此时g的值是undefined,不能调用 g();
2023-01-14 20:18:25
1826
原创 MongoDB 聚合查询详解
因为前面最基础的大家肯定都会,现在就试着先从表A查询某些数据,再把某些数据从表B查询填充。根据filename分组 其中ROOT是指把所有东西都放到detail里面。就是从表A查询Id字段与表aaa的_id字段匹配,查询的结果集是Info。match可以看做是find时候的查询条件,可以先从表A查询到数据。首先肯定是使用Mongo的Aggregate方法。这样结果就只有filename了,要什么加什么。最后这些东西放在开头的数组里面执行即可。和正常的limit用法是一样的。必须加$符号以表示这个是变量。
2022-12-01 17:15:45
642
1
原创 Nodejs EventEmitter 发送信号重复问题排查
当我们想用单例类的时候,可以,但是如果是需要多个实例的,那就必须要,在使用的时候再new出来。
2022-10-24 17:03:51
359
原创 Nodejs.js源码解析 一:项目的入口点
这个Start方法,是在node.h里有声明,所以继续看node.cc 的Start方法,就能找到函数了。我们可以看到,这里调用的是node这个命名空间的Start,而在这之前其实是做了一些变量字符转换的操作。在src目录下我们找到node_main.cc 就是整个项目的入口点了。因为Nodejs是C++编写的,所以执行程序里一定会有主函数。下一篇文章会具体讲述这个Start方法做了什么事情。
2022-09-23 17:08:53
1207
原创 Js获取外网IP地址
业务中要理清逻辑,后端是没有办法直接帮前端去获取前端的外网ip的,因为这个外网ip是指的前端的计算机,后端只能通过header里面的信息进行处理,而k8s或者Nginx进行反向代理或类似处理,篡改成内网ip的话,就需要前端自行获取ip了。一般是请求的header进行获取,x-real-ip ,x-forwarded-for ,clientip,这三个值,取不到前面的取后面的,就可以了。一般来说前端是不能获取自己的本机外网ip的,而是请求了别人的服务,服务端可以告诉前端他的Ip地址是多少。
2022-09-09 14:05:30
2098
原创 后端工程师面试 看这一篇文章就足够了
一、Node.js语言部分I.语言基础1.闭包的原理函数就是一个闭包,js的特点是可以在函数内部创建另一个函数。js可以在函数内用外部的变量,所以自然而然产生的闭包概念。function foo(){ var local = 1 function bar(){ local++ return local } return bar}var func = foo()func()在内部的那个函数可以引用外部的变量,但同时这个变量也无法被销毁,有消耗内存的风险。块
2022-03-12 14:35:45
2030
原创 Electron 数据存储详细教程 Electron-store使用
Electron如何进行数据存储?首先不是通过数据库的存储方式,因为一般的软件不会在本地建立数据库,而且这样也有数据丢失的风险,这篇教程主要是讨论轻量化的数据存储。Electron的特殊性Electron运行的时候似乎封装了一些东西,导致它读取文件不像Java,Python或者Nodejs那样简单,会出现权限的问题,这个时候就需要通过工具来解决了。Electron-store的使用)npm地址const Store = require('electron-store');const stor
2022-02-15 10:52:04
9125
2
原创 开源组件iview的Tabs组件嵌套使用
问题设计软件的时候需要嵌套Tabs,即大的Tabs里面嵌套小的Tabs,效果图如下:iview的官方文档但是有个问题,大家容易遗漏下面一层描述:这里 tab属性才是最关键的地方!所以代码如下:<Tabs name ="sub-tab" type="card" value="headers"> <TabPane label="headers" name="headers" tab="sub-tab"> <Input v-model="
2022-02-10 15:57:32
1622
原创 Electron打包简易教程
一、工具选用electron-packager 或electron-builder都可以,但个人还是更喜欢electron-packager二、命令electron-packager . Tal --platform=darwin --arch=x64 --icon=./Tal.ico --out=./out --app-version=0.01 --overwrite这条命令是在当前目录下进行打包,打包的平台是MacOS,x64架构,然后设置了版本号,ico图片,输出目录。overwrite则是会
2022-01-07 10:51:22
7720
4
原创 Java HashMap浅析
一、什么是HashMapHashMap是一个通过键值对存储数据的容器,所谓容器就是能够自动扩容的存储工具。我之前一直很好奇为什么叫Map,不是地图的意思吗?查了一下字典终于是明白了,这里的Map应该翻译成——映射。二、原理1.构造HashMap构造的时候会有默认的初始容量16,以及扩展因子,默认是0.75。数据存储的比例达到扩展因子之后,HashMap就会扩充,增加大小是2倍,和C++的Vector类似。长度小于8的时候是链表,后面就会转为红黑树存储。2.modCount大概就是HashMap的
2022-01-04 16:53:55
379
1
原创 著名压测工具webbench源码解析
项目概述Webbench是用的标准C语言编写,仅仅只有500多行代码的轻量级压测软件。用到的技术有:Linux提供的运行时参数解析,多进程,服务器通信,管道。github地址:wenbbench项目整体流程1.解析程序运行时的参数。2.根据选择的http协议组装报文。3.开始压力测试。4.获取压力测试的结果。1.解析程序运行时的参数其实这就是传说中的argc argv[],不过程序在此处用到了C语言的getopt_long函数。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下
2021-12-21 16:17:40
478
原创 搭建hugo博客的详细方法
主要步骤如下安装hugo配置github发布hugo安装其实还是非常曲折的过程,原本官方都是推荐用brew install hugo的方式来进行安装,然而国内的网络环境实在是非常不方便。最好的方式,还是去github慢慢下载。也可以从我的码云下载hugo。hugo version可以查看hugo的版本,有显示就正常了。如果是通过下载可执行程序来安装的hugo,那就得去.bash_profile配置一下环境变量。hugo的具体使用建立博客hugo new site xx
2021-12-21 14:18:12
762
原创 如何在github高效地搜索开源项目
概述本文讲述如何在github的搜索栏找到自己想要的项目。重点无非如下:项目名项目概述star数提交时间(活跃度)编程语言用法项目名in:name xxx通过如下命令,可以搜索名字里带xxx的项目。star数stars:>xxx可以搜索star数大于xxx的项目。fork数forks:>xxx同理搜readmein:readme xxx可以在项目的readme文件里,搜索包含某字符的项目,一般可以用来搜某些用到本技术
2021-12-21 14:14:49
356
原创 用shell脚本实现git项目自动(定时)更新
背景我在学习开源项目的过程中,会囤积不少的开源项目,因此也就需要用一个便捷的脚本进行管理,对开源项目进行自动同步。环境设置macOS或者Linux都可以,通过shell脚本实现脚本#/bin/bashOpensource=/Users/hideyoshi/Desktop/OpenSource#切换到开源项目根目录cd ${Opensource}currentpath=$(pwd)echo "currentpath is :$currentpath"rm -f /Users/h
2021-12-21 14:13:18
2593
原创 23种设计模式归纳
设计模式的定义软件设计模式(Design pattern),又称设计模式,是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。开闭原则:鼓励扩展,但拒绝(或不推荐)修改。比如BFF中经常出现v2,v3的函数。设计模式的分类总体来说设计模式分为三大类:创建型模式,共五种:工厂方法模式、抽象工厂模式、单例模式、建造者模式、原型模式。结构型模式,共七种:适配器模式、装饰器模式、代理模式、外观模式、桥接模
2021-12-21 14:11:10
298
原创 wrk使用极简教程
介绍Wrk是一款用C语言编写的轻量化压测软件,采用多路复用的方式进行压测,对机器的性能要求比Jmeter更低。安装git clone https://github.com/wg/wrk.git;cd /wrk;make;命令wrk -t5 -c100 -d 5s -s ./menu_detail.lua 'http://127.0.0.1:3000t: 线程数 一般不宜太高c: 连接数d: 持续时间–timeout:超时时间 不设置就默认2s-s带脚本执行
2021-12-21 14:03:08
750
原创 解决goland代码全部莫名报错 找不到依赖的问题
我遇到的问题是:代码在一台电脑上完全能够运行切到另一台电脑,git pull之后,代码依旧能运行,但goland识别到依赖全部报错,找不到各种依赖。go mod download未能解决问题,因为代码能跑,说明第三方包都安装了。解决方案:清除goland的缓存,重启后就修复了。...
2021-05-04 19:56:20
4816
原创 前端实现选择文件夹功能 并获取文件夹名 input webkitdirectory
我们都知道input标签type="file"的时候,会打开一个文件选择器,但并不支持选择目录。如果要支持选择目录,且必须只是目录的话,用下列的代码:<input type='file' @change="triggerFile($event)" webkitdirectory>change绑定了一个函数,函数的内容为:triggerFile(event) { let file = event.target.files; console...
2021-04-12 15:31:12
15190
18
用Qt和C++编写的记事本
2019-05-09
linux c消息队列实现
2019-04-02
linux c实现写日志和打开文件读取功能
2019-04-02
K近邻算法(KNN)具体实现
2019-04-02
C++常见八大排序算法
2019-01-24
用C++实现简单的顺序表
2018-12-27
Qt5基于sqlite数据库的学生管理系统
2018-11-29
能实现MD5验证完整性,RSA加密消息,数据库进行登录验证的局域网聊天软件
2018-11-14
C++ Qt5实现RSA加解密
2018-11-14
用C++写的先来先服务实现
2018-04-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人