Making a note of things that shook me to the core (as in, lightly unexpected details that I might forget in the future).

I’ll be organizing this in no apparent order, under 2 categories: technical discoveries and non-technical learnings. I really should’ve kept track of all this as the term went on.

technical shooks !

All things development related. For my findings about go, refer to my previous post about Go quirks and common mistakes.


id -Gn to list current groups. Some files belonging to certain groups don’t appear when you ls, nor is in Nautilus. But if you believe it to be there, just ls away and it’ll appear.

certificate hell

Docker will sometimes complain about a lack of SANs (Subject Alternative Name), so that needs to be created with openssl. But this one time, scp-ing certificates from one instance to another didn’t carry over the SAN. I ended up solving it by scp-ing the certificates to another interim machine, before scp-ing back between the OpenStack instances, which surprisingly solved the issue.

All in all, certificates with vanishing SAN was the weirdest problem I’ve ever encountered…

running superuser

Running commands as sudo actually refers to a completely different set of environment variables. Unsurprising, considering how sudo really just means superuser do… Wish I spent less time before discovering this though.

Ways to bypass that include sudo su and then exporting all your environment variables again, or simply sudo -s, which is a non-login style shell that gains root access as the current user without reading new environment files (and hence, added security benefits).

Meanwhile, sudo -i is virtually the same as sudo su: it gets the root’s environment, but without having to know the root account password like the -s option. Seems to be the most practical option to get the root environment.

dockerfiles and building a docker image

the process of building a docker images is as such:

  1. build binaries from source
  2. build and run Docker image from binaries using a Dockerfile
  3. tag the docker image as something more friendly
  4. commit/push to Docker registry

non-technical shooks !

Soft skills, and other learnings and experiences that shook me a bit.

johari window

(courtesy of my manager)

Saying things like “I don’t know what I don’t know” is actually a idea from the Johari Window, a model with gives you insight on your behavior and of those around you, leading to better communication.

There are 4 categories:

known to self and known to others

This is the openspace. Anything in here can be communicated properly. The goal is to broaden openspace and increase mutual trust.

unknown to self and known to others

This is the blind spot. It’s seen by others, but the self is not aware. To point out someone else’s blind spot, start your phrasing with “I noticed that…“ to be less accusatory and frame it more as an observation. This’ll effectively shift things to the open space, to be more openly discussed and improved.

known to self and unknown to others

This is the hidden area. Secrets or intentionally omitted knowledge.

unknown to self and unknown to others

This is the unknown area. There is no communication about this, and both parties are unaware of this information.

Openly asking questions and engaging with each other will help resolve conflicts, misunderstandings, and reach better negotiation and results.


On another note, I was able to pay for my tuition and still have a bit leftover for living expenses! This is a first, feels good to be self-sufficient. Currently waiting for OSAP to roll in, ahaha.

Not too shook, per se, but still a pleasant surprise and perk for being in the Waterloo co-op program.

that’s all

That’s all, until I think of more.