
Shahzod
29.05.2018
10:20:08
Добрый день. Раньше программировал на С++. Там была тема "Работа с бинарными файлами", то есть в файле храниться данные памяти. Есть ли такая возможность на Golang? Потому что работа с бинарными файлами быстрее, чем с текстовыми. Заранее спасибо!

Илья
29.05.2018
10:23:05
есть работа с бинарными файлам

Shahzod
29.05.2018
10:24:07

Jentry
29.05.2018
10:24:16
Можно https://golang.org/pkg/os/#File.Read

Google

Илья
29.05.2018
10:24:37

The
29.05.2018
10:24:55
я думал все файлы бинарные

Shahzod
29.05.2018
10:26:12
когда в блокноте откроете бинарный файл, там нечитабельный текст. Текстовый файл можно читать. Я так различаю их.

Илья
29.05.2018
10:26:48
вы точно на C++ программировали? и насколько раньше?

Shahzod
29.05.2018
10:27:26

Илья
29.05.2018
10:27:44
и как там в C++ с бинарными файлами?

Kirill
29.05.2018
10:28:48

Jentry
29.05.2018
10:28:54

Shahzod
29.05.2018
10:31:13

Илья
29.05.2018
10:33:24
ну так в C++ как вы с "бинарнами файлами" работали?

Jentry
29.05.2018
10:33:44
Что ты хочешь сделать? просто прочитать файл - бери читай, если в структуры, то юзай encoding/binary, здесь пример
http://varunpant.com/posts/reading-and-writing-binary-files-in-go-lang

Demian
29.05.2018
10:33:52
народ может кто работал с парсингом map[string]interface{} в структуру, есть ли понятны примеры или разьяснит?

Kirill
29.05.2018
10:34:19
Разница между "текстовым" и "бинарным" файлами только в формате энкодера, кмон

Google

Илья
29.05.2018
10:35:18

Kirill
29.05.2018
10:35:29
Но плюсую насчёт качества идеи. Лучше бы так не делать

Demian
29.05.2018
10:36:15
это я делаю для JWT
типа чтоб в playload любую структурку подкидывать
других идей нету, поэтому пока эту реализовать нужно

Илья
29.05.2018
10:38:14
хм, а почему тогда туда json.RawMessage не положить? и разбирать в зависимости от условий далее уже в структуры

Demian
29.05.2018
10:40:49
тк возвращаемый тип type MapClaims map[string]interface{}
я пока хз как json.Unmarshal делать)

Serge
29.05.2018
10:47:55
всем привет, голлеги
может кто поможет? вчера весь мозг сломал
snp@foo% GOPATH=/home/snp/my/_projects/acme-dns/.go go test -run GetValidUsername -v
=== RUN TestGetValidUsername
--- PASS: TestGetValidUsername (0.00s)
PASS
exit status 1
FAIL _/home/snp/my/_projects/acme-dns/acme-dns_build2/src/github.com/serge-name/acme-dns 0.011sпочему тест PASS, но в итоге FAIL?
появляется после одного фикса (покажу, если надо)
этот запускаемый тест — для совсем другого куска кода

Илья
29.05.2018
11:02:39
без кода ничего не скажешь

Sergey
29.05.2018
11:09:48

Serge
29.05.2018
11:10:20
код тут: https://github.com/serge-name/acme-dns/commit/31519935326103efeee2573049d3034249434b1a
вот этот фикс меняет картину кардинально

Kirill
29.05.2018
11:10:47
попробуй все таки err != nil и вот это всё
а то похоже, что он фаталит с nil

Serge
29.05.2018
11:12:29
м… попробовать можно, но тут ещё и интерес спортивный
потому что по идее, log.Fatal(server.ListenAndServe()) это канонический запуск, везде так
сам код компилится ОК и работает как надо

Илья
29.05.2018
11:12:34
а какая сигнатура у server.ListenAndServe()?

Serge
29.05.2018
11:12:56
как посмотреть? (я пока в Go начинающий ггг)

Google

Kirill
29.05.2018
11:13:31

Илья
29.05.2018
11:14:10
эмм, а для запуска горутины разьве не нужно чтобы функция была без возврата?
?

Kirill
29.05.2018
11:14:47

Илья
29.05.2018
11:16:00
да понял, почему то думал, что должна быть защита от дурака

Kirill
29.05.2018
11:16:20
не-а, тут уже рассчет на инстинкт самосохранения)

Илья
29.05.2018
11:16:23
соответственно попытка повесить listen фейлится, и усе

