Home - vidyasekaran/current_learning GitHub Wiki

Top 3 Priorities

  1. Write e book on meditation practises and its benefits. Title - a meditators guide

whatever you talk or think on these lines capture it diary -

  1. Create a udemy course on meditation - prepare course content

  2. Complete python udemy course

  3. Complete learnings in selling in amazon.

  4. Can create website (interview prep) and get google ads

  5. Write document in medium.

  6. Write stories in https://vocal.media/

  7. sell service in gumroad

7 AI Tools

  1. runway - to video / image edits / remove some of the images from a video

  2. Pictory - create videos by uploading text - you can create voice over, replace videos in background etc..

  3. tome (beta.tome.app) - story telling app --> Story telling application

    example : How to create a presentation for my udemy course.. How to make make online...

  4. Browse ai - extract any informaton from any site...

  5. Midjourney - generate image by putting text.

  6. Jasper - create social media content in minutes like catch tiktop video, youtube, optimize blog spots, emails, create website copy, create art or images.

  7. openai -

Create Udemy Courses for passive income steps

https://www.youtube.com/watch?v=wv9lzxBHmeM

Idea picked up from - Brko Banks youtube channel (Build Passive Income With ChatGPT OpenAI - $5000 A MONTH FULL COURSE)

  1. Do a research in udemy to find which course sell better

    https://www.udemy.com/instructor/marketplace-insights/

  2. Once you find the course to create you can then use 3 tools

    a. ChatGPT to write the course outline and also content

    b. Google Slides to make presentation

    c. OBS Studio to record screen.

Tools to create youtube videos

  1. How to create a faceless videos on youtube - Inspiration - Ishan Sharma

  2. Create video ideas and scripts using ChatGPT

  3. Use Veed.io to convert the script to audio using AI voiceover and then use stock footage and generate text using Veed itself and hit export:

  4. Make the thumbnail using Canva:

  5. Use VidIQ and TubeBuddy to find long tail keywords and optimise the videos for search

Tools

  1. ChatGPT - content

  2. Veed.io - convert script to audio, generate text for captions

  3. Canva - Thumbnail, presentation, videos

  4. VidIQ / TubeBuddy - optimise the videos for search

  5. unsplash for photos used as thumbnails ( thumbnail is a still image that acts as the preview image for your video)

How To Create YouTube Videos Within Minutes Using AI Content Creation Tools https://www.youtube.com/watch?v=sZHbKIDYyHI

https://www.youtube.com/watch?v=bduWjKNrnAg Domain Modelling

Lets start with student schedule example requirement

Requirement

  1. Student want to view a course schedule

  2. Admin changes a template

  3. Domain model should support requirements and not just reflect requirements. For this we need to think about what information is required to fulfil the requirements and ask for clarifications. From above requirement we can ask what the schedule actually show? probably the time and date of the scheduled event for courses a student is registered to.

  4. What about template? should a template be globally applied? does student select template when viewed? yes do we need to know which admin changed template? no

so for domain model we need to ask stuff that is not mentioned in requirements and stuff that need clarification those we need to ask business to make decision

student ----attends ------Course ----- has scheduled -----events

Requirement has activities, behaviour, rules, actors, dynamic

Domain model - information, relations, support requirements, static.

Procedure to develop Domain Model https://www.youtube.com/watch?v=rXHexaHMu80

All we need to find is the Domain, its attributes and its association between them.

From requirements the noun becomes a domain model object and verbs make associations.

Conceptual Class Categories Examples

  1. Physical or Tangible Objects Airplane, Register

  2. Specifications, design or ProductSpecification, Flight Description discription of things

  3. Places StoreRoom, Airport

  4. Transactions Sale, Payment, Reservations

  5. Transaction Line Item SalesLineItem

  6. Roles of People Cashier, Pilot

  7. Container of things Store, Bin

  8. Events Sale, Payment, Crash

  9. rules and policies Refund Policy, CancellationPolicy

  10. Catelog Product Catelog, PartsCatelog

Spring Integration reading - Spring integration in action

http://1.droppdf.com/files/1flkE/spring-integration-in-action.pdf

https://docs.spring.io/spring-integration/docs/2.1.0.RC1/reference/htmlsingle/

