主页

恢复goland默认设置要删除什么文件夹

goland最近抽风,我只是改动一个配置文件,就会重新对整个project构建索引,导致mac非常卡,所以有必要恢复出厂设置。 查了好久,最终删除了一下文件夹解决: Windows: Configuration (idea.config.path): %APPDATA%\JetBrains\IntelliJIdea2020.3 Plugins (idea.plugins.path): %APPDATA%\JetBrains\IntelliJIdea2020.3\plugins System (idea.system.path): %LOCALAPPDATA%\JetBrains\IntelliJIdea2020.3 Logs (idea.log.path): %...

阅读更多

Docker映射文件而不是文件夹时候的坑

docker映射文件而不是文件夹的语法跟映射文件夹的时候是一样的。 比如在docker-compose.yml里面这样写 volumes: - "./logs:/opt/my_business/logs" - "config.ini:/opt/my_business/config.ini 坑1 如果这样写的话,映射的时候,镜像里面的config.ini必须已经存在,不能运行时再创建。否则docker会认为镜像里不存在,docker会在容器启动的时候帮助镜像内创建文件夹名字为config.ini, 然后程序运行的时候在创建的时候就会报config.ini is directory not file了。 坑2 还有一个问题,docker映射的时...

阅读更多

Go底层总结(1):编译过程和理解可执行文件

以一个hello world的例子为例,说明下go语言编译的过程。 package main import "fmt" func main() { fmt.Println("hello world") } 编译阶段 go程序不能直接运行,大体要经过词法分析,语法分析,语义分析来生成中间代码,也就是编译的过程,之后会形成汇编代码,然后再由汇编器把汇编代码1v1翻译成机器指令,最后要由链接器把多个文件链接在一起生成最终的可执行文件。 go编译 go编译器的代码位于src/cmd/compile路径下,链接器位于src/cmd/link路径下。 词法分析 扫描器位于src/cmd/compile/scanner.go下面 词法分析就是把源代码一堆字符里面去掉空格...

阅读更多

Github镜像加速

问题的源起 由于众所周知的原因,国内访问github,下载github上面的东西速度非常慢 解决方案 通过把域名更改为镜像网站下载。 https://hub.fastgit.org 举例如,本来下载地址为: https://github.com/svenstaro/miniserve/releases/download/v0.17.0/miniserve-v0.17.0-x86_64-unknown-linux-musl 需要修改为 https://hub.fastgit.org/svenstaro/miniserve/releases/download/v0.17.0/miniserve-v0.17.0-x86_64-unknown-linux-musl

阅读更多

Docker Compose搭建带有mysql数据库如何初始化数据

问题的源起 搭建服务的时候如果服务依赖myql,那么需要docker-compose拉取mysql容器,然后执行一下初始化数据库的脚本创建数据库用户,创建数据库,创建表, 插入一些初始化数据。然后才能启动服务。 问题一 如何让server一直wait知道mysql初始化完成再启动。 问题二 mysql初始化数据放在哪里?我一开始想打包一个自己的mysql镜像,把数据都打进去。但是mysql的官方容器默认是VOLUMN /var/lib/mysql的。 所以即使有数据变更,创建了新的数据库数据表,docker commit的时候其他机器拉取镜像跑容器的时候还是没有数据。哪里放初始化数据,哪里放业务代码。 问题三 myql的默认配置很垃圾,一般都需要自己设置编码utfmb4,...

阅读更多

Linux登录配置文件加载顺序

疑问 当我们打开shell的时候,会加载哪些配置文件呢?加载的顺序又是怎么样呢?录linux的shell其实分两种,login shell和non-login shell,那么login shell 和non-login shell有什么区别呢? 用户输入用户名密码shell才启动,这是login shell,还有一种non-login shell,不需要登录就可以获取bash页面,例如x-window环境下启动终端,不需要输入用户名密码,这是non-login shell。 login shell读取配置文件流程 系统设置文件 只有login shell才读取系统设置文件/etc/profile,它是系统的整体的配置文件,该文件会调用 ①/etc/inputrc用来设置bash...

阅读更多

阿章的go语言教程[2]-程序结构

命名 标识符 Go语言中的函数名、变量名、常量名、类型名、语句标号和包名等所有的命名,都遵循一个简单的命名规则:一个名字必须以一个字母(Unicode字母)或下划线开头,后面可以跟任意数量的字母、数字或下划线。大写字母和小写字母是不同的:heapSort和Heapsort是两个不同的名字。 所有你自己写的代码,定义的变量,函数等必须遵守标识符的原则。 有很少的一些go语言的关键字你不能当做变量的名字 以下这些,初次接触,不要被吓到,不要可以去记住,可以大概浏览一下,有个印象,后面我会一个一个讲到。 Go语言中类似if和switch的关键字有25个;关键字不能用于自定义名字,只能在特定语法结构中使用。 break default func in...

阅读更多

阿章的go语言教程[1]-安装和你的第一行代码

安装golang 教程的一开始当然是安装golang,已经安装好的同学可以跳过本章节。 mac windows安装 打开golang官方下载网站 Downloads - The Go Programming Language (golang.org) 可以看到各个平台的安装包 如果是windows的可以点击go1.17xxxx.msi下载,mac的选择macOs的xxx.pkg进行下载。如果是苹果M1芯片的mac可以下载darwin-arm64.pkg的进行下载。然后点击下一步下一步进行安装。 linux下载解压安装 也是在这个页面可以找到linux版本压缩包的下载地址,鼠标右键复制链接地址。然后执行命令下载解压 wget https://golang.o...

阅读更多