@proGO

Страница 1542 из 1674
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 ток интерфесы принимает



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
то есть возможно
func Foo() interface { return struct }

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



Vadim
30.06.2018
18:28:42
нда

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

Глеб
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
Нормальный ли вариант создавать соединение с БД в мэйне и передавать указатель на БД для вызовов?

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:27:23
Вполне
но с большим overhead'ом по памяти очевидно

Roman
30.06.2018
22:29:25
но с большим overhead'ом по памяти очевидно
https://blog.cloudflare.com/improving-picohttpparser-further-with-avx2/

Roman
30.06.2018
22:31:46
https://blog.cloudflare.com/improving-picohttpparser-further-with-avx2/
ууу.. тут уже речь о конкретных инструкциях и задержках в раёне десятков CPU cycles

Roman
30.06.2018
22:35:09
ууу.. тут уже речь о конкретных инструкциях и задержках в раёне десятков CPU cycles
Ну да :) но 60ns - это реально мало, потому что сисколл на linux и свежих intel где-то 42ns

Roman
30.06.2018
22:36:04
Ну да :) но 60ns - это реально мало, потому что сисколл на linux и свежих intel где-то 42ns
просто тут парсер реально тривиальный относительно HTTP. HTTP относительно большой протокол и в этом его некоторый недостаток

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

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

И то что описано - это уже поверх вебсокета или учитывает фрейминг вебсокета?
пока-что без особой оптимизации поверх вебсокета, но, как я уже говорил, во первых добавлю возможность менять бэкэнд на любую имплементацию сокетов и возможно заменю gorilla/websocket на более походящую с меньшим overhead'ом

по принципу make it work, then make it fast

Roman
30.06.2018
23:19:27
Нафига 64бит на идентификатор?
логика проста, я посчитал что лучше для начала использовать достаточно большой а потом уменьшить если потребуется

я не был уверен что 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
Нафига 64бит на идентификатор?
Помню какие-то пацаны пожадничали бит на идентификатор компьютера в сети

Google
Crypt
01.07.2018
11:20:12
Нормальный ли вариант создавать соединение с БД в мэйне и передавать указатель на БД для вызовов?
Ещё лучше будет, если он будет долбиться в базу пока не подключится, не помирая на ошибках типа database is starting и подобных.

Roman
01.07.2018
13:09:18
Нормальный ли вариант создавать соединение с БД в мэйне и передавать указатель на БД для вызовов?
можно ещё кстати singleton'ом решить, где инстанция связи экспортируется из пакета, ибо она смахивает на singleton

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

Статьи есть но подводных камней явно море

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

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

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

Страница 1542 из 1674