Skip to main content

Posts

Cheatsheet: Docker

  version check          docker version Create a container — setup File System Snapshot to be used docker create <image-name> Start a container — Executes startup command        -a - will show you all the logs/info coming out of the container  docker start -a <container-ID> run a docker container from image — Create + Start docker run <image-name> Default command override docker run <image-name> <override-command> Eg: "docker run busybox ls” List all running containers docker ps List all containers ever created docker ps --all Remove stopped containers      — have to redownload images  docker system prune   Logs from container docker logs <container-ID> Stop a container  — A hardware signal “SIGTERM" is sent to process, this gives time for program to clean-up and shut down — If container doesn’t stop in 10 secs after issuing SIGTERM, then do...

Cheatsheet: Kafka

       Start Zookeeper: bin/zookeeper-server-start.sh config/zookeeper.properties Start Kafka: bin/kafka-server-start.sh config/server.properties Create topic: kafka-topics.sh --zookeeper 127.0.0.1:2181 --topic <--topic-name--> --create --partitions 2 --replication-factor 1 list topics: kafka-topics.sh --zookeeper 127.0.0.1:2181 --list describe topic: kafka-topics.sh --zookeeper 127.0.0.1:2181 -describe --topic <--topic-name--> delete topic: kafka-topics.sh --zookeeper 127.0.0.1:2181 --topic <--topic-name--> --delete produce message to topic: kafka-console-producer.sh --bootstrap-server 127.0.0.1:9092 -topic <--topic-name--> consume messages from topic: kafka-console-consumer.sh --bootstrap-server 127.0.0.1:9092 -topic <--topic-name--> --from-beginning Happy Coding  👨‍💻

Settings.xml for Maven, JFrog

For development and deployment of applications we always use an artifactory in real-time world to host artifacts needed for your build and also as a target to deploy artifacts generated in the build process. For Maven, to communicate with artifactory we need a settings.xml file which is usually located at "/User/rake/.m2/settings.xml" this file consists of how to authenticate to the artifactory servers and authorizations to read/ write to different locations like release, snapshots e.t.c... Settings.xml can be generated using the artifactory you're using which in my case is JFrog , but here's a sample settings file for your reference incase you're feeling lazy☺ <?xml version="1.0" encoding="UTF-8"?> <settings xsi:schemaLocation= "http://maven.apache.org/SETTINGS/1.1.0 http://maven.apache.org/xsd/settings-1.1.0.xsd" xmlns= "http://maven.apache.org/SETTINGS/1.1.0" xmlns:xsi= "http://www.w3.org/2001/XM...

Find classes that use certain annotation - Java, Spring

Code to read classes that use a certain annotation: import org.springframework.beans.factory.config.BeanDefinition ; import org.springframework.context.ApplicationContext ; import org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider ; import org.springframework.core.type.filter.AnnotationTypeFilter ; ClassPathScanningCandidateComponentProvider classPathScanningCandidateComponentProvider = new ClassPathScanningCandidateComponentProvider ( false ); classPathScanningCandidateComponentProvider . addIncludeFilter ( new AnnotationTypeFilter ( CustomAnnotation . class )); Set < BeanDefinition > beanDefinitions = classPathScanningCandidateComponentProvider . findCandidateComponents ( "com.rake.demo.beans" ); for ( BeanDefinition beanDefinition: beanDefinitions ) { System . out . println ( beanDefinition . getBeanClassName ()); } Annotation: import java.lang.annotation.ElementType ; import java.lang.annotation.Reten...

Go #6 - REST Api with Go using net/http

net/http: This is available out of the box in Go language. Package "net/http"  provides HTTP client and server implementations which can be used to make common HTTP requests like GET, POST, PUT, DELETE e.t.c.. While building REST Api's with Go using net/http , here are few methods and interfaces we should understand: type Handler   type Handler interface { ServeHTTP(ResponseWriter, * Request) } - A Handler is responsible for responding to HTTP requests. This interface has only one method ServeHTTP(ResponserWriter, *Request) - You can define your own struct as a Handler which implements  ServeHTTP  method with ResponseWriter and pointer to Request as arguments  package main import ( "net/http" ) type server struct {} func (s * server) ServeHTTP(writer http.ResponseWriter, req * http.Request) { writer.Header().Set( "Content-Type" , "application/json" ) writer.WriteHeader(http.StatusOK) writer...

Go #5 - Receiver Functions in Go

Receiver Functions: Function Receiver sets a method on variables we create. syntax: func (t type ) functionName() {} code: employee.go package employee import "fmt" // Employee struct type employee struct { name string age int salary int } // constructor func NewEmployee(name string , age int , salary int ) * employee { return & employee{ name: name, age: age, salary: salary, } } // print employee func (e employee) ToString() { fmt.Printf( "%s is %d years old with salary %d \n" , e.name, e.age, e.salary) } - Notice the ToString() method in employee.go , it is the receiver's function for employee type - So any new variable of type employee will have access to the ' ToString() ' method main.go package main import "trygo/employee" func main() { rake := employee.NewEmployee( "Rake" , 13 , 4566 ) rake.ToString() } - Calling receiver's function for t...

ESS - 3.Tools and Technologies involved in modern search architecture - Part II

This discussion is continuation of Tools and Technologies involved in modern search architecture . Please use the  link  to access the part-I for a quick recap as the topics mentioned there may be referred here. In Search implementation once you're done with the challenges of Crawling the content and building an Inverted Index to quickly access the matched documents two more challenges are up for you: Relevant results to the user - Relevance Score Deliver results to the user - SERP Relevance Score: Relevance scoring is used by search engines to identify the order in which the documents should appear. Here's a documented definition: Relevance scoring uses the Boolean model to find matching documents and a formula called the practical scoring function to calculate relevance. This formula borrows concepts from TF-IDF (term frequency/inverse document frequency) and the vector space model but adds more modern features like a coordination factor, field length no...