Posts
My First Post
Introduction This is bold text, and this is emphasized text.
Visit the Hugo website!
Posts
github dnsmasq设置
github dns解析访问异常 现象 github访问时好时坏,github头像不能打开
原因 查询github解析地址是52.74.223.119时可用,13.250.177.223,13.229.188.59等地址是不可用
github头像是githubusercontent.com地址,一样解析后不能访问
解决 本机配置host 52.74.223.119 github.com www.github.com 52.74.223.119 gist.github.com 199.232.28.133 assets-cdn.github.com 199.232.28.133 raw.githubusercontent.com 199.232.28.133 gist.githubusercontent.com 199.232.28.133 cloud.githubusercontent.com 199.232.28.133 camo.githubusercontent.com 199.232.28.133 avatars0.githubusercontent.com 199.232.28.133 avatars1.githubusercontent.com 199.232.28.133 avatars2.githubusercontent.com 199.232.28.133 avatars3.githubusercontent.com 199.232.28.133 avatars4.githubusercontent.com 199.232.28.133 avatars5.githubusercontent.com 199.232.28.133 avatars6.githubusercontent.com 199.232.28.133 avatars7.githubusercontent.com 199.232.28.133 avatars8.githubusercontent.com # 13.229.188.59 github.com www.github.com # 不能访问 # 13.250.177.223 gist.github.com #不能访问 # 13.229.188.59 gist.github.com #不能访问 IP根据地区不同,访问情况也不一样,需要nslookup,dig,tracert,ping等工具测试不同的IP
使用ipconfig /flushdns刷新本地dns缓存
使用https://www.ipaddress.com查询github的IP
使用路由器dnsmasq配置解析 自定义dnsmasq
address=/.github.com/52.74.223.119 address=/www.github.com/52.74.223.119 address=/github.com/52.74.223.119 address=/.githubusercontent.com/199.232.28.133
Posts
golang环境配置
golang 环境配置 下载安装 golang https://golang.google.cn/dl
GO ENV go env #查看环境变量 配置GOPROXY Go version >= 1.13 可以使用go env -w 命令设置
Goproxy.cn中国最可靠的 Go 模块代理。
https://github.com/goproxy/goproxy.cn/blob/master/README.zh-CN.md
go env -w GOPROXY=https://goproxy.cn,direct GO111MODULE环境变量 go module 依赖管理工具
golang提供了一个环境变量GO111MODULE,默认值为auto,如果当前目录里有go.mod文件,就使用go modules,否则使用旧的GOPATH和vendor机制,因为在modules机制下go get只会下载go modules,这一行为会在以后版本中成为默认值,这里我们保持auto即可,如果你想直接使用modules而不需要从GOPATH过度,那么把GO111MODULE设置为on。
在 go1.11 之前,GOPATH是GO项目必备的环境变量,用来存放Go的开发代码和第三方包代码,代码需要按照一定的目录安排。
$GOPATH目录约定有三个子目录
src存放源代码(比如:.go .c .h .s等) 按照golang默认约定,go run,go install等命令的当前工作路径(即在此路径下执行上述命令)。 pkg编译时生成的中间文件(比如:.a) golang编译包时 bin编译后生成的可执行文件(为了方便,可以把此目录加入到 $PATH 变量中,如果有多个gopath,那么使用${GOPATH//://bin:}/bin添加所有的bin目录) go1.11之后,使用go mod依赖管理,不再需要按照$GOPATH约定目录
go mod init dzq #初始化go.mod文件 go mod tidy #自动更新依赖关系 go 命令 go get go get会做两件事:
从远程下载需要用到的包 执行go install go install go install 会生成可执行文件直接放到bin目录下,当然这是有前提的 你编译的是可执行文件,如果是一个普通的包,会被编译生成到pkg目录下该文件是.
Posts
npm配置
npm配置 修改镜像源 安装nrm npm install -g nrm nrm查看镜像源 nrm ls nrm使用镜像源 nrm use taobao nrm测试 nrm test npm npx使用 npx是一种在npm中安装工具,也可以被单独的下载使用
在npm 5.2.0 的时候会自动安装npx。
npx 会自动查找当前依赖包中的可执行文件,如果找不到,就会去 PATH 里找。如果依然找不到,就会帮你安装。
再也不需全局安装任何工具只需要npx <commang> 例如 npx http-server
相关链接https://www.jianshu.com/p/a4d2d14f4c0e
当在执行npx 的时候,npx会做什么事情? 帮你在本地(可以是项目中的也可以是本机的)寻找这个 command 找到了: 就用本地的版本 没找到: 直接下载最新版本,完成命令要求 使用完之后不会在你的本机或者项目留下任何东西 优势总结 不会污染本机
永远使用最新版本的dependency
切换版本 npx的-p选项允许您指定要安装的包,并将其添加到正在运行的$PATH中
当你没有nvm的时候,帮你方便的切换node版本,假设你本机安装的node版本是node@8,但是你的项目可能需要使用使用node@6做测试,如果你有nvm,可以使用nvm use v8.11,其实npx也可以帮你做成。
使用npx -p node@6 npm run test:
npx会帮助你下载node@6 将此时的环境变成node@6版本 使用node@6帮你执行npm run test 命令执行完毕之后不会修改你原来的node版本 指令可以理解为使用node@6版本运行npm run test
npm-check-updates 一键更新 package.json版本
安装 npm install -g npm-check-updates 检查版本 ncu 更新版本 ncu -u fsevents https://github.
Posts
mac 软件工具
MAC 下使用的软件 IINA IINA 播放器
https://www.iina.io
Typora markdown 编辑器
https://www.typora.io
Keycastr 显示键盘输入
https://github.com/keycastr/keycastr
OmniPlan 项目管理工具(收费软件)
https://www.jianshu.com/p/458ee5e81573
Draw.io 在线图表工具
https://github.com/jgraph/drawio
使用 github作存储,在线编辑地址 https://www.draw.io/?mode=github 支持更多的存储
桌面版本下载 https://github.com/jgraph/drawio-desktop/releases FDM下载工具 https://www.freedownloadmanager.org/zh/
proxifier 支持 socket5的代理工具
下载地址
注册码
balenaEtcher 镜像写入工具
https://www.balena.io/etcher/
Disk Speed Test 硬盘速度测试工具
The Unarchiver 解压工具
https://theunarchiver.com
Atom 文本编辑器
https://github.com/atom/atom
Tunnelblick OpenVPN 客户端
https://tunnelblick.org/downloads.html
https://github.com/Tunnelblick/Tunnelblick
Snipaste 截图贴图软件
软件推荐列表 Snipaste 「截图贴图软件」 Magnet「桌面窗口整理软件」 BetterZip「桌面窗口整理软件」 IINA「超好用的播放器软件」 Downie3「从数千个不同的站点轻松下载视频」 Paste「剪贴板神器」 Text Scanner「将图片上的文字内容,直接转换为可编辑文本」 ScreenFlow「MacOS苹果系统独占的最好的屏幕录像和视频编辑软件」 Aimersoft video Converter Uitimate「转码软件」
Posts
JVM设置
JVM 设置 查看 JVM 相关命令 查看整个 JVM 内存状态 jmap -heap [pid] 要注意的是在使用 CMS GC 情况下,jmap -heap 的执行有可能会导致 JAVA 进程挂起
查看 JVM 堆中对象详细占用情况 jmap -histo [pid] 导出整个 JVM 中内存信息 jmap -dump:format=b,file=文件名 [pid] jhat jhat 是 sun 1.6 及以上版本中自带的一个用于分析 JVM 堆 DUMP 文件的工具,基于此工具可分析 JVM HEAP 中对象的内存占用情况
jhat -J-Xmx1024M [file] 执行后等待 console 中输出 start HTTP server on port 7000 即可使用浏览器访问 IP:7000
eclipse Memory Analyzer Eclipse 提供的一个用于分析 JVM 堆 Dump 文件的插件。借助这个插件可查看对象的内存占用状况,引用关系,分析内存泄露等。 https://www.eclipse.org/mat/
kill -3 [pid] 在 Linux 上找到 Java 所在的进程号,然后执行以上命令,线程的相关信息就输出到 console
Posts
编译安装nginx-1.10.1
nginx nginx 1.8 不支持 tcp 转发 ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=../pcre-4.4 --with-zlib=../zlib-1.1.3 nginx 1.9 以后支持 tcp 转发 ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/nginx --conf-path=/usr/local/nginx/nginx.conf --pid-path=/usr/local/nginx/nginx.pid --with-http_ssl_module --with-pcre=../pcre-4.4 --with-zlib=../zlib-1.1.3 --with-stream --with-stream_ssl_module --with-http_slice_module 下载地址 https://nginx.org/en/download.html
文档地址 https://nginx.org/en/docs/
编译安装 nginx-1.10.1.tar.gz 环境准备 yum -y install gcc gcc-c++ autoconf automake libtool make yum -y install openssl openssl-devel 下载 nginx-1.10.1.tar.gz https://nginx.org/download/nginx-1.10.1.tar.gz
cd ~ wget https://nginx.org/download/nginx-1.10.1.tar.gz 下载 pcre-8.39 ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/
wget ftp://ftp.csx.cam.ac.uk/pub/software/programming/pcre/pcre-8.39.zip 下载 zlib-1.2.8 https://zlib.net/fossils/
wget https://zlib.net/fossils/zlib-1.2.8.tar.gz 解压 nginx pcre zlib tar -zxvf nginx-1.
Posts
JavaScript中if语句的几种优化代码的写法
一、常见的三元操作符 代码如下:
if (foo) bar();else baz(); ==> foo? bar(): baz(); if (!foo) bar();else baz(); ==> foo? baz(): bar(); if (foo) return bar();else return baz(); ==> return foo? bar(): baz(); 二、使用 and(&&)和 or(||)运算符 代码如下:
if (foo) bar(); ==> foo && bar(); if (!foo) bar(); ==> foo || bar(); 三、省略大括号 代码如下:
if (foo) return bar(); else other(); ==> {if (foo) return bar();other()}
Posts
JavaScript中的json数组操作
在 jquery 中处理 JSON 数组的情况中遍历用到的比较多,但是用添加移除这些好像不是太多。 今天试过 json[i].remove(),json.remove(i)之后都不行,看网页的 DOM 对象中好像 JSON 数据是以数组的形式出现的,查阅了下相关 JS 中数组的操作一试果然很爽。 记录下来。
数组的创建 var arrayObj = new Array(); //创建一个数组 var arrayObj = new Array([size]); //创建一个数组并指定长度,注意不是上限,是长度 var arrayObj = new Array([element0[, element1[, ...[, elementN]]]]); //创建一个数组并赋值 要说明的是,虽然第二种方法创建数组指定了长度,但实际上所有情况下数组都是变长的,也就是说即使指定了长度为 5,仍然可以将元素存储在规定长度以外的,注意:这时长度会随之改变。
数组的元素的访问 var testGetArrValue = arrayObj[1]; //获取数组的元素值 arrayObj[1] = '这是新值'; //给数组元素赋予新的值 数组元素的添加 arrayObj. push([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组结尾,并返回数组新长度 arrayObj.unshift([item1 [item2 [. . . [itemN ]]]]);// 将一个或多个新元素添加到数组开始,数组中的元素自动后移,返回数组新长度 arrayObj.splice(insertPos,0,[item1[, item2[, . . .
Posts
清洗 Git Repo 代码仓库
手动清理 如果你们的代码仓库问题比较少,只有几个不该提交的文件,可以参考 Atlassian 的一篇关于维护 Git Repo的文章。
大致过程如下: 首先进行 Git 垃圾回收:
git gc --auto 其次查看 Git 仓库占用空间:
$ du -hs .git/objects 45M .git/objects 然后找出历史中超过一定大小的文件,最后在历史中删除并且提交。如果感兴趣手动处理这个过程可以参照文章后边的链接。
相关的几个命令: 清理历史中的文件:
git filter-branch --force --index-filter 'git rm --cached --ignore-unmatch ****/nohup.out' --prune-empty --tag-name-filter cat -- --all git filter-branch --index-filter 'git rm --cached --ignore-unmatch ****/nohup.out' HEAD git for-each-ref --format="%(refname)" refs/original/ | xargs -n 1 git update-ref -d 强制提交覆盖:
git reflog expire --expire=now --all git gc --prune=now git push --all --force git push --tags --force 查找大文件并清理 下载Bash Script,在项目目录下: