Miscellaneous - vidyasekaran/current_learning GitHub Wiki

How to keep abreast of latest technologies

https://www.thoughtworks.com/radar

https://techcrunch.com

www.vox.com/recode

https://github.com/trending

https://github.com/search?q=stars:%3E1&s=stars&type=Repositories

https://methodkit.com

google search to find recruiters

site:linkedin.com facebook recruiter (Substitue company name instead of "facebook" to find job in specific company)

AWS Cloud Development Kit and https://www.pulumi.com/

Define cloud infrastructure using familiar programming languages

Getting Started...

https://docs.aws.amazon.com/cdk/latest/guide/home.html

Creating a serverless application using the AWS CDK

https://docs.aws.amazon.com/cdk/latest/guide/serverless_example.html

https://aws.amazon.com/cdk/

PS C:\Users\shant> npm install -g aws-cdk PS C:\Users\shant> npm install --save @aws-cdk/aws-ec2 @aws-cdk/aws-ecs @aws-cdk/aws-ecs-patterns PS C:\Users\shant> mkdir aws-cdk PS C:\Users\shant> cd aws-cdk PS C:\Users\shant> cd .\aws-cdk
PS C:\Users\shant\aws-cdk> cdk init app --language=typescript local : C:\Users\shant\aws-cdk>

https://www.journaldev.com/1624/command-design-pattern

Design pattern with useful info on command and decorator pattern https://www.freecodecamp.org/news/the-basic-design-patterns-all-developers-need-to-know/

Install git inside docker image and run integration test https://www.ardanlabs.com/blog/2019/03/integration-testing-in-go-executing-tests-with-docker.html

Integration Testing with Maven - and include this command in DockerFile to build image for integration test

you can create a REST Application and client side test code - Testing With the Failsafe Plugin -By default, the Maven surefire plugin executes unit tests during the test phase, while the failsafe plugin runs integration tests in the integration-test phase.

https://www.baeldung.com/maven-integration-test

#Load Testing using JMeter https://www.youtube.com/watch?v=394RaTosUvM

Things I need to develop

GraalVM

https://www.youtube.com/watch?v=VRb8JSfI9eg https://github.com/graalvm https://en.wikipedia.org/wiki/Language_interoperability You can download graalvm zip from here : https://github.com/oracle/graal/releases

Solving interoperablitiy between multiple languages. Language interoperability is the capability of two different programming languages to natively interact as part of the same system.[1] Interoperability is advantageous because programming languages are optimized for specific tasks, and allowing them to communicate can create better systems.

Graalvm is a poligotvm - oracle and opensource created ploygot vm where we can run programs written in different languages such as java,scala,kotlin,clojure, js,python, ruby,c and c++.

We can develop a system using different languages and it all run in the same JVM. Calling C++ from JS, Java from Scala etc..how it is achieved is the graalvm converts the code to native image and runs the image in that particular JVM.

Compile once and run anywhere concept is going away because most of the time we run programs in linux based environments or docker.

in order to make app load faster and achieve interoperability we have to sacrifice something or the other the sacrifice is build once and run anywhere, Just in time compiler convert the bytecode into machine understandble code for the particular machine. However we are now going to create a native image specifically for a particular machine and we are going to run these images faster than before by leveraging this native image concept.

Lets run Java and C++

In EC2 machine create and pull graalvm container and -it allows us to download graavm and get inside container image bash shell

/home/graalvm> docker run -it oracle/graalvm-ce:1.0.0-rc16 bash

Check java version to ensure graalvm is downloaded

[root@ip-172-31-39-218 graalvm]# docker run -it oracle/graalvm-ce:1.0.0-rc16 bash Unable to find image 'oracle/graalvm-ce:1.0.0-rc16' locally 1.0.0-rc16: Pulling from oracle/graalvm-ce 35defbf6c365: Pull complete 379594e68bc5: Pull complete e309fe2a4fbe: Pull complete cd74e6f2531e: Pull complete afcee6e830bd: Pull complete Digest: sha256:aa8b12e0bf15ffec6581f1a9feb42bf4c4f67d7c57d5739cca5fdc6c25fe4c54 Status: Downloaded newer image for oracle/graalvm-ce:1.0.0-rc16

Check Java, Node, Python and C version

bash-4.2# python --version Python 2.7.5 bash-4.2# lli --version Graal LLVM 6.0.0 (GraalVM CE Native 1.0.0-rc16)

bash-4.2# node -v v10.15.2 bash-4.2# java -version openjdk version "1.8.0_202" OpenJDK Runtime Environment (build 1.8.0_202-20190206132807.buildslave.jdk8u-src-tar--b08) OpenJDK GraalVM CE 1.0.0-rc16 (build 25.202-b08-jvmci-0.59, mixed mode)

To build a spring boot rest application using graalvm base image

git clone https://github.com/TechPrimers/spring-boot-lazy-init-example.git (forked)

now https://github.com/vidyasekaran/spring-boot-lazy-init-example.git

Build Project

mvn clean install /home/graalvm/spring-boot-lazy-init-example/> docker build -t spring-boot-graalvm .

Docker image build

[root@ip-172-31-39-218 spring-boot-lazy-init-example]# docker images REPOSITORY TAG IMAGE ID CREATED SIZE spring-boot-graalvm latest 66354bcfc33a 11 minutes ago 1.76GB

run it -

docker run -p 8080:8080 spring-boot-graalvm:latest

Hit it - http://:8080/lazy

$ Run C Program

Get into graalvm

[root@ip-172-31-39-218 graalvm]# docker run -it oracle/graalvm-ce:1.0.0-rc16 bash

Create a helloworl.c

run it and check if helloworld.bc file is created...

[root@ip-172-31-39-218 graalvm]# clang -c -O1 -emit-llvm helloworld.c ( Use llvm and create object file ".bc"

Run the "helloworl.bc"

bash-4.2# lli helloworld.bc Hello, World!bash-4.2#

How to install lombok in STS/eclipse on window 10

https://medium.com/@alisnagina/how-to-install-lombok-in-sts-eclipse-on-window-10-2e2169b41636

How to include logger

https://www.vogella.com/tutorials/Logging/article.html

Detecting build version and time at runtime in Spring Boot

https://www.vojtechruzicka.com/spring-boot-version/

Kill a windows process

https://stackoverflow.com/questions/39632667/how-do-i-kill-the-process-currently-using-a-port-on-localhost-in-windows

PS C:\WINDOWS\system32> netstat -aon | findstr 8080 TCP 0.0.0.0:8080 0.0.0.0:0 LISTENING 9820 TCP [::]:8080 [::]:0 LISTENING 9820

PS C:\WINDOWS\system32> taskkill /f /pid 9820 SUCCESS: The process with PID 9820 has been terminated.

PS C:\WINDOWS\system32> netstat -aon | findstr 8080

⚠️ **GitHub.com Fallback** ⚠️