如何在 golang 中上下对齐打印字符串 在一些场景中,我们需要像表格一样整齐地打印一些信息,比如一个人的姓名,家庭地址和联系方式,我希望打印的格式像下面这样: 123Name : BobAddress : New York AvenuePhone : 12345674567 这个问题听上去非常简单,简单到似乎不该成为一个问题,我们很容易地给出下面这段代码: 12345678information := map[string] 2023-02-02 golang #golang
使用 Golang 实现 AES 加密算法 写在之前定位本文无意于介绍对称加密和非对称加密算法的区别,也无意于从底层来讲解 AES 算法的加密原理以及一步步实现,可能会有人注意到 Golang 实际上内置了 cypto/aes 这个包,但它的抽象程度还没有那么高(比如提供像Encrypt(key, plainText) 以及 Decrypt(key, cipherText)这样的接口),所以到我们真正使用间还隔着一道沟壑,所以本文就是在讲如 2022-12-26 golang #golang
Goroutine 使用的一些经验谈 在工作中 Goroutine 使用得相当多,积累了不少经验,也逐渐学习了一些小 tricks,在此进行一些总结 。 如何控制 Goroutine 的数量关于 Goroutine 的语法不做赘述。 首先,使用协程池还是直接创建新的 Goroutine 并限制数量(协程池会尽可能复用而不是创建)仁者见仁,智者见智,由于 Goroutine 比较轻量级,即便创建新的 Routine 资源消耗也不会很大, 2022-11-28 #golang #goroutine
毕业旅行游记——厦门 出发前6月8号,我从上海回到老家,由于防疫政策的需要,在宾馆中呆了一个星期,又陆陆续续在家中躺尸半个月。 上海疫情令外地同学返校参加毕业典礼尤为困难,本以为所有的故事都应该有一个颇具分量的结尾,但草草看完直播的我只生出一种荒谬的不真实感——我的学生生涯真的就这样轻飘飘结束了。 看着朋友圈中好友和同学的旅行九宫格,我开始急切地筹划起旅行的事情。 原本商议好和下学期赴美需要办签证的好友以及其他人在七月 2022-07-25 旅行 #旅行
毕业设计踩坑指南(2)—— WSL 导言正如其名,这次的大部分内容和 WSL 相关。之前提到了可以使用 celery 和 redis queue 来执行了一些耗时的 background task 去改善性能,提升体验。然而 celery 和 RQ 在 windows 平台上都不再支持,不过在 windows 使用celery -A yourCeleryApp worker --pool=solo可以正常 work, 不过 solo 2022-03-28 #WSL #flask #celery
毕设踩坑整理 说是踩坑,实际上只是整理我在毕设中遇到的一些问题和解决方案,不过不知道以后还有没有再写 flask 的机会…… 此外写毕设的一个感触就是,往往构思的时间要比实际写代码的时间要多得多。同时,自己可能由于过分想要避免重复造轮子,而且总是想找到解决某个问题的 best practice,常常过分纠结于工具的选择,而浪费了大量的时间,实际上一些比较小的问题,自己动手去做个适配,或者撸个轮子能够很好 wor 2022-03-27 #flask #Vue
毕设随感 确实好久没有写博客了,一方面是因为21年后半段都在学日语,另一方面是最近也是自己在秋招结束后开始了摆烂模式,当然最主要的是自己太懒了…… 最近在做的毕设大部分的工作量都在前端,虽然前端这种所见即所得的方式很容易带来正反馈,但有时忙活了大半个下午,只是用一些非常 hacky 的方式使页面某个小地方更好看匀称一点,这未免过分让人深受挫败,时常自问反省自己到底在干些什么东西…… 短短几个月时间里,所遭遇 2022-03-26
golang file permission mode 导言在自己实现简易版容器时,出现了一些跟文件权限的相关问题,用到了跟chmod和chown相关的指令,在这里做一个简单的梳理 permission mode in chmod简要介绍我的环境下是 WSL ubuntu 20.04,一般来说使用touch创建文件以及使用mkdir创建的文件夹的默认权限如下: 12345678910111213# zyc @ DESKTOP-KK42M35 in ~/ 2021-10-28
MyDocker 实现踩坑指南 背景《自己动手写 Docker》成书是在数年前,也一直没有更新,而且相关项目仓库的 Issues 板块也不是十分活跃,期间自己也遇到了一些问题,而通过搜寻阅读资料,对于部分知识的理解也有所加深,在这里做一些简单的整理。 环境如下: Golang: 1.17 Host: WSL Ubuntu 20.04 CLONE_NEWUSER关于 namespace 的问题可以参考一下这一系列的文章[1], 2021-10-17 golang #golang
如何在Golang中实现Fork() 背景最近在跟随《自己动手写 Docker》实现一个简易版本的 docker 时,注意到书中创建容器进程时采取了一种很 weird 的方法。mydocker run Command后使用exec.Command调用/proc/self/exe(即进程本身),但会修改参数,使得其相当于调用了mydocker init Command,然后再完成与容器相关的初始化工作。 书中使用了cli库来编写命令行相 2021-10-16 golang #golang