Guihao Liang
  • About Me
  • Home
  • Search

Guihao's Blog


what I cannot create, I do not understand
-- Richard Feynman

Guihao's Blog


what I cannot create, I do not understand
-- Richard Feynman

Golang: string reading

Golang memory allocation during conversion between string and slice

Posted on January 31, 2021

TL;DR, [Read More]
Tags: golang

Golang interface value: fat pointer again?

A brief tour to golang interface value

Posted on July 5, 2020

Recently, I have a project that requires me to learn golang in a short time. IMO, all language with GC is easy to learn and so does golang. [Read More]
Tags: golang rust assembly

Understand rust Vec indexing

declaration vs definition time compiler check

Posted on June 14, 2020

As I read the documentation for rust Vec, I want to understand how index operator [] works. For example, v[0] is a syntax sugar for *v.index(0) and how index is implemented? This leads me to Index trait implementation. [Read More]
Tags: rust

Learn Rust fat pointer and type erasure from a Cpp programmer's perspective

Understand TraitObject and Slice implementation

Posted on June 6, 2020

The concept for Sized and Unsized is related to the type layout in Rust [Read More]
Tags: rust c cpp

Learn rust mut from a Cpp programmer's perspective

Rust mut vs Cpp const

Posted on May 30, 2020

At beginning of learning rust, I mistakenly thought mut is a type decorator, [Read More]
Tags: rust cpp c

Understand C++ vtable from assembly code (part 1)

A glance at vtable implementation

Posted on May 30, 2020

tl;dr [Read More]
Tags: cpp c

Run NASM hello world on macOS

My first NASM program on x86_64 arch

Posted on May 24, 2020

TL;DR [Read More]
Tags: asm c

Use docker-in-docker in CI/CD

A brief intro to dind

Posted on May 4, 2020

Dind [Read More]
Tags: docker gitlab
  • Older Posts →
  • Email me
  • GitHub
  • Twitter
  • LinkedIn
  • StackOverflow

Guihao Liang  •  2021  •  guihao-liang.io

Theme by beautiful-jekyll