
Алиев
17.09.2018
21:21:11
а есть ли курсы на русском языке ?

Sergey
17.09.2018
21:21:39
на курсере

Dk
17.09.2018
21:31:22
cannot assign очевидно

Google

Dk
17.09.2018
21:31:52
Как по-человечески делается?

Fedor
17.09.2018
21:38:28
Default route что ли? Посмотрите go in practice книгу, там много примеров подобного рода

Никита
17.09.2018
21:41:02
Всем привет! Хотел спросить про каналы, сейчас пытаюсь разобраться и не могу понять.
У меня в main запускается канал:
req = make(chan tgbotapi.Message, 5)
go getPhoto()
res = make(chan InstagramResponse, 5)
Где req & res объявлены вот так:
var (
req chan tgbotapi.Message
res chan InstagramResponse
)
В определённый момент запускаю канал:
req <- *message
и после необходимых действий делаю так:
res <- InstagramResponse{"data", msg}
Но канал не возвращается к make(chan InstagramResponse, 5).
Или я что то не так понял, или я тупой) Буду благодарен за помощь
О, всё. Заработало как убрал у res пятёрку

Dk
17.09.2018
22:02:15
Разобрался. Надо было всего лишь хандлить "/"

Daniel
17.09.2018
22:33:58
вот это очень круто:
https://habr.com/post/423495

Vladimir
18.09.2018
03:37:43
парни, какие минусы у embedded locks на структурах, типа такого var a struct {sync.mutex /* other fields */} => a.Lock(), a.field++, a.Unlock()

Vladimir
18.09.2018
03:51:33

Vladimir
18.09.2018
03:52:06
А почему должны быть минусы?
хз, я поэтому и спросил. в некоторых местах видел выделение отдельной перемнной внутри структуры, в других - просто syncMutex

Vladimir
18.09.2018
03:52:26

snip
18.09.2018
04:05:10

Pawel
18.09.2018
04:46:33

Google

Pawel
18.09.2018
04:48:33
Если написать на сайте что мол Machine Learining, AI, распознавание лиц, и вот это всё, будут легкие денюжки.

Vladimir
18.09.2018
05:10:47
data mining, ICO, cloud, VR тоже вставляй

Pawel
18.09.2018
07:00:40
Это можно продавать как решение всего, как Кашпировский воду. При том что никто не знает толком как матрицы умножаются. С одной стороны, печально, с другой - пусть уж умные кидают наглых, а не наоборот.

Kirill
18.09.2018
07:22:59
Деревья имеют и крупный недостаток — склонность к переобучению
что-то мне не кажется, что результирующая модель может иметь или не иметь какую-то склонность к переобучению)

Sergey
18.09.2018
07:32:04
> результирующая?
Почему результирующая? Исходная.
Разные модели по-разному склонны к переобучению, чего тут размышлять

Daniel
18.09.2018
08:06:02

Kirill
18.09.2018
08:15:46

Alexander
18.09.2018
08:16:24
склонность к переобученности - это свойство не конкретной модели, а алгоритма.

Sergey
18.09.2018
08:16:25
впадлу спорить, сорри
тем более с шансом того, что диалог выпилят

snip
18.09.2018
08:16:38

Kirill
18.09.2018
08:18:00

Alexander
18.09.2018
08:18:06
уже обученная модель может быть overfitted. но она не может "переобучиться" в процессе ее использования. если вы ее "дообучаете" - это не та же самая уже модель

Daniel
18.09.2018
08:18:41
какой-то фестиваль капитанства

Alexandr
18.09.2018
08:18:49

snip
18.09.2018
08:19:56
вот вот ?
Но в статье как раз про склонность алгоритма

Vladimir
18.09.2018
08:50:06

Alexander
18.09.2018
09:56:09
Всем привет, разбирался ли кто с godoc ? Какой bestway для документирования проекта? У golang в некоторых cmd/...... и readme.md есть и doc.go.. Не хочется вести документацию в двух разных файлах, или там иной смысл?
смотрел docdown для перевода doc.go в readme не впечатлило

Artem
18.09.2018
09:57:12

Google

Alexander
18.09.2018
10:01:02
@vetcher а вы хостите документацию по приватному проекту в облаке? Или в ридми пишете про запуск сервера с докой (godoc -http...)

Artem
18.09.2018
10:31:11

Андрэ
18.09.2018
10:34:49
Парни, привет. Есть вот такой примерчик https://play.golang.org/p/JhgLHv7zUJP
Могу я как-то в prepareNewID2 сделать то, что там описал?)
Возможно, конечно, что я хочу странного. Но вот есть такой вопрос. Я немного плаваю в этом

Daniel
18.09.2018
10:38:20
а почему вы там Cacher получаете, а не *MemCache