Spring Integration provides an extension of the Spring programming model to support the well-known Enterprise Integration Patterns. It enables lightweight messaging within Spring-based applications and supports integration with external systems via declarative adapters. Those adapters provide a higher-level of abstraction over Spring's support for remoting, messaging, and scheduling. Spring Integration's primary goal is to provide a simple model for building enterprise integration solutions while maintaining the separation of concerns that is essential for producing maintainable, testable code.

  1. Spring Integration Overview 2.1 Background One of the key themes of the Spring Framework is inversion of control. In its broadest sense, this means that the framework handles responsibilities on behalf of the components that are managed within its context. The components themselves are simplified since they are relieved of those responsibilities. For example, dependency injection relieves the components of the responsibility of locating or creating their dependencies. Likewise, aspect-oriented programming relieves business components of generic cross-cutting concerns by modularizing them into reusable aspects. In each case, the end result is a system that is easier to test, understand, maintain, and extend.

Furthermore, the Spring framework and portfolio provide a comprehensive programming model for building enterprise applications. Developers benefit from the consistency of this model and especially the fact that it is based upon well-established best practices such as programming to interfaces and favoring composition over inheritance. Spring's simplified abstractions and powerful support libraries boost developer productivity while simultaneously increasing the level of testability and portability.

Spring Integration is motivated by these same goals and principles. It extends the Spring programming model into the messaging domain and builds upon Spring's existing enterprise integration support to provide an even higher level of abstraction. It supports message-driven architectures where inversion of control applies to runtime concerns, such as when certain business logic should execute and where the response should be sent. It supports routing and transformation of messages so that different transports and different data formats can be integrated without impacting testability. In other words, the messaging and integration concerns are handled by the framework, so business components are further isolated from the infrastructure and developers are relieved of complex integration responsibilities.

As an extension of the Spring programming model, Spring Integration provides a wide variety of configuration options including annotations, XML with namespace support, XML with generic "bean" elements, and of course direct usage of the underlying API. That API is based upon well-defined strategy interfaces and non-invasive, delegating adapters. Spring Integration's design is inspired by the recognition of a strong affinity between common patterns within Spring and the well-known Enterprise Integration Patterns as described in the book of the same name by Gregor Hohpe and Bobby Woolf (Addison Wesley, 2004). Developers who have read that book should be immediately comfortable with the Spring Integration concepts and terminology.

2.2 Goals and Principles Spring Integration is motivated by the following goals:

Provide a simple model for implementing complex enterprise integration solutions.

Facilitate asynchronous, message-driven behavior within a Spring-based application.

Promote intuitive, incremental adoption for existing Spring users.

Spring Integration is guided by the following principles:

Components should be loosely coupled for modularity and testability.

The framework should enforce separation of concerns between business logic and integration logic.

Extension points should be abstract in nature but within well-defined boundaries to promote reuse and portability.

Fri 29 may

https://medium.com/better-programming/deploy-a-spring-boot-app-on-aws-ecs-with-github-actions-669928f62043

The Java Developer’s Guide to SSL Certificates https://medium.com/@codebyamir/the-java-developers-guide-to-ssl-certificates-b78142b3a0fc

File download https://www.javainuse.com/spring/boot-file-download

Mvn dependency https://stackoverflow.com/questions/4955635/how-to-add-local-jar-files-to-a-maven-project

DNS name locking https://blog.codeship.com/using-the-add-host-flag-for-dns-mapping-within-docker-containers/

Read docker volume in java https://stackoverflow.com/questions/44786533/read-local-file-system-with-java-from-docker-container

Currently doing

  1. Creating MS and deploy in Docker Reference - Mastering microservices with Java 9 Book. Microservices Deployment Cookbook.

Mastering microservices with Java 9 Book - completed the below task

  1. create a geolocation springboot project in /home/vidguru/workspace/geolocation
  2. created a runnable jar
  3. build it and run root@guru:/home/vidguru/workspace/geolocation# mvn clean package spring-boot:run
  4. post some message

root@guru:/home/vidguru/workspace/geolocation# curl -H "Content-Type:application/json" -X POST -d '{"timestamp":1468203975,"userId":"f1196aac-470e-11e6-beb8-9e71128cae77","latitude":41.803488,"longitude":-88.144040}' http://localhost:8080/geolocation

  1. find - it spits whatever posted

