March 12, 2018
linux下git版本过底引起的无法git clone的解决方案
"刚安装的新系统,git版本为1.8.3,使用git clone命令的时候,提示“… Peer reports incompatible or unsupported protocol version”\n只需要升级一下基本包即可。\nsudo yum update nss curl # nss为名称解析和认证服务 curl为网络请求库 "
March 8, 2018
Go中slice作为参数传递的一些“坑”
"看明白了这篇文章,下面的例子基本也就明白了\npackage main import \u0026#34;fmt\u0026#34; func main() { a := []int{1,2,3} abc(a) fmt.Println(a) } func abc(a []int) { a[0] = 2 //修改后还是原来的a a = append(a, 4) // 此a非原a,使用append导致了重新分配内存地址(存储空间不足,系统自动分配一块新的足够大的内存地址,此时a的物理内存地址已经发行了变化,并将原来a的值copy一份到新的内存地址,所以这里修改的只是新内存地址的值,原来内存地址的值并没有改变),试着删除这行运行一次再看结果 fmt.Println(a) a[0] = 7 // 新a,因为上面执行了append fmt.Println(a) fmt.Printf(\u0026#34;\\n===\\n\u0026#34;) } 解释: [][1]"
March 3, 2018
golang中string rune byte 三者的关系
"Go 语言中 byte 和 rune 实质上就是 uint8 和 int32 类型。 byte 用来强调数据是 raw data,而不是数字;而 rune 用来表示 Unicode 的 code point。参考 规范.\n在Golang中 string 底层是用byte字节数组存储的,并且是不可以修改的。\nGo语言中的byte和rune区别、对比 例如\ns:=\u0026#34;Go编程\u0026#34; fmt.Println(len(s)) //输出结果应该是8因为中文字符是用3个字节存的(2+3*2=8)。 fmt.Printf(\u0026#34;%d\u0026#34;, len(string(rune(\u0026#39;编\u0026#39;)))) //经测试一个汉字确实占用3个字节,所以结果是3 如果想要获得字符个数的话,需要先转换为rune切片再使用内置的len函数\nfmt.Println(len([]rune(s))) // 结果就是4了。 所以用string存储unicode的话,如果有中文,按下标是访问不到的,因为你只能得到一个byte。 要想访问中文的话,还是要用rune切片,这样就能按下表访问。\n总结: rune …"
February 21, 2018
解决mac下brew link python3出错brew Error: Permission denied @ dir_s_mkdir – /usr/local/Frameworks
"mac上默认的python版本为2.7.10版本,需要升级到python3 版本,通过brew升级\n$brew install python3 提示错误\n$ brew install python3 Warning: python3 3.6.3is already installed, it‘s just not linked. You can use brew link python3 to link this version. $ brew link python3 Linking /usr/local/Cellar/python3/3.6.3… Error: Permission denied @ dir_s_mkdir\n发现/usr/local/下没有路径/usr/local/Frameworks 需要新建该路径,并修改权限\n解决:\n$ sudo mkdir /usr/local/Frameworks $ sudo chown $(whoami):admin /usr/local/Frameworks 成功:\n$ brew link python3 Linking …"
February 8, 2018
Docker Machine 简介
"一句话概括的话就是 Docker Machine是一个可以方便对多个宿主服务器中的多个容器进行管理的工具。\nDocker 与 Docker Machine 的区别 https://www.cnblogs.com/sparkdev/p/7066789.html\nDocker Machine 工具出现的意义 https://www.2cto.com/net/201707/660864.html\nDocker Machine 用法 http://www.linuxidc.com/Linux/2017-06/145232.htm\nDocker Machine 命令 http://blog.csdn.net/warren_1992/article/details/51451522\nMac平台上Docker安装与使用 http://blog.csdn.net/warren_1992/article/details/51451522"
February 8, 2018
windows平台在dos下执行docker pull 命令出错
"这里docker Machine 是安装和管理 Docker 的工具(用来代替Boot2Docker,对于个人玩的话,不建议使用docker Machine,毕竟多了一个虚拟层,不如直接使用当前物理机器作为容器的宿主机)\n$ docker pull gitlab/gitlab-ce:latest Warning: failed to get default registry endpoint from daemon (error during connect: Get http://%2F%2F.%2Fpipe%2Fdocker_engine/v1.33/info: open //./pipe/docker_engine: The system cannot find the file specified. In the default daemon configuration on Windows, the docker client must be run elevated to connect. This error may also indicate that the …"
January 26, 2018
利用“码云gitee”的钩子实现git仓库自动更新
"使用git时,传统发布方式是手动将新代码 上传到远程仓库,然后在登录服务器执行git pull命令拉取最新的代码,这种操作如果频繁更新的话,我们可以利用git的钩子来实现自动 部署 功能。\n前提: linux php (gitpull.php) nginx 运行用户为 www\n注意网站 gitpull.php 文件权限问题,还有是否有shell_exec 命令的执行权限\n一、先创建自动部署用户的密钥\nsudo - www ssh-keygen -t rsa -C \u0026#34;[email protected]\u0026#34; 二、将用户www生成的公钥添加到码云后台\ncat ~/.ssh/id_rsa.pub 三、将码云域名gitee.com 添加到授权白名单\nssh-keyscan -t rsa gitee.com \u0026gt;\u0026gt; ~/.ssh/known_hosts 或者以www用户执行一次gitpull命令\nsudo - www cd /data/wwwroot/www git pull 根据提示,输入 yes 即可。\n四、在码云的部署钩子里进行url设置\nurl …"
December 14, 2017
vux中实现自定义皮肤
"有时候我们需要根据自己的需要对 weui默认的颜色进行修改,如果在每个单面里修改的过过于麻烦,我们可以使用一个less配置文件来实现对默认配置进行重置。\n修改 webpack.base.conf.js 文件,找到\nmodule.exports = vuxLoader.merge(webpackConfig, { plugins: [\u0026#39;vux-ui\u0026#39;, \u0026#39;progress-bar\u0026#39;, \u0026#39;duplicate-style\u0026#39;, ] }) 修改如下:\nmodule.exports = vuxLoader.merge(webpackConfig, { plugins: [\u0026#39;vux-ui\u0026#39;, \u0026#39;progress-bar\u0026#39;, \u0026#39;duplicate-style\u0026#39;, { name: \u0026#39;less-theme\u0026#39;, path: \u0026#39;src/theme.less\u0026#39; }] }) 然后在项目的 src 目录里创建文件 theme.less, …"
December 13, 2017
CSS3 利用@media screen实现网页布局的自适应,样式顺序
"利用@media screen可以适应不同屏幕大小,做出相应的界面调整;\n在css中@media (min-width: 768px)表示最小是768也就是\u0026gt;=768;\n@media (min-width: 768px){ //\u0026gt;=768的设备 }\n@media (min-width: 992px){ //\u0026gt;=992的设备 }\n@media (min-width: 1200){ //\u0026gt;=1200的设备 }\n注意下顺序,如果你把@media (min-width: 768px)写在了下面那么很悲剧,\n@media (min-width: 1200){ //\u0026gt;=1200的设备 }@media (min-width: 992px){ //\u0026gt;=992的设备 }@media (min-width: 768px){ //\u0026gt;=768的设备 }因为如果是1440,由于1440\u0026gt;768那么你的1200就会失效。\n所以我们用min-width时,小的放上面大的在下面,同理如果是用max-width那么就是大的在上面,小的在下面\n@media …"
November 19, 2017
centos 下安装 certbot 常见问题
"上一篇( https://blog.haohtml.com/archives/17422)我们介绍了centos下安装certbot的方法,但有时间服务器环境不一样,总会遇到一些问题,常见问题如下:\ncentos7.5下安装certbot常见问题\n一、出错”ImportError: ‘pyOpenSSL’ module missing required functionality. Try upgrading to v0.14 or newer.“ 解决办法:\nsudo pip uninstall pyOpenssl sudo pip install pyOpenSSL==0.14.0 查看版本:\npip show pyOpenssl 一、出错信息为“certbot AttributeError: ‘module’ object has no attribute ‘SSL_ST_INIT’”\n解决办法:\npip uninstall pyOpenSSL pip install pyOpenSSL==16.2.0 "