Alex
locate golang
Alex
скорее всего он поставил его в /usr/bin/golang-1.8 )
Alex
или locate go
Alex
или whereis golang
Andrei
А, кстати, whereis как и locate базу юзает или именно find делает?
Konstantin
Фигушки какие-то, не находит
Andrei
Find ом поищи
Andrei
В /opt пусто?
Konstantin
Lf
Konstantin
Да
Oleg
golang-1.8-go - это пакет?
Konstantin
Вернее не пусто, но голанга там нет
Konstantin
golang-1.8-go - Go programming language compiler, linker, compiled stdlib
Oleg
Ну всмысле, это пакет apt или другого менеджера?
Alex
man whereis, man find, man locate, в opt ему неоткуда взятся.
Konstantin
Ставится он с ним, да
Oleg
dpkg-query -L golang-1.8-go?
Alex
Dmitriy / დიმიტრი
если указатель валидный то кажется что пофиг)).
Вот только в некоторых функциях возвращается интерфейс, а дальше его надо кастовать в один из типов имплементирующих этот интерфейс и получается вот такое безобразие:
update, ok := (*tl).(TL_updates)
вместо:
update, ok := tl.(TL_updates)
Dmitriy / დიმიტრი
вот и думаю, что может зря всё
Konstantin
Oleg
Anonymous
Помогите советом.
Делаю экспорт данных из БД в несколько форматов.
Есть порядка 100 табличек в БД, каждая является либо родителем либо дочерней таблицей для другой таблицы, отношения почти везде один-ко-многим
Выглядит так что неплохо написать функцию для сбора мапы объектов какого-то типа и последующего наполнения страктов, но не пойму как без рефлексии наполнять стракты разных типов, у них же разное количество и тип полей. Есть конечно вариант написать 60-80-100 функций, которые будут наполнять стракт нужного типа из среза sql.Rows, но какое-то странное решение на мой взгляд
Stanislav
map?
Anonymous
А чем мапа поможет? Там же тип указывать все равно нужно
Anonymous
Была идея сделать интерфейс с фейковой функцией, тогда все объекты можно под эгидой полиморфизма пихать в один массив, что немного упрощает задачу
Stanislav
сделал селект, посмотрел тип, перевел в стрингу, рядом написал, какой это был исходный тип, например:
d := map[string]map[string]string{
"row1": map[string]string{
"data": "base64encodedshit",
"type": "blob",
},
}
Stanislav
ну, тоже вариант, в принципе
Anonymous
Stanislav
можно ту же хрень со страктами сделать, если хочется
Anonymous
Anonymous
А, ну хотя мапа страктов по идее
Anonymous
Но опять же остается проблема как данные из sql.Rows распихать по страктам, кол-во и тип полей разное
Anonymous
Вот даже подзадачу можно для начала решить.
Есть таблица в которой 100 полей.
Как эти сто полей распихать в стракт?
Anonymous
Можно как-то не писать портянку где я сопостовляю каждому полю в БД поле в стракте?
Anonymous
variadic arguments у меня тут не сработал
bunin
Anonymous
Alexey
Подскажите пожалуйста.
Мне нужно внутри go выполнить команду ffmpeg.
На вход я передаю mp4 файл в виде resp.Body от http запроса, который выполнился до этого куска кода
cmd := exec.Command("ffmpeg",
"-f", "lavfi",
"-i", "anullsrc=channel_layout=stereo:sample_rate=44100",
"-i", "pipe:0",
"-shortest", "-c:v", "copy", "-c:a", "aac",
"output.mp4")
cmd.Stdin = resp.Body
cmd.Run()
На выходе после cmd.Run() хочу получить объект io.Reader, как результат работы ffmpeg, который можно было бы потом скормить телеграм боту
reader := tgbotapi.FileReader{Name: "test", Reader: output, Size: int64(contentLength)}
file := tgbotapi.NewDocumentUpload(messageChatID, reader)
код по ffmpeg выше сейчас сохраняет на диске output.mp4, тем саммым показывая, что передача resp.Body в пайп работает.
Нокак сделать, чтобы на выходе еще был результат обработки в виде объекта, а не файла, я не понимаю 😒
Всем спасибо за помощь. В итоге оказалось, что основная проблема была в команде ffmpeg, нужно было добавить параметр, чтобы данные корректно отдавались в пайп. 😁
Остальное, буферы и пр. — это уже мелочи были... 😐
Вот итоговый код:
@MikalaiR @twentydraft @di3young @zelenin
Alexey
Slava
а у кого-то ещё Gogland тормозит из-за включенной "Bool condition inspection"?
engelbart
Коллеги помогите с sqlite и nil
у меня тут мелкий скрипт, в котором есть db.Query("select sum(amount) from orders....
иногда этот sum возвращает nil и рушит var sum int; ... Scan(&sum)
Scan error on column index 0: converting driver.Value type <nil>
как это по человечески обойти?
Проверить заранее
Либо try
engelbart
Это как проверить заранее?
engelbart
Проверить не получу ли я nil получив nil ?
Mikalai
Mikalai
хотя наверное нужно вот это вот https://golang.org/pkg/database/sql/#NullInt64
engelbart
engelbart
Спасибо
Nix
Встречал, но хотелось с хорошим комьюнити
Ivahaev
Таких нет. Все было уг. Моя используется в бою во многих проектах.
engelbart
А вы для чего юзаете?
engelbart
Мониторинг какой нибудь?
Jaroslav
Всем привет, уже просто устал искать решение. Как получить доменное имя по айпи?
Ivahaev
А вы для чего юзаете?
Разные цели были. Мониторинг и оригинация, диалплан внешний, просто трансляция событий во внешний сервис...
Alexey
Всем привет, уже просто устал искать решение. Как получить доменное имя по айпи?
нужен nslookup и/или соответственно обертки над ним.
$ nslookup ya.ru
Server: 202.96.134.133
Address: 202.96.134.133#53
Non-authoritative answer:
Name: ya.ru
Address: 87.250.250.242
$ nslookup 87.250.250.242
Server: 202.96.128.166
Address: 202.96.128.166#53
Non-authoritative answer:
242.250.250.87.in-addr.arpa name = ya.ru.
https://golang.org/src/net/lookup_test.go
Alexey
но вам нужно будет учитывать, что что доменов может быть несколько...
Jaroslav
спасибо
aadz
addr, err := net.LookupAddr("87.250.250.242")
fmt.Println(addr, err)
engelbart
engelbart
А вот есть у меня прога небольшая на go , она на мелком сервере будет выполняться, как мне узнать изнутри её , сколько она памяти прямо сейчас потребляет.
Stanislav
engelbart
не, мне надо что б прога сама поняла, и метрику отправила
engelbart
спасибо
Anonymous
Тогда pprof и пакет runtime/pprof
Dmitriy / დიმიტრი
Как всем новая версия Gogland'а? Стоит обновляться?
Dmitriy / დიმიტრი
Умпутун в твиттере вроде жаловался на какие-то баги.
Anonymous
Меня принудительно обновило
Dmitriy / დიმიტრი
Dmitriy / დიმიტრი
У меня наверное тоже принудительно обновило бы, но я забыл дать разрешение на запись🌚
Anonymous
Да я недавно только на го начала что-то делать, соответственно 90% фичей IDE просто не юзаю
Anonymous