Tech C**P
15 subscribers
161 photos
9 videos
59 files
304 links
مدرس و برنامه نویس پایتون و لینوکس @alirezastack
Download Telegram
ghz:
- Simple gRPC benchmarking and load testing tool inspired by hey and grpcurl.

sample ghz command to load test a service:

ghz --insecure --proto my_proto.proto --call my_proto.AService.MethodById -d '{"user_id": "5d32b19b6fea7a28de186b15"}' 0.0.0.0:9000


The sample output will be:

Summary:
Count: 200
Total: 557.11 ms
Slowest: 319.18 ms
Fastest: 33.30 ms
Average: 132.56 ms
Requests/sec: 358.99

Response time histogram:
33.300 [1] |
61.887 [6] |∎∎
90.475 [98] |∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎∎
119.062 [23] |∎∎∎∎∎∎∎∎∎
147.650 [12] |∎∎∎∎∎
176.238 [10] |∎∎∎∎
204.825 [7] |∎∎∎
233.413 [12] |∎∎∎∎∎
262.000 [9] |∎∎∎∎
290.588 [9] |∎∎∎∎
319.176 [13] |∎∎∎∎∎

Latency distribution:
10% in 70.25 ms
25% in 83.84 ms
50% in 89.90 ms
75% in 178.51 ms
90% in 275.84 ms
95% in 301.41 ms
99% in 317.01 ms

Status code distribution:
[OK] 200 responses


#grpc #loadtest #ghz #grpcurl #hey #proto
How tom remove dangling volumes in docker?

docker volume rm $(docker volume ls -qf dangling=true)


#docker #linux #dangling
os.Rename in goLang?

Function signature:

func Rename(oldpath, newpath string) error


What Rename does?

Rename renames (moves) oldpath to newpath. If newpath already exists and is not a directory, Rename replaces it. OS-specific restrictions may apply when oldpath and newpath are in different directories. If there is an error, it will be of type *LinkError.

#golang #go #os #rename #os_rename
🛑 Guys from now on you may hear more about Golang than Python for few months ahead. :)
As you may already know in Python you can format your string using format as below:

file_name = "/root/openvpn/{}.ovpn".format(my_file_name)
// Or
file_name = "/root/openvpn/%s.ovpn" % my_file_name



In golang you need to use Sprintf method of fmt package like follow:

var fileName = fmt.Sprintf("/root/openvpn/%s.ovpn", myFileName)


#python #golang #go #fmt #sprintf #format
Echo: High performance, minimalist Go web framework
- https://echo.labstack.com
- https://github.com/labstack/echo

A sample hello-world web server using Echo:

package main

import (
"net/http"
"github.com/labstack/echo/v4"
"github.com/labstack/echo/v4/middleware"
)

func main() {
// Echo instance
e := echo.New()

// Middleware
e.Use(middleware.Logger())
e.Use(middleware.Recover())

// Routes
e.GET("/", hello)

// Start server
e.Logger.Fatal(e.Start(":1323"))
}

// Handler
func hello(c echo.Context) error {
return c.String(http.StatusOK, "Hello, World!")
}
environments in Golang:

To set a key/value pair, use os.Setenv. To get a value for a key, use os.Getenv. This will return an empty string if the key isn’t present in the environment.

Use os.Environ to list all key/value pairs in the environment. This returns a slice of strings in the form KEY=value. You can strings.Split them to get the key and value. Here we print all the keys:

package main

import (
"os"
"strings"
"fmt"
)

func main() {
os.Setenv("FOO", "1")
fmt.Println("FOO:", os.Getenv("FOO"))
fmt.Println("BAR:", os.Getenv("BAR"))

fmt.Println()
for _, e := range os.Environ() {
pair := strings.Split(e, "=")
fmt.Println(pair[0])
}
}


#golang #go #env #environment #environment_variables #range #setenv #getenv #environ
If you want to implement "Python Capitalize" method in Go:

strings.Title(strings.ToLower("MYNAME")) // output: Myname


There is another method called ToTitle which is used for one character long (but to letters):

str := "dz"
fmt.Println(strings.ToTitle(str)) // output: Dz


#python #golang #go #ToLower #Title #strings #capitalize #ToTitle
drop by drop and your bucket gets filled up


یکی از اساتید جمله بالارو مطرح کرده بودند که به نظر من میتونه زندگی بعضی هارو متحول کنه! موضوع بحث اینه که شما قطره قطره به یادگیری خودتان اضافه کنید و در این امر ممارست به خرج بدید و برنامه ریزی مدون داشته باشید. شک نکنید، شک نکنید که به مقصود خودتان خواهید رسید. اگر بخواهیم در کانتکست برنامه نویسی صحبت کنیم یک زبان جدید را در نظر بگیرید که قرار است فرابگیرید. چطور میتوانید یک زبان جدید را مثل زبانی که الان به آن مسلط هستید یاد بگیرید؟ آیا باید زندگی را تعطیل کنید و مسئله جدید را یاد بگیرید؟ نه اصلا اینگونه نیست، تنها کافیست بصورت قطره چکانی هر روز به آن مبحث بپردازید. فقط کافیست هر روز نهال نو پا را آب دهید و به آن برسید این درخت قرار نیست یک روزه تنومند شود و یکروزه میوه دهد تنها برنامه ریزی، تمرین و ممارست شما را به سر منزل مقصود خواهد رساند. تنها کافیست روزی یک ساعت برای آن وقت بگذارید و آخر سال ببینید به کجا رسیده اید. drop by drop!

#motivation #motivational_speaking #life_changing
Have a great weekend guys ✌️🍺

Happy coding :)