Today's Question:  What does your personal desk look like?        GIVE A SHOUT

 ALL


  What is encryption? Its role in the modern age

“Messages and calls are end-to-end encrypted.” If you are a WhatsApp user, you must have read this statement at the top of chats you open. Now, what does it mean? The statement signifies that all the messages or voice notes shared between users are encrypted, and no one can read or listen in on them.As mostly all of us use messaging apps and emails, information security has become a major concern. Moreover, we don’t know how many digital footprints we leave on the web can be tracked and used against us. We expose most of the details without even realizing it. For instance, by...

846 0       DATA SECURITY VPN


  Dos and Don’ts in Test automation in your project

Test automation is a vital step for any digital solution. With time, its architecture gets more complex, new features are added, and it acquires more users. Thus, your QA team needs to spend more time and effort to ensure the application usability and smooth user experience with no bugs and defects.So here are the things you need to consider before the start of the automation initiative:Define Success MetricsIt’s hard to measure success until you haven’t set up clear goals from the automation. It can be the complete automation of unit tests in the project, or increase the tests cov...

803 0       TESTING TEST AUTOMATION


  How does GoLang know how many CPUs to use?

When running lscpu command on Linux, it will list the CPU info on the machine. Take one example where there is one CPU with 2 cores and each core has two threads which indicates there are 4 cores available.Now let's see how many cores GoLang program would identify.From output, NumCPU and GOMAXPROCS both output 4 which is expected. How does go runtime get this info, does it get it through similar command like lscpu or /proc/cpuinfo? Let's dig more in GoLang's source code.In runtime/debug.go, it tells that this value is from the global variable ncpu which is set when process starts and...

6,902 0       NCPU GOLANG CPU


  About go get and go install in Go 1.16

Go version 1.16 beta1 has been released on 18 Dec 2020, major features of Go 1.16 have been finalized with this beta release. Many people are discussing about the support of Apple M1, however, this post will not cover this topic. Instead the focus will be on go get and go install changes.There are lots of changes related to modules in Go 1.16, the details can be found in the release note. Below are some of the key highlights.GO111MODULE is on by default, if wanna keep old behavior, needs to set it to auto. This means that GOPATH would gradually get away from us.go install can take a versi...

12,926 0       GOLANG GO 1.16 GO INSTALL


  Kubernetes: Docker out

Recently,The hottest news in the Kubernetes circle that docker will be deprecated has been confirmed by the release of 1.20.Docker support in the Kubelet is now deprecated and will be removed in a future release. The Kubelet uses a module called “dockershim” which implements CRI support for Docker and it has seen maintenance issues in the Kubernetes community. We encourage you to evaluate moving to a container runtime that is a full-fledged implementation of CRI (v1alpha1 or v1 compliant) as they become available. — from Kubernetes 1.20 changelogThe news caused a tremend...

3,215 0       DOCKER KUBERNETES DOCKERSHIM


  The hidden risk of passing slice as function parameter

In Go's source code or other open source libraries, there are lots of cases where a slice pointer is passed to function instead of slice itself. This brings up a doubt why not passing slice directly as its internal is backed by an array pointer to point to underlying data?For example, in log package, the formatHeader function takes a parameter buf as type *[]byte instead of []byte.func (l *Logger) formatHeader(buf *[]byte, t time.Time, file string, line int) {}Let's understand the rationale behind this starting with an example.func modifySlice(innerSlice []string) { innerSlice[0] ...

7,993 2       GOLANG SLICE SLICE POINTER


  Fix could not read Username for 'https://xxx.com': terminal prompts disabled

Recently was working on a project which needed to build a docker image, but unfortunately it kept failing as below error was seen.fatal: could not read Username for 'https://xxx.com': terminal prompts disabledBased on the error, it looked like it was trying to pull code from remote Gitlab repository but failed as the terminal prompt is disabled.At first glance, have a doubt why it needs terminal prompt to be enabled? It should just succeed and without prompting for anything. The only reason for prompting is that it needs user authentication to login to the remote Gitlab repo and fetch code.&nb...

8,712 0       DOCKER TERMINAL PROMPTS DISABLED GIT


  Push docker image to remote AWS ECR

With the popularity of distributed and large-scale systems, there are more and more adoptions of cloud services. One of the most popular container in the market is Docker and one of the most popular cloud service provider is AWS. From development perspective, there is frequent need to push local docker image to remote ECR for debugging or testing purpose.Normally when a code change is done and the committed change would go through a series of process like code review, push to remote repo, merge to master, trigger CI/CD pipeline and then get docker image generated and pushed to ECR, thereafter ...

1,385 0       AWS ECR DOCKER AWS CLOUD