ZingLix Blog

凡心所向,素履以往

Go 语法快速上手

Grammar Cheatsheet of Go

本文并不是一篇面向新手的入门文章,而是面向于有一定编程经验而且希望快速上手 Go 语言的人 阅读本文章最好了解 C、C++、Java 等语言之一的语法 本文中难免会有错误,接受一切纠错以及志同道合的人来交流,可以在网页最下方找到联系方式邮件联系我 变量 变量需要显式的声明,完整的语法如下。 1 var a int = 8 在提供初始化的值的时候,类型可以省略,不...

WSL2 的几个使用技巧

WSL2 Tips

从资源管理器访问 WSL2 WSL2 改善了文件系统,使得读写能力大大提升,但是 /mnt 挂载下的 Windows 文件貌似因为改用了网络协议下降了,最坑爹的是没办法监测文件的变动了,写前端的时候那些测试服务器本来会根据文件变动自动重新编译,现在因为无法监测改变这一功能就失效了。这也不是无解,解决的办法就是把项目文件移到 WSL 中。 借助于网络位置,虽然这些文件放进了 WSL 中,但...

WSL2 中访问宿主机 Windows 的代理

WSL2 Proxy Setting

最近疫情期间很多事情都得用代理连到学校内网去做,但是 WSL2 因为是通过虚拟机的方式实现,网络不再像 WSL1 一样与 Windows 共享,变成了一个新的网段,所以想使用宿主机的代理就比较麻烦了。 WSL 中获取宿主机 IP WSL 每次启动的时候都会有不同的 IP 地址,所以并不能直接用静态的方式来设置代理。WSL2 会把 IP 写在 /etc/resolv.conf 中,因此...

为什么说注意力才是你唯一需要的?

Attention & Transformer

Attention 机制最早于图像领域提出,而最近被引入了自然语言处理领域,在取得了良好的效果的同时,由于其可并行性,甚至有一举取代 RNN、LSTM 等 NLP 经典模型的趋势。 注意力机制 何为注意力?正如人类的注意力一样,例如看一篇文章,人的注意力往往会在图片上,然后对文章的标题、开头有一些注意,对文章内容可能就不那么关注。在 NLP 中处理句子中每个词也是如此,因为我们希望处理每...

Amazing Docker

Docker Walkthrough

如果你尝试过在别的机器上部署过服务,那么我相信你一定会涌现出许多悲伤的回忆。“明明在我的电脑上就可以正常运行,怎么换了台就不行了?”然后发现依赖不全,开始尝试装补齐依赖。“我要的和另一个服务所依赖的版本不一样,换了版本另一个就没法运行了怎么办?”好不容易都搞定了,这时你发现,还有几十台机器都需要在这样部署一遍,emmmm 所以此时 Docker 就闪亮登场了。 Docker 是什么 D...

TLS 握手究竟做了什么?

What happens in a TLS handshake?

随着 HTTPS 的普及,TLS 这一个单词也出现的更为频繁,那么什么是 TLS 呢?TLS 又如何使得 HTTP 传输变得安全呢? TLS,全称 Transport Layer Security,安全传输层协议,前身为 SSL (Secure Socket Layer,安全套接层),位于 TCP 与应用层之间。HTTPS 相对于 HTTP 来说,协议本身并未改变,而是在 TCP 与 ...

现代 C++ 中的类型推导

Type Deduction in Modern C++

模板类型推导 如下是一个普通的函数模板 1 2 template<typename T> void func(ParamType p); 当我们以 func(x) 方式调用时,编译器会帮我们自动推导出 T 和 ParamType 两个类型,且两者可能并不一样,因为 ParamType 可能会带有 const 或者 & 引用修饰符。 参数类型为引用或指针 1 2...

std::move() 与 std::forward()

移动语义与完美转发

移动语义 移动语义是 C++11 中新引入的一个概念,目的是当一个对象赋值给另一个对象后,自身不再被使用的情况。原本需要的操作是先调用新对象的复制构造函数再将原对象销毁,而有了移动语义后,则是将原对象的资源“移动”给新对象,例如 std::vector 将指向数组的指针赋值给新对象,而非申请一块新的内存再将原地址内容复制过去,这样就以避免昂贵的复制操作。在用到了临时对象(右值)时的赋值时这...

「CSAPP Lab」缓冲区溢出实验

Attack Lab

Lab Version: 1/11/16 Cookie: 0x59b997fa 缓冲区溢出 缓冲区溢出是指类似于 scanf 的函数,输入到一个字符数组中并不会检查溢出,所以用户输入的代码会影响到字符数组以外的内存空间,溢出的那部分可能就会产生一些意想不到的结果。这个实验就是展现缓冲区溢出的结果。 Part 1 如下是每次都会运行的函数,其中 getbuf() 是一个存...

「CSAPP Lab」二进制炸弹实验

Bomb Lab

Bomb Lab Version: 1/12/2016 二进制炸弹实验提供了一个可执行文件,要求用户输入 6 个密码才能够拆除炸弹,而密码并没有任何线索,所以只能够通过反汇编等方式确定。 1 2 3 4 5 6 7 8 9 input = read_line(); phase_1(input); phase_defused(); printf("Phase 1 defused. ...