
Daniel
30.06.2018
17:43:28

30.06.2018
17:43:51

Vadim
30.06.2018
17:52:06
йоу, чуваки! Зачем обычно в проекте используется пакет cmd?

Daniel
30.06.2018
17:52:35
Ага

Google

Глеб
30.06.2018
18:02:05
Всем привет!
подскажите пожалуйста можно ли из типа struct сделать interface{}
второй день пишу на Go, очень нравится, но уже пол дня пытаюсь придумать как красиво писать массив объектов в монгу, там в mgo ток интерфесы принимает

Vadim
30.06.2018
18:05:21
соответственно методы должны совпадать

Crypt
30.06.2018
18:05:39
Если просто Insert(items) не прокатит, то только конвертировать

Vadim
30.06.2018
18:12:57
чо?

Глеб
30.06.2018
18:13:14
пытаюсь понять как это будет выглядеть
то есть возможно

Vadim
30.06.2018
18:14:08

Глеб
30.06.2018
18:27:23
эхх... неужели никак,
так работает : APost → interface {}
а так фих : []APost → []interface {}
https://play.golang.org/p/9-YV9rsaGJr

Vadim
30.06.2018
18:28:42
нда

Alexander
30.06.2018
18:28:47

Google

Глеб
30.06.2018
18:30:26
а конвертировать, это прям новый объект создавать и все переменные ручками мапить или есть более удобный способ

Vadim
30.06.2018
18:32:15

Глеб
30.06.2018
18:50:51
еее!
func IAPost(aposts []APost) []interface{} {
ai := make([]interface{}, len(aposts))
for i, a := range aposts {
ai[i] = a
}
return ai
}
Благодарю за наводку @filinvadim

Vadim
30.06.2018
18:52:10
мне не нра это скрытое поведение
чуваки из гугла как будто не в курсе дзена питона)

Глеб
30.06.2018
18:53:55

Roman
30.06.2018
19:49:17
эм, а как Benchmark setup'ить?
гугл чёт не помогает
b.ResetTimer()
но это ресетит же только время а не колво аллокаций?
а хотя... вроде ресетит

MVP
30.06.2018
20:00:18
кто то деплоил golan-gin приложения в azure?

Roman
30.06.2018
20:20:19
can one parse an HTTP request in 60 nanoseconds?))

Никита
30.06.2018
20:31:48
Нормальный ли вариант создавать соединение с БД в мэйне и передавать указатель на БД для вызовов?

Vadim
30.06.2018
21:13:37

Denis
30.06.2018
22:01:23
мм?
https://github.com/golang-standards/project-layout

Vadim
30.06.2018
22:15:59
теперь не знаю куда shell в коде воткнуть

Google

Vadim
30.06.2018
22:18:47
в tools мб

Roman
30.06.2018
22:22:14

Roman
30.06.2018
22:27:23
Вполне
но с большим overhead'ом по памяти очевидно

Roman
30.06.2018
22:29:25

Roman
30.06.2018
22:31:46

Roman
30.06.2018
22:35:09

Roman
30.06.2018
22:36:04

Roman
30.06.2018
22:38:55

Roman
30.06.2018
22:39:41
А что за протокол?
webwire binary protocol, я его поверхностно описал в README, спецификацию составлять не стал, это сейчас лишнее

Roman
30.06.2018
23:00:33

Roman
30.06.2018
23:01:28
А зачем такой жирный identifier?
8 байт? ну это по сути и не слишком много и не слишком мало. При таком размере идентификатора возможность коллизии практически равна нулю, так-же с таким идентификатором легко работать из JavaScript, ибо это 2x interger'а
по принципу make it work, then make it fast

Roman
30.06.2018
23:13:28

Roman
30.06.2018
23:19:27
я не был уверен что 4 байтного идентификатора будет достаточно


