Miscellaneous - vidyasekaran/current_learning GitHub Wiki
https://www.thoughtworks.com/radar
https://github.com/search?q=stars:%3E1&s=stars&type=Repositories
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/
https://docs.aws.amazon.com/cdk/latest/guide/home.html
https://docs.aws.amazon.com/cdk/latest/guide/serverless_example.html
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
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
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)
git clone https://github.com/TechPrimers/spring-boot-lazy-init-example.git (forked)
now https://github.com/vidyasekaran/spring-boot-lazy-init-example.git
mvn clean install /home/graalvm/spring-boot-lazy-init-example/> docker build -t spring-boot-graalvm .
[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
docker run -p 8080:8080 spring-boot-graalvm:latest
$ Run C Program
[root@ip-172-31-39-218 graalvm]# docker run -it oracle/graalvm-ce:1.0.0-rc16 bash
[root@ip-172-31-39-218 graalvm]# clang -c -O1 -emit-llvm helloworld.c ( Use llvm and create object file ".bc"
bash-4.2# lli helloworld.bc Hello, World!bash-4.2#
https://medium.com/@alisnagina/how-to-install-lombok-in-sts-eclipse-on-window-10-2e2169b41636
https://www.vogella.com/tutorials/Logging/article.html
https://www.vojtechruzicka.com/spring-boot-version/
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