- 博客(103)
- 收藏
- 关注
原创 字符编码,计算机是如何认字的(ASCII,Unicode,UTF-8,GBK 都是些什么)
最近遇到了几个编码转换的问题,为什么会出现乱码呢?就想搞清楚计算机是如何“认字”的,查查资料进行总结。提一嘴bit(位),计算机中数据的最小单位,0或1。byte(字节),1 byte = 8 bit。字符,例如:A,1,国 等具体的文字符号。
2025-01-23 18:49:07
867
原创 Android adb 调试,不在手机上点击信任 “允许usb调试” 即可连接的方式(手机需root)
通过更改手机的 /data/misc/adb/adb_keys 文件来达到直接信任电脑的效果。
2025-01-16 13:58:25
1226
原创 mysql 数据表导出为 markdown(附 go 语言 gorm 的实际使用)
通常业务系统开发中,数据库的设计与维护是至关重要的环节。而数据库的文档化则是确保团队成员之间有效沟通、快速理解系统架构的基础。mysql_markdown 工具将 mysql 数据库表导出为 markdown。
2024-11-22 10:45:38
451
2
原创 minio 使用 PostPolicy 方式上传文件
PostPolicy是一种用于生成预签名的POST请求的方法,允许客户端直接向S3兼容的存储服务(如MinIO)上传文件,而不需要通过后端服务器中转。可以在PostPolicy中设置各种条件,如文件大小限制、文件名前缀等。本篇简单介绍了下minio直接从客户端上传文件的另一种方式PostPolicy,并附上了示例代码。用户拿到sts临时凭证后随意上传文件,这个没法控制,如果真有人拿到了临时凭证恶意上传大文件,导致oss服务不能用了,那只有通过法律的铁拳来打击了。
2024-11-19 18:56:05
400
原创 云手机简述(概况,使用场景,自己部署云手机)
云手机(Cloud Phone)是一种基于云计算技术的虚拟手机服务,它将手机的操作系统和应用程序托管在云端服务器上,用户可以通过互联网连接来访问和操作这些虚拟手机。与传统的智能手机不同,云手机不需要依赖物理硬件,用户可以使用多种设备(如智能手机、平板电脑、笔记本电脑等)通过互联网访问和使用云手机服务。
2024-10-28 14:11:02
1860
原创 Gitlab 中几种不同的认证机制(Access Tokens,SSH Keys,Deploy Tokens,Deploy Keys)
Gitlab 中几种不同的认证机制解析,并介绍了在做 CI 时,Docker 镜像中如何用 Go 拉取私有仓库的代码。
2024-09-12 15:04:07
2926
原创 MinIO实战攻略:轻松构建私有云存储解决方案
OSS(Object Storage Service)通常指的是对象存储服务,它是一种数据存储架构,用于存储和检索非结构化数据,如图片、视频、文档和备份等。对象存储服务与传统的块存储和文件存储不同,它将数据作为对象来存储,每个对象都包含数据、元数据和一个唯一的标识符。在对象存储系统中,数据被组织成一个扁平的结构,而不是传统的文件系统中的层级结构。高扩展性:可以轻松地扩展存储容量,以适应不断增长的数据量。高可用性:通常提供冗余存储,确保数据在硬件故障时仍然可用。
2024-08-23 17:34:27
859
2
原创 【记录】go 设置 http 请求超时
平常自己使用http发送请求设置超时,都是直接给对象设置Timeout属性,很少使用这种对单个Request设置超时的。其实还是个熟练度问题,平常源码读的比较少。有空读读源码不仅可以在使用代码的时候更得心应手,也能够学习借鉴源码的代码设计实现。对自己平常经常需要使用的库,还是建议都过一遍源码,很不错的一个打发空闲时间的方式。
2024-08-09 17:59:47
629
原创 AI 编程辅助工具介绍
2023 被称为“AI元年”,人工智能、AI大模型概念迅速点燃市场。对程序员来说,如果能让 AI 帮助我们编码,那工作效率不得起飞!本篇简单介绍一下当前主流的 AI 编码工具。目前的 AI 辅助编程工具还在飞速发展,本地部署训练的效果都不如 GitHub Copilot 等大厂的产品好用。短期内建议使用云服务产品来做代码辅助,长期考虑,可以先本地部署了解下其原理(硬件不行的就不要再考虑了),尝试自己生成模型。
2024-04-16 15:46:27
1491
原创 【开发掉坑】go 中 interface 的 nil 判断
今天介绍下 `go` 中的 `interface(any)` 的 `nil` 判断,项目中遇到的一个小问题,知识遗忘了,再做个记录。
2024-01-19 15:27:50
1038
原创 go module 名称与 GitHub/Gitlab 地址不同时的引用方式(module declares its path as: github.com/someone/repo )
本篇介绍了go引用第三方库时,当module名称和引入仓库地址不同的情况下的解决方式:使用mod的replace特性。使用replace将替换成网站地址即可。module declares its path as: github.com/someone/repo but was required as: github.com/you/repo 的解决方式
2023-11-06 17:22:09
1935
原创 golang 发起 http 请求,获取访问域名的 ip 地址(net, httptrace)
本篇介绍了在go中如何获取访问域名的ip地址,通过go官方net包可获取。如果有记录http请求的域名ip这种需求,可以使用go 1.17后添加的httptrace包来插入钩子获取请求的ip地址。当然了,httptrace的作用不止于此,它可以搜集http客户端请求整个生命周期中的信息,本篇未做详细介绍,感兴趣的可自行探索。
2023-11-02 10:40:15
2616
1
原创 电子邮件发送接收原理(附 go 语言实现发送邮件)
本文阐述了电子邮件发送接收原理。大体流程:用户A-> 邮箱服务器 (-> 其他邮箱服务器) -> 用户B。最后介绍了下使用golang来发送邮件,配置好服务器后还是很方便的。
2023-10-25 18:42:10
1086
原创 docker 已经配置了国内镜像源,但是拉取镜像速度还是很慢(gcr.io、quay.io、ghcr.io)
docker拉取镜像慢,通常配置了国内镜像源后,速度可以得到极大的改善。但若是配置了镜像源后,拉取镜像还是非常慢,那就需要自己想想办法搭个梯子直接从外网拉取镜像。
2023-09-13 11:07:01
15737
4
原创 git submodule 子模块的基本使用
使用了submodule后,若不主动更新,项目会一直使用固定版本的submodule模块,需手动更新(若是在go或者其他有包管理的项目中,建议还是使用开发语言工具去做这种类似的第三方包管理会比较方便。
2023-08-31 16:04:54
1121
原创 linux 性能分析之内存分析(free,vmstat,top,ps,pmap等工具使用介绍)
linux 的内存分析工具的简单使用。/proc/meminfo,free,vmstat,top,ps,pmap
2023-08-21 22:58:31
3721
原创 flutter 解压 zip 中文乱码问题处理
很简单的一个zip包解压缩的功能,但是windows平台中文显示乱码,很糟心,搜了一圈没找到现成的方法,在此贴上我的解决方式。
2023-08-11 16:05:53
1256
原创 flutter 初识(开发体验,优缺点)
flutter的上手难度还行,不过我做上述的小应用,还是花了一天的时间(主要还是要熟悉其框架结构以及基础语法,数据请求等),整体开发体验还不错,中文社区也挺强大的,基本上问题一搜都能有解答。这里要吐槽一下,我做的应用有个解压缩的功能,遇到了gbk编码问题,flutter对中国用户真是不怎么友好,这个问题花了好半天才解决(可能是我太菜了 =-=!跨平台提供了便利性,同样也提高了复杂性,对开发者的知识广度还是有需求的。
2023-08-11 15:43:17
1901
原创 低代码平台的使用学习
低代码平台是一种开发工具或环境,它们旨在简化应用程序的开发过程,减少编码量,提高开发效率,同时降低对传统编程知识的依赖。通过低代码平台,开发人员可以使用图形化界面和拖拽功能,而不需要手写大量代码,从而更快地构建应用程序。总的来说,低代码平台在适合的场景下可以显著提高开发效率和降低开发成本,对于快速原型、中小规模项目以及业务人员参与开发的情况非常有用。但对于复杂的、高性能要求以及高度定制化的项目,传统的编程方法可能更为适用。
2023-08-04 11:22:54
951
原创 go 中的代码漏洞检查
govulncheck是go官方提供的一个二进制工具,用于检查go代码或二进制文件是否存在已知的安全漏洞。是go官方提供的一个漏洞检查工具。go团队从多处采集漏洞并存入自己的漏洞库,然后通过工具对代码或二进制文件进行漏洞扫描。很棒的一款工具,建议在日常的开发流程中(CI/CD,代码审查等)引入漏洞检查,能够帮助我们通过go来构建高质量、高安全性的程序。
2023-07-31 11:13:53
624
原创 探索 APK 文件的内部:了解 Android 应用程序的组织结构
APKAndroidpackage) 是构建和发布Android应用程序的关键组成部分,APK文件是应用程序的打包格式,它将应用程序的代码、资源和清单信息组合在一起,以便在设备上进行安装和运行。简称 ”“,其本质上就是一个zip压缩包。
2023-07-20 18:36:39
2826
2
原创 web服务端接收多用户并发上传同一文件,保证文件副本只存在一份(附go语言实现)
本篇只是给个思路,抛砖引玉,介绍了如何实现客户端和服务器端的并发上传控制。通过示例代码,能够确保在并发上传时服务器中只存在一份文件副本。在实际的生产环境中,可能需要进一步优化和增强这些代码,以满足性能、安全性和可靠性方面的需求。
2023-07-05 11:15:51
903
1
原创 go 中的 ~int 类型是什么,怎么在类型前面还有一个波浪线?
本篇介绍泛型中一个小小的特性, 这种类型前添加波浪线的写法,表示的是衍生类型,即使用type自定义的类型也可以被识别到(type MyInt int),底层类型一致即可,主要同泛型一起使用。通常在使用这种需要排序的类型时,直接使用go官方提供的包即可。
2023-05-16 11:22:38
1860
2
原创 实时通信的服务器推送机制 EventSource(SSE) 简介,附 go 实现示例
是HTML5中一个强大的API,提供了简单可靠的服务器推送机制,用于实现实时通信。与WebSocket相比,的优势在于其简单易用、自动重连、轻量级和跨域支持。然而,它也有一些限制,如单向通信和较低的浏览器支持。相比之下,WebSocket适用于双向通信、大规模应用和实时性要求较高的场景,但其复杂性和穿越防火墙的挑战也需要考虑。总的来说,是一种非常有用的API,适用于许多实时应用场景,如实时股票报价、即时聊天、实时通知等。它提供了一种简单而可靠的方式来建立服务器推送连接,并实现实时更新和通知。
2023-05-07 15:18:17
13784
1
原创 go gin 框架设置 header 需要注意的一个坑
`go` 中使用 `c.Header("new-token", "123")` 设置 `http header` 键值的时候,设置的 `new-token` 键会变成 `New-Token` !!!
2023-03-23 17:23:45
3503
原创 前后端数据加密传输(附go语言实现)
这里做的加密传输,仅仅只能添加破解的复杂性,不能真的保证数据不泄露。所以一般的服务在做数据交互时也并不会刻意去做这种前后端的数据加密,一般性的是做服务器的session或者客户端的cookie校验,来保证数据不泄露,不被篡改。但你要是说我做session校验的token在前端泄露了,那这种也是用户自己的问题(进入黑客网站或其他做了鉴权),服务防不了这种,顶多是增加校验复杂性来让其更加繁琐。所以说在类似付款的操作的时候,都会再进行一次校验(输入密码/验证指纹等),来再做一次权限校验。
2023-03-12 14:22:24
3845
原创 go 调试器 delve(dlv) 的使用(附实例及常用命令解释)
delve工具非常强大,本篇介绍了其基础使用,希望在遇到问题的时候可以快速的进行问题排查,如果安装了GoLand,也可以使用Goland进行调试,相对来说更加的快捷,但遇到一些需要查看汇编代码或者其他高阶应用时,我还没发现GoLand如何使用,所以delve的命令使用最好也是要了解的,不会到时候一头雾水。
2023-02-03 15:20:26
11291
2
原创 go module 的本地仓库依赖解决方案(Multi-Module Workspaces)多 module 工作区模式 简介
go在1.18新推出的依赖本地。依赖本地未发布的module。设置了工作区后,所有的配置都会以工作区的配置为最高优先级。go.work文件不需要上传到git仓库,本地使用即可。go.work。
2023-01-17 11:26:37
2061
原创 go channel 基础(如何优雅地关闭 channel)
想必听说过 go 的,应该都知道 go 的最大的特性 goroutine 并发编程,而说到并发编程,使用 channel 进行数据传输是 go 中的必修课。go 的并发哲学:不要通过共享内存来通信,而要通过通信来实现内存共享。channel 的坑不少,本篇简单聊聊关闭 channel 的方法。
2023-01-12 10:35:29
2617
1
原创 WEB 安全,浅谈 XSS 攻击(附简单实例)
为什么说一些网站上的弹出广告(一刀999)不要去点,特别是已经登录过的网站,个人信息的泄露等都很有可能是从这里泄露的。由于XSS这种攻击手法是很常见且基础的方式,目前大多数的web框架都对其做过适配了,我们也不需要太过担心这种安全问题,但是还是要知道有这么回事,并能够有相应的处理方案。现在大多数的项目都是前后端分离的,前后端都要对XSS有所了解,在实际开发中需要多考虑下这类安全问题。
2022-12-29 22:09:05
3969
2
原创 华硕 A550C 安装 CentOS7 后无法连接 wifi 问题排查解决
最近买了个投影仪,发现那些大厂的影音APP,手机上买了会员后,不能和投影仪上的APP共用,就很恶心。这时发现十年前的老笔记本就躺在投影仪下面的柜子上,上面铺满了厚厚的一层灰,心想这老家伙该起来再操练操练了!用其搭建个webdav服务来在投影仪上看云端电影,岂不美哉。由于其年岁已大,跑起windows来太卡了,所以给它换了个心脏,谁知wifi连不上了!!
2022-11-25 16:25:36
968
原创 gitlab-runner 的安装使用(含 .gitlab-ci.yml 的简单使用)
gilab-runner 的简介及安装使用,包含 .gitlab-ci-yml 的语法介绍。ci 变量优先级的介绍,以及实际使用中的一些问题。
2022-11-25 15:34:25
2413
原创 HTTPS/TLS/SSL 都是什么,有什么区别?
SSL是基于HTTP之下TCP之上的一个协议层,是基于HTTP标准并对TCP传输数据时进行加密,所以HPPTS是的简称。TSL可以看作是SSL的升级,现在用的基本上都是TSL证书,但是由于历史习惯,还是会叫做SSL证书。HTTPS的工作流程还是比较复杂的,为了安全着想,设计者们也是花了大心思的。SSL根证书的颁发机构CA是公认的证书颁发机构,可信度高。证书是链式的,链越多,则认证时间越长,一般证书三四层链。
2022-10-30 15:17:51
3043
原创 git bfg 的使用(删除提交记录中的敏感信息,删除文件等)
bfg主要用途:希望保留提交历史,需删除提交历史记录中的不希望被其他人看到的信息(密钥,个人隐私等)或大文件的移除。环境配置完成后,使用还是比较方便的,软件运行速度也非常快,当遇到类似需求时推荐使用。最后还是祝愿大家不要用到这个工具,尽量提前做好相应的知识储备(git的使用,敏感信息过滤等),以防出现不必要的麻烦。
2022-10-21 14:44:46
3496
原创 go语言实现,用户登录:限制一分钟内密码错误的次数(固定时间窗口限流算法)
本文主要以一个业务来简单的描述了一下限流(固定时间窗口),并附带了一个go版本的实现。限流方式很多,还是要找到最适合本身业务的限流方式,难的不是实现,而是怎么去限流,怎么设计。
2022-10-13 17:59:29
1271
原创 go sync.Map Range 的同时进行 Store,Range 的遍历结果如何?(源码分析)
再详细解释一下开头提出的问题,RangeStore并发的时候,Range的遍历结果如何。Range先开始,并且没有发现dirty中有read为false),则遍历过程中是不能够获取到新添加进Map中的数据的,因为遍历的是之前的副本。Store先开始,Range遍历的时候会发现dirty中有read中不存在的数据,则会去和Store去竞争同一把锁,在Range竞争到锁的时候,会清空dirty同步read然后会拿着当前read的副本进入for去回调,即:遍历过程中可能会读取到Store的一部分的数据。
2022-09-29 11:52:06
2215
原创 es 初识调研,相关知识点汇总
分布式,高性能,高可用,支持restful风格api的搜索和数据分析引擎,它是经过考验的,很多大型项目都在用,很适合做全文搜索、日志分析、监控分析等。
2022-09-27 13:38:43
1918
原创 go pprof 的使用
pprof是go中做性能分析的很强大的一个工具,支持内存,cpu,锁,goroutine等数据采集,本篇主要是做个简单介绍,真正进行分析的时候,需要耐心了解各种图,数据展示的含义,一般来说还是比较好理解的。
2022-09-23 14:26:13
721
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人