Алексей
01.07.2018
09:02:04
https://play.golang.org/p/iSWy69OAPwm
Вопрос по использованию "github.com/txgruppi/werr" для вывода стека места где произошла ошибка.
Оно выдёт нормально, но на строчку
err = werr.Wrap(err)
, а не
file, err := os.Open("/tmp/my-missing-file")
open /tmp/my-missing-file: The system cannot find the path specified.
d:/Workspaces/Go/src/github.com/real-mielofon/errors/main.go:13 open /tmp/my-missing-file: The system cannot find the path specified.
goroutine 1 [running]:
github.com/real-mielofon/errors/vendor/github.com/txgruppi/werr.Wrap(0x5c0420, 0xc04205c1e0, 0x0, 0x5c0420)
D:/Workspaces/Go/src/github.com/real-mielofon/errors/vendor/github.com/txgruppi/werr/funcs.go:24 +0x222
main.main()
d:/Workspaces/Go/src/github.com/real-mielofon/errors/main.go:13 +0xc3
как то можно сделать, что бы выводился стек вызова именно
file, err := os.Open("/tmp/my-missing-file")
?
Может другую библиотеку посоветуете

Subbotin
01.07.2018
11:13:00

Google

Crypt
01.07.2018
11:20:12

Roman
01.07.2018
12:56:10

Roman
01.07.2018
13:09:18


Daniel
01.07.2018
14:20:37
https://play.golang.org/p/iSWy69OAPwm
Вопрос по использованию "github.com/txgruppi/werr" для вывода стека места где произошла ошибка.
Оно выдёт нормально, но на строчку
err = werr.Wrap(err)
, а не
file, err := os.Open("/tmp/my-missing-file")
open /tmp/my-missing-file: The system cannot find the path specified.
d:/Workspaces/Go/src/github.com/real-mielofon/errors/main.go:13 open /tmp/my-missing-file: The system cannot find the path specified.
goroutine 1 [running]:
github.com/real-mielofon/errors/vendor/github.com/txgruppi/werr.Wrap(0x5c0420, 0xc04205c1e0, 0x0, 0x5c0420)
D:/Workspaces/Go/src/github.com/real-mielofon/errors/vendor/github.com/txgruppi/werr/funcs.go:24 +0x222
main.main()
d:/Workspaces/Go/src/github.com/real-mielofon/errors/main.go:13 +0xc3
как то можно сделать, что бы выводился стек вызова именно
file, err := os.Open("/tmp/my-missing-file")
?
Может другую библиотеку посоветуете
Нет, это os.Open должен был бы позаботиться, а он - нет


Semyon
01.07.2018
14:22:37
Вопрос нет тут тех кто пробовал писать на го модуль для python ?
Статьи есть но подводных камней явно море

Roman
01.07.2018
14:55:51

Semyon
01.07.2018
14:57:59
а зачем?)
питон не вывозит по потреблению памяти и параллельной обработке.
А го все же удобный в этом плане

Bogdan (SirEdvin)
01.07.2018
14:58:57
А вы пробовали numpy? Или слоты для классов

Roman
01.07.2018
14:59:16

Semyon
01.07.2018
15:01:57

Roman
01.07.2018
15:03:04

Semyon
01.07.2018
15:03:31

Bogdan (SirEdvin)
01.07.2018
15:04:44
может подскажите в общих чертах задачу?

Roman
01.07.2018
15:06:12

Semyon
01.07.2018
15:13:08
Да классическая обработка данных, на python с его пакетами это удобнее всего делать
Но вот именно тут не влазит по памяти для собственного алгоритма, вот и приходится думать над модулями так как не переносить же все

Bogdan (SirEdvin)
01.07.2018
15:15:31
А cython и скеилинг через процессы?
Или numba + ее jit?

Google

Semyon
01.07.2018
15:17:32
Cython пробовал но выделение массивов там это чистый С или же numpy одно геморно, второе на не числовых данных жрет память.
Numba не пробовал
Как вариант cython + cpp

Bogdan (SirEdvin)
01.07.2018
15:18:54
Но она тоже не про память, а про перфооанс

Semyon
01.07.2018
15:19:38
Да тут главнач сложность именно память, потому нужны указатели

Subbotin
01.07.2018
15:19:43
делать из го либу для питона это какое-то забавное извращение. либо вынести в микросервис на го часть фич или напилить либу на си

Bogdan (SirEdvin)
01.07.2018
15:19:57
С памятью можно попрововать потоковую обработку сделать, если это возможно
Ну или загрузить все в бд и оттуда читать потоком

Semyon
01.07.2018
15:20:47

Subbotin
01.07.2018
15:20:54
ах да. есть ещё раст.

Semyon
01.07.2018
15:21:21
Хотя вот сейчас вы мне подкинули мысль как можно попробовать через map reduce

Roman
01.07.2018
15:22:34