Андрэ
18.09.2018
10:41:18
Хм, вот так? func prepareNewID2(c *MemCache) {
newMemCache := MemCache{ID: 40}
*c = newMemCache
}
Сейчас посмотрю, насколько это ко мне применимо. Возможно, просто загнался
Но это в какой-то момент мне надо будет разветвляться в зависимости от реализации интефейса и для каждой реализации свои функции делать

Daniel
18.09.2018
10:43:00
смотрите

Андрэ
18.09.2018
10:43:01
А этого как раз хотелось бы избежать

Daniel
18.09.2018
10:43:33
если две структуры у вас совпадают абсолютно - можно их присваивать одну другой
а если не абсолютно - только копирование по полям

Андрэ
18.09.2018
10:43:51
Сек, опишу пару строк более конкретно

Subbotin
18.09.2018
10:44:00

Андрэ
18.09.2018
10:44:45
Хотя быстро не получится, надо будет сейчас еще про себя все пройти разок)
Возможно, способ с разветвлением по конкретным реализация для меня будет достаточным (хоть и не очень красивым)

Daniel
18.09.2018
10:46:16

Subbotin
18.09.2018
10:46:40
А. Так да

Daniel
18.09.2018
10:46:48
а как еще
но если нет полного совпадения - конверсия не пройдет

Google

Daniel
18.09.2018
10:47:41
даже если порядок полей другой

Subbotin
18.09.2018
10:47:48

Daniel
18.09.2018
10:48:30
это имплицитная была бы конверсия, а она зашквар

Subbotin
18.09.2018
10:48:48
Во всяком случая я так понял фразу про приравнивание и офигел

Konstantin
18.09.2018
10:50:31

Daniel
18.09.2018
10:51:06

Admin
ERROR: S client not available

Konstantin
18.09.2018
10:53:41
?

Айнур
18.09.2018
11:02:03

Alexander
18.09.2018
11:04:25
Хотел бы еще мнение послушать косательно "Всем привет, разбирался ли кто с godoc ? Какой bestway для документирования проекта? У golang в некоторых cmd/...... и readme.md есть и doc.go.. Не хочется вести документацию в двух разных файлах, или там иной смысл?"

Daniel
18.09.2018
11:10:11

Айнур
18.09.2018
11:12:45

Pawel
18.09.2018
11:14:59

Daniel
18.09.2018
11:16:34
мой ответ - structlog, и логировать ошибку на каждом уровне, где она пробрасывается выше
и стектрейс, и лог
но я осознаю, что мой путь - маргинальный

Никита
18.09.2018
11:28:03
Допустим есть у нас пул БД. как архитектурно предпочтительнее: инициализировать в мейне и пробрасывать указатель сквозь слои, либо же инициализировать в переменной в отдельном пакете и импортировать где надо?

Daniel
18.09.2018
11:29:21
архитектурно предпочтительнее пробрасывать
это делает очевидным использование db в том или ином модуле

Pawel
18.09.2018
11:44:48

Google

Daniel
18.09.2018
11:45:47
ага

Vladimir
18.09.2018
11:48:14
такой вопрос - есть у меня воркеры, спавнят процессы. Их количество заранее неизвестно, но между процессами передают контекст. Если остановить пул, спавненные процессы не помирают, нужно их убивать отдельно. Вопрос: какой механизм синхронизации добавить в контекст, чтобы внутри кода исполнения процесса слушать его и при появлении там, скажем, сигнала, рубить процесс?
я не совсем догоняю, как "расшарить" один канал на неизвестное количество воркеров, и чтобы каждый из этих воркеров слушал его, и при появлении определенного сигнала (или, скажем, при закрытии канала) исполнялся бы код\

Daniel
18.09.2018
11:49:36
что такое "процессы"?

Vladimir
18.09.2018
11:49:55
внешние по отношению к Go процессы, системные
не горутины
но сами воркеры работают внутри горутины

Daniel
18.09.2018
11:50:19
тогда туда вы канал не расшарите никак

Vladimir
18.09.2018
11:50:44
туда нет, но в горутину же можно

Daniel
18.09.2018
11:50:49
но если этот системные процессы - система сама прибьет их при убийстве родителя
если они detach не сделали, конечно

Vladimir
18.09.2018
11:51:02
я скрестил gocraft/work для очередей и go-cmd/cmd для спавна процессов

Pavel
18.09.2018
11:51:21

Vladimir
18.09.2018
11:51:28
получается, пул я могу остановить, но вот отспавненные процессы продолжают работать

Pavel
18.09.2018
11:52:03
в доке есть пример, вроде

Vladimir
18.09.2018
11:52:13
Once
Pool
WaitGroup