@gogolang

Страница 1419 из 1630
Алиев
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:52:06
А почему должны быть минусы?
хз, я поэтому и спросил. в некоторых местах видел выделение отдельной перемнной внутри структуры, в других - просто syncMutex

snip
18.09.2018
04:05:10
вот это очень круто: https://habr.com/post/423495
А что именно круто? Это же вроде просто про либу умеющую использовать готовые модели

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
впадлу спорить, сорри тем более с шансом того, что диалог выпилят

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

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

Alexandr
18.09.2018
08:18:49
хз, я поэтому и спросил. в некоторых местах видел выделение отдельной перемнной внутри структуры, в других - просто syncMutex
Если заэмбеддить то Lock и Unlock будут частью публичного апи структуры - это в большинстве случаев нежелательно

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

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

смотрел docdown для перевода doc.go в readme не впечатлило

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

Artem
18.09.2018
10:31:11
@vetcher а вы хостите документацию по приватному проекту в облаке? Или в ридми пишете про запуск сервера с докой (godoc -http...)
Доку для сервисов мы размазываем по разным местам: пакет flag для параметров запуска, в readme общую инфу и описание полей конфига (которое генерится самопальным генератором) а логику и всякое такое уже вообще не в сорсах, а в confluence/Jira Но godoc как бы можно не пользоваться особо, если через ide работаешь, там ж можно прыгнуть к методу и прочитать

Андрэ
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
Хотя быстро не получится, надо будет сейчас еще про себя все пройти разок)

Возможно, способ с разветвлением по конкретным реализация для меня будет достаточным (хоть и не очень красивым)

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
а как еще
Ну в теории b = a

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

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

Admin
ERROR: S client not available

Konstantin
18.09.2018
10:53:41
?

Айнур
18.09.2018
11:02:03
да хрен его знает. у логруса есть неприятная черта - он не умеет в вывод добавлять файл:строку, из которой его позвали. поэтому я от него отказался навсегда в 2015
мы используем логрус + pkg/errors чтобы получить номер строки. Есть ли у structlog и zap преимущество в этом отношении?

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

Daniel
18.09.2018
11:10:11
мы используем логрус + pkg/errors чтобы получить номер строки. Есть ли у structlog и zap преимущество в этом отношении?
Не думаю. structlog, кстати, слегка пересекается с errors - там есть метод, который и логирует, и возвращает ошибку errors дает не строку, а стектрейс, насколько я помню. Это в большинстве случаев избыточно. Кроме того, этот стектрейс тяжело читать.

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

и стектрейс, и лог

но я осознаю, что мой путь - маргинальный

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

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

это делает очевидным использование db в том или ином модуле

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 для спавна процессов

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

sync.Cond
тоже смотрел туда, а есть пример?

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

Vladimir
18.09.2018
11:52:13
Once Pool WaitGroup

Страница 1419 из 1630