Легковесный гит-сервер, написанный на Go. Часто использует Gin для обработки веб-запросов.
https://github.com/gogs/gogs
Легковесный гит-сервер, написанный на Go. Часто использует Gin для обработки веб-запросов.
https://github.com/gogs/gogs
defaults write kCFPreferencesAnyApplication TSMLanguageIndicatorEnabled 0
сколько оперативки пожирает ps -eo pid,comm,%mem,%cpu --sort=-%mem | head -n 20 ps aux --sort=-%mem | awk 'NR==1 || $4>0 {print $0}' сколько свободно free -h отключить своп sudo swapoff -a диск, кто читает pidstat -d 1 10 iostat -x 1 10 скорость диска sudo hdparm -Tt /dev/sda
brew install ffmpeg ffmpeg -i 1.mp4 -an output.mp4
sudo nano /etc/ssh/sshd_config ClientAliveInterval 60 ClientAliveCountMax 2 sudo systemctl restart sshd
и еще sudo mtr 17.253.144.10
Hypert — это библиотека Go с открытым исходным кодом, которая упрощает тестирование клиентов HTTP API.
Она предоставляет удобный способ создания и воспроизведения HTTP запросов, и значительно упрощает создание надежных тестов для ваших клиентов API.
▪Запись и воспроизведение тестов
▪Автоматическое удаления конфиденциальной информации
▪Проверка запросов для обеспечения их целостности
▪Полная интеграция с GO протоколом http.Client
▪Легко расширяемые и настраиваемые опции
go get github.com/areknoster/hypert
Проблема XY — это проблема, возникающая при обращении в службу поддержки и в других похожих ситуациях, когда обратившийся за помощью человек ставит не проблему X напрямую, а спрашивает решение проблемы Y, которая по его мнению позволит решить проблему X. Тем не менее, решение проблемы Y часто не решает проблему X, или является не самым удачным для неё решением. При этом человек, пытающийся помочь, может испытывать проблемы коммуникации и/или предлагать не самые оптимальные решения.
Проблема XY обычно встречается в среде технической поддержки или обслуживания клиентов, где конечный пользователь пытается решить проблему самостоятельно и неправильно понимает реальную природу проблемы, полагая, что их реальная проблема X уже решена, за исключением некоторых мелких деталей Y в их решении. Неспособность обслуживающего персонала решить реальную проблему или понять природу запроса может привести к разочарованию конечного пользователя. Ситуация может проясниться, если конечный пользователь спросит о какой-то «бессмысленной» детали, которая не связана с полезной конечной целью. Решение для обслуживающего персонала состоит в том, чтобы задавать наводящие вопросы: зачем нужна эта информация, чтобы выявить корень проблемы и перенаправить конечного пользователя с непродуктивного пути исследования.
package main import "github.com/gin-gonic/gin" func RequestLogger() gin.HandlerFunc { return func(c *gin.Context) { t := time.Now() c.Next() latency := time.Since(t) fmt.Printf("%s %s %s %s\n", c.Request.Method, c.Request.RequestURI, c.Request.Proto, latency, ) } } func ResponseLogger() gin.HandlerFunc { return func(c *gin.Context) { c.Writer.Header().Set("X-Content-Type-Options", "nosniff") c.Next() fmt.Printf("%d %s %s\n", c.Writer.Status(), c.Request.Method, c.Request.RequestURI, ) } } func main() { r := gin.Default() // Add logging middleware r.Use(RequestLogger()) r.Use(ResponseLogger()) r.GET("/", func(c *gin.Context) { c.JSON(200, gin.H{ "message": "Hello, World!", }) }) r.Run() // listen and serve on 0.0.0.0:8080 }
services: web: build: . ports: - "80:80" depends_on: db: condition: service_healthy restart: always db: image: postgres healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 5s timeout: 5s retries: 5