Serge
29.05.2018
11:17:17
м… тогда бы валились тесты соответствующие, где тот код тестируется
там все тесты PASS, вообще все

Kirill
29.05.2018
11:18:22
я подозреваю, что гошка перед выходом тушит листенер, а потом log.Fatal() делает своё чёрное дело

Илья
29.05.2018
11:19:23
хм, кстати, тоже вариант

Kirill
29.05.2018
11:20:34
мне вообще нравится, как гошка умирает

Serge
29.05.2018
11:20:52
сделал так:
listenAndServe := func(server *dns.Server) {
// log.Fatal(server.ListenAndServe())
server.ListenAndServe()
return
}теперь тест проходит
«но почему?» ©
я пока не понимаю, тест GetValidUsername этот кусок не тестирует же…

Kirill
29.05.2018
11:20:59
вы читали startpanic_m?
не надо игнорировать ошибки
вы читали startpanic_m?
кто не читал - почитайте, штука довольно смешная) https://github.com/golang/go/blob/master/src/runtime/panic.go#L708-L748

Google

Serge
29.05.2018
11:26:44
пасиб, if err … действительно помогло
хотя я пока не понимаю, в каком случае ListenAndServe может вернуть не nil. видимо как раз в go test это; а в реальном приложении такого вроде как и не бывает?
ну конечно в шоке я, почему код работает, а тест падает и без каких-то дополнительных пояснений, ну хоть бы чего написал поподробнее

Илья
29.05.2018
11:28:22
там log.Fatal
а это os.Exit(1) under the hood
я за это вообще не люблю log.Fatal

Kirill
29.05.2018
11:29:40
Но иногда лучше, чем паника, я считаю

Admin
ERROR: S client not available

tsov
29.05.2018
12:13:29

Kirill
29.05.2018
12:15:58

Andrei
29.05.2018
12:16:18

Kirill
29.05.2018
12:16:36

Roman
29.05.2018
12:33:48
Привет! Ребятки, а помогите пожалуйста понять эту запись.
type S3UserIdentity struct {
PrincipalID string `json:"principalId"`
}
интересно понять про json, как это работает и куда смотреть. Спасибо!

Kirill
29.05.2018
12:36:56
https://godoc.org/reflect#StructTag

Roman
29.05.2018
12:41:14
Кажется теперь понял. Спасибо большое!

Shahzod
29.05.2018
12:41:40
Структура имеет одно строковое поле с тегом в формате json. Это означает, что строку в формате JSON можно парсить прямо на эту структуру:
jstr = `{"principalId": "any string;"}`
var s3u S3UserIdentity
json.Unmarshal([]byte(jstr), &s3u)

Den
29.05.2018
12:42:05
Гоферы, и все кому интересно, скоро, 2 июня в Харькове будет проходить Go митап
Приходите, будем рады вас видеть ! ?
событие на facebook : https://www.facebook.com/events/1809296232498435/
регистрация и билеты : https://app.softserveinc.com/apply/register/en/khgomeetup?utm_source=ID283_idr1192

Aliaksandr
29.05.2018
14:33:07
для тех, кто задолбался создавать структуры под парсинг каждого типа json'а - https://github.com/valyala/fastjson

Sergey
29.05.2018
14:34:34
эх лучше бы бампнуть fasthttp

Aliaksandr
29.05.2018
14:35:48
на fasthttp пока забил - другими делами занимаюсь (

Google

Aliaksandr
29.05.2018
14:35:59
но он нормально работает в проде

Kirill
29.05.2018
14:36:22

Sergey
29.05.2018
14:36:27
=> go dep берёт версию от 2016 года

Андрэ
29.05.2018
14:39:28
парни, а скажите пожалуйста, я правильно понимаю, что есть я обновил свой пакет, который через dep используется в других местах, мне надо в каждом другом месте делать dep ensure -update чтобы обновления затянуть?

Kirill
29.05.2018
14:40:23

Aliaksandr
29.05.2018
14:41:34
я прятался )

Artem
29.05.2018
14:41:58

Aliaksandr
29.05.2018
14:42:27

Sergey
29.05.2018
14:44:32
спасибо

Андрэ
29.05.2018
14:52:45

Dmitry
29.05.2018
15:01:25

Kirill
29.05.2018
15:03:41

Oleh
29.05.2018
15:04:03
привет посоветуйте пожалуста найболее удобною библитеку для работы с тг ботами
и где норм/более менее можно мокапить

Maxim
29.05.2018
15:04:20

Kirill
29.05.2018
15:04:38

xPushkin
29.05.2018
15:05:04

Kirill
29.05.2018
15:05:37
Что не понятно?