root@guru:/home/vidguru/workspace/geolocation# curl -H "Content-Type:application/json" -X GET http://localhost:8080/geolocation

  1. dockerized it by writing dockerfile (/home/vidguru/workspace/geolocation/Dockerfile)

  2. build it docker build -t packt/geolocation .

  3. run it docker run -p 8080:8080 packt/geolocation

  4. created a repository (https://hub.docker.com/) and pushed it to docker hub docker push vidguru/geolocation

  5. Created kubernetes login (https://console.cloud.google.com/home/dashboard?project=cosmic-dialect-255107&pli=1)

  6. continue from Page 239 "Setting up Kubernetes cluster using Docker"

root@guru:/home/vidguru/workspace/geolocation# curl -Lo minikube https://storage.googleapis.com/minikube/releases/v0.12.0/minikube-darwin-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin/

Deploy springboot app in AWS (28 mins video) https://www.youtube.com/watch?v=2oXVYxIPs88 https://github.com/in28minutes/deploy-spring-microservices-to-aws-ecs-fargate

Need to start from Page 127 to push it to docker and run in AWS.

Pushing your image to Docker Hub

  1. Udemy -AWS Solution ARchitect course. Reference - AWS Certified Solutions Architect Study Guide_ Associate SAA-C01 Exam.

  2. Installing Docker in windows from https://www.shaileshjha.com/step-by-step-how-to-install-docker-in-windows/

Learn below from Full Stack AngularJS for java developer

-- Chapter 3: Creating SPA -- Chapter 4: Securing Your RESTful API Using Spring Security -- Chapter 5: Consuming Secured RESTful Services Using AngularJS and app monitoring Chapter 7: Application Monitoring Using Spring Boot Actuator�

also from Mastering WebService with java 9

  1. Chap 4 Implementing a Microservice
  2. Chap 5 Deployment and Testing
  3. Chap 6 Reactive Microservices
  4. Chap 7 - OAuth - Securing Microservices
  5. Chap 9 - Best Practices and Common Principles.
  6. Chap 10 - Troubleshooting Guide
  7. Chap 8 - Consuming Services Using a Microservice Web Application

Reading angular from ng angular 5 page 75

Create docker image

Prospringboot2 Deploy docker in https://www.youtube.com/watch?v=9K3OEhm2lR0&feature=share

CHAPTER 8 Security with Spring Boot reading page 247 present in microservices folder


Pro spring boot chapter 8 - SECURITY WITH SPRING BOOT -

read and understood below stuff

Chapter 8: Security with Spring Boot........ 219 Spring security with jdbc oauth2 completed.


Spring boot spring security watched YouTube link by javabrains.io

https://youtu.be/PhG5p_yv0zs (Basic) - read https://youtu.be/iyXne7dIn7U ( in memory user auth) learning

Authorisation in spring security read https://youtu.be/payxWrmF_0k

Authentication, authorisation,principal,role ,granted authorities https://youtu.be/I0poT4UxFxE

Docker swarm - orchestrates docker container running in master slave architecture https://youtu.be/bU2NNFJ-UXA (Raghav pal)

Docker in Tamil fundas ——————————————————————- https://youtu.be/4IeAA0oIMhU ( what is docker) https://youtu.be/IpBz4rW06G8 ( run web app in docker)

Docker tutorial series by /rominirani https://rominirani.com/docker-tutorial-series-a7e6ff90a023

Docker swarm or kubernetes or mesos pick your framework start from (25:52) https://youtu.be/1dgUXNVQS5o

Kubernetes in 5 mins https://youtu.be/PH-2FfFD2PU

Kubernetes in 8 mins https://youtu.be/2vMEQ5zs1ko

Installing kubernetes in ubuntu https://www.youtube.com/watch?v=tbocjZHw0I8

following this links https://www.learnitguide.net/2018/08/install-and-configure-kubernetes-cluster.html

  1. https://www.learnitguide.net/2018/08/what-is-kubernetes-learn-kubernetes.html
  2. https://www.learnitguide.net/2018/08/create-kubernetes-deployment-services.html
  3. https://www.learnitguide.net/2018/08/install-and-configure-kubernetes-cluster.html (yet to do- its multinode cluster).

Kubernetes Installation https://ubuntu.com/kubernetes/install

then go ahead follow this to learn kubernetes in single machine https://tutorials.ubuntu.com/tutorial/install-a-local-kubernetes-with-microk8s#1

microk8's not added on path refer https://itnext.io/a-local-kubernetes-with-microk8s-33ee31d1eed9 so exec like this : root@guru:/snap/bin# ./microk8s.enable dashboard dns

Deploy springboot microservices in google cloud kubernetes engine : https://youtu.be/jSYxW_c3M_E (getting error while building docker image)

Google cloud computing codelabs https://codelabs.developers.google.com/?cat=Maps+Platform

Google Cloud Platform : https://console.cloud.google.com/kubernetes Spring boot app used was : https://github.com/TechPrimers/k8s-spring-boot-excd spring-boot-lazy-init-example/ample

In google Cloud Shell cd /home/vidguru1008 vidguru1008@cloudshell:$ git clone https://github.com/TechPrimers/spring-boot-lazy-init-example.git vidguru1008@cloudshell:$cd spring-boot-lazy-init-example/ vidguru1008@cloudshell:~$java -jar spring-boot-lazy-init-example-0.0.1-SNAPSHOT.jar

in cloud shell click on Web preview and hit > https://8080-dot-9327069-dot-devshell.appspot.com/lazy to see > "hello youtube"

Now Create a docker instance using maven plugin called jib maven plugin

vidguru1008@cloudshell:~$./mvnw com.google.cloud.tools.:jib-maven-plugin:build -Dimage=grc.io/$GOOGLE_CLOUD_PROJECT/spring-boot-example:v1

Kubernetes step by step https://medium.com/javarevisited/kubernetes-step-by-step-with-spring-boot-docker-gke-35e9481f6d5f

Working from local machine to Google kubernetes engine https://developer.okta.com/blog/2019/04/01/spring-boot-microservices-with-kubernetes

******************Deploy SpringBoot microservices in GKE ************** - Works fine except 1 minior jib version correct

https://codelabs.developers.google.com/codelabs/cloud-springboot-kubernetes/index.html#0

you will need to add jib version change this in Step 5 to this ./mvnw -DskipTests com.google.cloud.tools:jib-maven-plugin:1.7.0:build -Dimage=gcr.io/$GOOGLE_CLOUD_PROJECT/hello-java:v1

Rollout an upgrade not working - but completed the steps


Next Steps

Java on Google Cloud Platform: https://cloud.google.com/java/ For Java examples: https://cloud.google.com/java/samples For a longer and more complete tutorial of Kubernetes, see bit.ly/k8s-lab where it'll take you through deploying a full-stack application.

deploy angular app in kubernetes https://blog.mayadata.io/openebs/steps-to-deploy-angular-application-on-kubernetes

Deploy docker plugin in VScode and run angular project in docker also push docker image to docker hub https://youtu.be/etA5xiX5TCA

Push angular docker image to kubernetes dashboard https://youtu.be/je5WRKxOkWQ

Spring Boot learning - Youtube Java Brains - Start from 12 https://www.youtube.com/watch?v=msXL2oDexqw&list=PLqq-6Pq4lTTbx8p2oCgcAQGQyqN8XeA1x

Dockerize Angular App https://www.youtube.com/watch?v=etA5xiX5TCA

Install docker in windows https://www.youtube.com/watch?v=S7NVloq0EBc

Kubernetes quick read https://dzone.com/articles/kubernetes-in-10-minutes-a-complete-guide-to-look

ECOMMERCE TECHNOLOGY https://www.bigcommerce.com/blog/saas-vs-paas-vs-iaas/#the-three-types-of-cloud-computing-service-models-explained

Advanced ms hunter book read 50% of below topics ■Chapter 2: HTTP API Design - read most part Chapter 3 deployments

Microservices Deployment Cookbook Book Need to read chap 4. Deploying Microservices on Kubernetes

12 factor 28 mins https://youtu.be/wjqBxJX35fU

  1. Backing service - no distinction between local sand remote service, should be able to attach and detract service at will.
  2. Build, deploy,run - have separate stages.
  3. Config - should externalise config spring cloud config helps.
  4. Codebase - have single code base.
  5. Dependencies - isolate dependencies.
  6. Disposability- process to start and be killed gracefully.
  7. Dev prod parity - maintain similar state of Dev prod env.
  8. Process - Execute the app as one or more stateless processes.
  9. Port binding - expose service via port binding.
  10. Process model scale out via process model.
  11. Log consider logs as event streams.
  12. Admin process should be able to run adhocly.

Spring cloud config example https://dzone.com/articles/using-spring-config-server https://github.com/chuchip/servercloudconfig.git

Reading mastering ms chap 2 ddd and Chap 3 implementing a microservices , chap 4 an 5

For restful best practices

https://www.packtpub.com/application­development/restful­java­pa tterns­and­best­practices

Reading Google cloud platform Start from page 138

GKE, App Engine, and Cloud Functions

Deploy springboot in docker compose

https://thepracticaldeveloper.com/2017/12/11/dockerize-spring-boot/

Practise lots of samples in

https://codelabs.developers.google.com/codelabs/cloud-springboot-kubernetes/index.html?index=..%2F..index#11

——————————————-

https://stackoverflow.com/questions/29490418/iterating-and-filtering-two-lists-using-java-8

———————————————-

API gateway https://youtu.be/lmFB0YSHri8

API proxy vs api gateway https://youtu.be/U16Ra5tmiqs

—————-

——————— https://www.codementor.io/eh3rrera/using-java-8-method-reference-du10866vx

————————

Microservices architecture https://microservices.io/patterns/microservices.html

Introduction to microservices https://www.nginx.com/blog/introduction-to-microservices/

https://www.nginx.com/blog/building-microservices-using-an-api-gateway/

Microservices

The Difference Between IPv4 and IPv6 Addresses An IP address is binary numbers but can be stored as text for human readers. For example, a 32-bit numeric address (IPv4) is written in decimal as four numbers separated by periods. Each number can be zero to 255. For example, 1.160.10.240 could be an IP address.

IPv6 addresses are 128-bit IP address written in hexadecimal and separated by colons. An example IPv6 address could be written like this: 3ffe:1900:4545:3:200:f8ff:fe21:67cf.


Best practices

Kubernetes https://www.weave.works/blog/kubernetes-best-practices

Docker How to break microservices from monolith app Microservices netflix components pics- hystrix,log collection using sleuth etc. Java 9 10 to 13 new features

Kubernetes

https://opensourceforu.com/2019/11/demystifying-kubernetes/?utm_source=OSFYNS13NOV&utm_medium=Email&utm_campaign=OSFYNOV3W

Kubernetes

Kubernetes is a portable, extensible, open source platform for managing containerised workloads and services, and it facilitates both configuration and automation.

Pods: A pod is the basic execution unit of a Kubernetes application – the smallest and simplest unit in the Kubernetes object model that you create or deploy. A pod represents processes running on a Kubernetes cluster.

ReplicaSet: The purpose of a ReplicaSet is to maintain a stable set of replica pods running at any given time. A ReplicaSet contains information about how many copies of a particular pod should be running. To create multiple pods to match the ReplicaSet criteria, Kubernetes uses the pod template. The link a ReplicaSet has to its pods is via the latter’s metadata.ownerReferences field, which specifies which resource owns the current object.

Services: Services are an abstraction to expose the functionality of a set of pods. With Kubernetes, you don’t need to modify your application to use an unfamiliar service discovery mechanism. Kubernetes gives pods their own IP addresses and a single DNS name for a set of pods, and can load-balance across them.

Volumes: A Kubernetes volume has an explicit lifetime — the same as the pod that encloses it. Consequently, a volume outlives any container that runs within the pod and the data is preserved across container restarts. Of course, when a pod ceases to exist, the volume will cease to exist, too. Perhaps more important than this is that Kubernetes supports many types of volumes, and a pod can use any number of them simultaneously.

At its core, a volume is just a directory, possibly with some data in it, which is accessible to the containers in a pod. How that directory comes to be, the medium that backs it and its contents are determined by the particular volume type used.

Kubernetes in action reading page 84 to 91

Chap 4 Replication and other controllers: deploying managed pods

Docker cheatsheet

https://www.docker.com/sites/default/files/d8/2019-09/docker-cheat-sheet.pdf

https://www.scnsoft.com/blog/java-reactive-programming

Deploy ms in kubernetes

https://developer.okta.com/blog/2019/04/01/spring-boot-microservices-with-kubernetes

Deploy ms api kubernetes

https://dzone.com/articles/quick-guide-to-microservices-with-kubernetes-sprin

Deploy ms in kubernetes https://gorillalogic.com/blog/build-and-deploy-a-spring-boot-app-on-kubernetes-minikube/ https://itnext.io/migrating-a-spring-boot-service-to-kubernetes-in-5-steps-7c1702da81b6

Learning CloudFoundry https://howtodoinjava.com/spring-cloud/pivotal-cloud-foundry-spring-boot-example/

deployed cloudfoundry CLI in local C:\Users\shant\Downloads\cf-cli-installer_6.47.2_winx64

deployed in cloudfoundry

Need to create db stuff and try locally

D:\workspace\spring-boot-microservices-series\zipkin\zipkin-service-1\target>cf push zipkin-service-1 -p zipkin-service-1-0.0.1-SNAPSHOT.jar

need to try - https://www.javainuse.com/pcf/pcf-sql D:\workspace\Microservice\boot-jdbc-pcf

locally i created table and inserted records in tourmgmt schema and the service works fine but when i created did

cf push to deploy in CF it throws error reading manifest file.

hit below service

https://zipkin-service-1.cfapps.io/zipkin

Create Jar from Springboot project https://www.concretepage.com/questions/510

Elegant Multi-Tenancy for Microservices — Part I: Why Bother?

https://medium.com/@Integral_io/elegant-multi-tenancy-for-microservices-part-i-why-bother-a88234f9d293

SpringBoot mail https://www.mkyong.com/spring-boot/spring-boot-how-to-send-email-via-smtp/