Monday, October 14, 2019

Golang tools

Dependency management tools such as Godep, Sltr, etc.
Go’s templating language
Go’s code generation tools, such as Stringer
Popular Go web frameworks, such as Revel
Router packages, such as Gorilla Mux
Godoc comments

Tuesday, October 8, 2019

Software Engineering Blog posts

Crypto Notes

https://wanguolin.github.io/assets/cryptography_and_network_security.pdf
GF(2^n) and it's use in AES: https://engineering.purdue.edu/kak/compsec/NewLectures/Lecture7.pdf (and uploading the pdf to my google drive, in case it goes missing in the future from the Purdue link)

Kubernetes Notes


  1. Getting Started: https://kubernetes.io/
  2. Cloud Native Computing Foundation:  https://www.cncf.io/
  3. Course to learn Kubernetes: https://courses.edx.org/courses/course-v1:LinuxFoundationX+LFS158x+2T2019/course/. As a first step install the software called Minikube ( see Instructions here: https://kubernetes.io/docs/setup/learning-environment/minikube/), as a part of which you will need to install kubectl 
Install go 1.12 (google for it), then clone kubernetes source code from git. We will start navigating the code base using the kubectl command, use the following to build kubectl e.g. on my mac
$ make WHAT='cmd/kubectl'
+++ [1014 17:55:59] Building go targets for darwin/amd64:
    cmd/kubectl 
which shows up in the output directory as :
./_output/local/go/bin/kubectl
./_output/local/bin/darwin/amd64/kubectl 
To look at the source code ; go to the directory cmd; you will see the following files that have an entrypoint main defined, which points out all the different things that the kubernetes product is built out of.

  • clicheck/check_cli_conventions.go:func main() {
  • cloud-controller-manager/controller-manager.go:func main() {
  • gendocs/gen_kubectl_docs.go:func main() {
  • genkubedocs/gen_kube_docs.go:func main() {
  • genman/gen_kube_man.go:func main() {
  • genswaggertypedocs/swagger_type_docs.go:func main() {
  • genyaml/gen_kubectl_yaml.go:func main() {
  • hyperkube/main.go:func main() {
  • importverifier/importverifier.go:func main() {
  • kube-apiserver/apiserver.go:func main() {
  • kube-controller-manager/controller-manager.go:func main() {
  • kube-proxy/proxy.go:func main() {
  • kube-scheduler/scheduler.go:func main() {
  • kubeadm/kubeadm.go:func main() {
  • kubectl/kubectl.go:func main() {
  • kubelet/kubelet.go:func main() {
  • kubemark/hollow-node.go:func main() {
  • linkcheck/links.go:func main() {
  • preferredimports/preferredimports.go:func main() {
  • verifydependencies/verifydependencies.go:func main() {