Юра (Юрий Александрович)
мне нужна диаграмма потоков данных или их словесное описание. Я не могу с легкостью понять, откуда что течет...
Roman
мне нужна диаграмма потоков данных или их словесное описание. Я не могу с легкостью понять, откуда что течет...
есть два канал, в которые записываються данные текст и кнопка. Пользователь отправляет текст, текст идет в канал, которые передаеться рутине, в рутине есть select, case из считывания с канала и ctx.Done если` выполняеться считывание с канала данных, то запускаеться ws соединение. Паралельно идет проверка на нажатие кнопки, если кнопка нажата, должен быть вызов cancel() и в рутине уже будет case ctx.Done return. Что в итоге должно закрыть рутину.
Изучаю го на практике, не большой опыт.
Юра (Юрий Александрович)
Я бы взял для начала задачу попроще, вся кодовая база которой находится по вашим контролем (без крупных внешних компонентов).
Или этот этап вы уже прошли?
Roman
Юра (Юрий Александрович)
в нем задействован большой и страшный пакет телеграмобота. Поди знай, что там в нем происходит.
Юра (Юрий Александрович)
И каналов дофигища.
Бойко
Привет! Кто-то сейчас приобретал goland у JetBrains? Как покупали?
der ðiβüśüɾę
Всем привет. Есть желание сделать что-то по типу шелла на голанге. Прототип в голове есть. Есть наработки, но не сказать, что большие.
Проблема заключается в самом простом — инпуте. Я могу брать инпут с помощью fmt.Scanf, но получается, что у комманд нет аргументов. Может у кого-нибудь есть опыт с инпутом?
Rostislav
Юра (Юрий Александрович)
таки это оно:
https://stackoverflow.com/questions/20895552/how-can-i-read-from-standard-input-in-the-console
Akim
Юра (Юрий Александрович)
я так понимаю, у автора вопроса задача не парсить аргументы командной строки, а сделать свой аналог command.com, cmd, PowerShell и т.д.
т.е. чтобы в программе можно было писать команды, а она бы их отправляла на выполнение.
Юра (Юрий Александрович)
и задача стояла считать от начала до конца весь текстовый ввод (от приглашения ввода до энтера). Так?
Akim
типа sh внутри go скрипта ?
der ðiβüśüɾę
der ðiβüśüɾę
Илья
помянем
der ðiβüśüɾę
Ailab
Всем привет!)
Ailab
Подскажите, как в go вывести данные системы, а именно: оперативную память, нагрузку процессора
Maria
https://pkg.go.dev/std
наверное, с помощью одного из этих модулей
Ailab
а есть в go такой модуль который вводит в консоль команду и получает из нее результат?
Ailab
я бы мог впринципе ввести: ps -aux --sort -pcpu
и получить значение от туда
Илья
Maria
https://ru.stackoverflow.com/questions/860584/golang-%D0%B7%D0%B0%D0%BF%D1%83%D1%81%D0%BA-%D0%BA%D0%BE%D0%BD%D1%81%D0%BE%D0%BB%D1%8C%D0%BD%D1%8B%D1%85-%D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4
Maria
https://stackoverflow.com/questions/10781516/how-to-pipe-several-commands-in-go
Maria
https://pkg.go.dev/os/exec@go1.19.3
Maria
А как exec узнаёт, на каком языке (bash, не баш) передаём команду?
- а, там при вызовае Command environment можно как-то задать, ну ладно
Ailab
я CPU реализовал
Ailab
а вот mem откуда брать не знаю
Илья
да возьми готовую либу
Ailab
package main
import (
"fmt"
"runtime"
)
func main() {
PrintMemUsage()
}
// PrintMemUsage outputs the current, total and OS memory being used. As well as the number
// of garage collection cycles completed.
func PrintMemUsage() {
var m runtime.MemStats
runtime.ReadMemStats(&m)
// For info on each, see: https://golang.org/pkg/runtime/#MemStats
fmt.Printf("Alloc = %v MiB", bToMb(m.Alloc))
fmt.Printf("\tTotalAlloc = %v MiB", bToMb(m.TotalAlloc))
fmt.Printf("\tSys = %v MiB", bToMb(m.Sys))
fmt.Printf("\tNumGC = %v\n", m.NumGC)
}
func bToMb(b uint64) uint64 {
return b / 1024 / 1024
}
Ailab
Он мне выводит
Ailab
Alloc = 0 MiB TotalAlloc = 0 MiB Sys = 11 MiB NumGC = 0
Ailab
Хотя оперативы занято в разы больше
Ailab
Илья
https://github.com/shirou/gopsutil
Ailab
где ты ее нашел
Ailab
я так долго искал что то готовое
🄻🄰🄺🄸
Всем привет. Хочу серверлессом DO сгенерить картинку, может у кого-нибудь есть готовое решение? Документация очень скудная, точнее её вообще нет.
P.S. Всё просто оказалось, ставим нужный контент-тайп в хедерах, в моём случае image/png и в респонсе меняем типа поля Body на []byte.
Ailab
щас бы тиктоки кидать в чат по GO
Sanity = nil
😳
Ailab
как ты стикер скинул шаман
Ailab
тут же заблокированы
Rostislav
😎
Ailab
Как вы это делаете
Ailab
колдуны
Rostislav
Кастомные эмоджи)
Rostislav
С подпиской можно юзать
Ailab
Донатеры блин
Ailab
даже тут унижают
Rostislav
😁
Ailab
Ailab
а я вот так могу
Rostislav
Тож норм)
Sanity = nil
Sanity = nil
☺️
Rostislav
не везде
Разве можно запретить? Не встречал еще
Ailab
Бан-очка
Ailab
Sanity = nil
ах да моя ошибка
Sanity = nil
😐
Rostislav
🌝🌝🌝🌝🌝
Sanity = nil
🥰
Ailab
Уважаемые джедаи, подскажите годный гайд по изучению интерфейсов и структур, я уже знаю что интерфейс это описание стандартного действия для абстрактной функции, но до конца не въезжаю в интерфейсы и структуры
Ailab
Melbourne Channel
does anyone know how to remove duplicates from
var b [][]byte = []{[]byte{123},[]byte{234},[]byte{123}} // <-- remove duplicates of [][]byte? how to?
Melbourne Channel
can this be better?
func unique(s [][]byte) [][]byte {
inResult := make(map[string]bool)
var result [][]byte
for _, str := range s {
if _, ok := inResult[string(str)]; !ok {
inResult[string(str)] = true
result = append(result, str)
}
}
return result
}
Anupam Kumar
anybody have reference how can we use crud operation patch in gorm??
Polya
Добрый день, подскажите пжта
как правильно конвертировать interface в struct
вот пример
https://play.golang.com/p/EHWcD1-KM_D
ну или :
t := "{\"description\": \"Описание\",\"key\": \"ключ\",\"lang\": \"en\",\"text\": \"Текст\"}"
var input_interface interface{}
json.Unmarshal([]byte(t), &input_interface)
field, ok := input_interface.(Model)
log.Println(ok)
log.Println(field)
Andrei
у меня опыт маленький, но выглядит не порформансный рефлект секс,чтобы просто из интерфеса выудить структуру, хотя там внутри есть нормальный поинтер на нее
Andrei
я бы тоже хотел увидеть как это делается ровно
Артем
Polya
а поля заранее известны?
Так скажем заранее неизвестно какая структура будет, поэтому везде interface, и только в конце известно что данный interface больше подходит для определенной структуры
Dmitry
Dmitry
Интересно. Это как в лотереях, монеткой надо потереть, чтобы увидеть?
Илья
kostyaBro
kostyaBro
Просто может есть варик решить эту проблему
kostyaBro
Можно ещё сделать суперструктуру, в которой будут поля из всех возможных