0%

前言

最近想给gopeed的文档网站添加一个统计用户的访问量的功能,所以就想到了 firebase 的 analytics,但是在 vuepress 中整合 firebase 的 analytics 并不是很简单,所以就有了这篇文章。

阅读全文 »

前言

想在 wsl 上安装 flutter 跑一跑我的gopeed项目,在安装完 flutter 并设置好环境变量后,运行flutter doctor提示bash\r: No such file or directory,搜索了一番发现没有找到解决方案,于是自己摸索了一番,记录下来。

阅读全文 »

前言

在 Go 中,可以通过传递指针来改变函数外部变量的值,例如:

1
2
3
4
5
6
7
8
9
10
11
func main() {
var a int = 1
fmt.Println(a) // 1
change(&a,2)
fmt.Println(a) // 2
}

func change(a *int, b int) {
// 通过解引用来改变外部变量的值
*a = b
}

但是在某些情况下,我们可能需要传递interface{}来接收任意的指针变量,这时候就会遇到一个问题,interface{}类型声明的变量是不能直接赋值指针的,例如:

1
2
3
4
5
6
7
8
9
10
11
func main() {
var a int = 1
fmt.Println(a) // 1
change(&a,2)
fmt.Println(a) // 2
}

func change(a interface{},b interface{}) {
// 这一行会报错: invalid operation: cannot indirect a (variable of type interface{})
*a = b
}
阅读全文 »

背景

最近碰到一个神奇的网站,在浏览器可以打开,但是通过 curl 或者 代码访问就直接 403,我估摸着这肯定是做了UA校验,于是请求的时候把浏览器的 UA 给带上,然后访问发现还是 403,不过这也难不倒我,肯定是还有校验其它的请求头,直接浏览器打开 network,把所有的请求头复制过来并且带上,确保我和浏览器在 http 协议层面的请求完全一样,这样不可能会失败了吧,然而运行完发现还是 403。

放个地址: https://pixabay.com

阅读全文 »

为了开发公司的一些效率工具 UI,我选择了 Vuetify,它是一个基于 Vue 的 UI 框架,它提供了一个简单的组件库,可以让我们快速开发出一些简单并且好看的 material design 的 UI。

但是通过官方脚手架生成的项目,默认是通过引入外网 cdn 的方式导入图标以及字体文件,然而国内的网络访问这些资源比较慢,所以就想把这些资源放到本地,提高访问速度。

阅读全文 »

前言

最近在给公司新架构做技术选型,刚好 Java 17 也正式发布一段日子了,而且是LTS长期支持版本,就想着直接用起来吧,里面有些特性还是非常好用的,比如:

阅读全文 »

背景

由于公司内部所有服务都是跑在阿里云 k8s 上的,然后 dubbo 提供者默认向注册中心上报的 IP 都是Pod IP,这意味着在 k8s 集群外的网络环境是调用不了 dubbo 服务的,如果本地开发需要访问 k8s 内的 dubbo 提供者服务的话,需要手动把服务暴露到外网,我们的做法是针对每一个提供者服务暴露一个SLB IP+自定义端口,并且通过 dubbo 提供的DUBBO_IP_TO_REGISTRYDUBBO_PORT_TO_REGISTRY环境变量来把对应的SLB IP+自定义端口注册到注册中心里,这样就实现了本地网络和 k8s dubbo 服务的打通,但是这种方式管理起来非常麻烦,每个服务都得自定义一个端口,而且每个服务之间端口还不能冲突,当服务多起来之后非常难以管理。

于是我就在想能不能像nginx ingress一样实现一个七层代理+虚拟域名来复用一个端口,通过目标 dubbo 提供者的application.name来做对应的转发,这样的话所有的服务只需要注册同一个SLB IP+端口就可以了,大大的提升便利性,一方调研之后发现可行就开撸了!

项目已开源:https://github.com/monkeyWie/dubbo-ingress-controller

阅读全文 »

前言

最近由于某些需求,需要在linux环境下做 java 开发,刚好可以试试wsl2 gui,一通折腾下来总算符合自己的预期了,这里就记录下踩坑历程。

阅读全文 »

前言

最近公司项目要接入配置中心,后来调研下来决定使用apollo,但是在使用的时候发现有
个小细节特别难受,apollo不支持通过项目代码配置默认的environment,官网文档如下:

阅读全文 »