
Vitaliy
24.01.2018
10:35:06

Dimon
24.01.2018
10:36:53

Andrew
24.01.2018
10:37:08

Aleksandr
24.01.2018
11:11:40
для спауна горутин оптимальное количество runtime.NumCPU() или есть какая-то универсальная формула? возможно зависит от системы? поделитесь опытом? я лично посмотрел у меня за ~0.41 маслает numCPU(), за ~0.37 numCPU()*2, слышал там есть какой-то рандом для спауна тредов, но можно ли как-то это предугадать? или не заморачиваться и оставить просто numCPU?

Google

Andrei
24.01.2018
11:13:17
если используешь горутины для всякого io, то можно сколько угодно в разумных пределах
а если выполняешь в них какие то вычисления, то по количеству ядер

Max
24.01.2018
11:16:16
А как подключиться к двум разным базам данных?
В обоих quickstartах предлагается анонимный импорт, который перегрузит database/sql.
Как разрулить это?

Aleksandr
24.01.2018
11:23:43

Max
24.01.2018
11:24:53
Да, вопрос снят. Перечитал внимательнее и понял, что анонимный импорт только регистрирует драйвер. Коннект будет по указанному в Open имени.

Aleksandr
24.01.2018
11:47:32

Andrei
24.01.2018
11:52:00
Ну http api на го создают новую горутину на каждый запрос и могут держать десятки тысяч рпс, так что десятки тысяч горутин вполне

Aleksandr
24.01.2018
11:54:17

Vladislav
24.01.2018
11:55:07

Andrew
24.01.2018
11:55:28

Vladislav
24.01.2018
11:56:50

Aleksandr
24.01.2018
11:57:59

Google

Andrew
24.01.2018
11:59:12

Aleksandr
24.01.2018
12:00:27
ладно, всем спасибо, будем думать

Daniel
24.01.2018
12:01:34

Dima
24.01.2018
12:46:58
Переезжаю с perl на golang. Что можно прочитать по ?ОПП? Слышал мнение что в го трудно с ооп...

Daniel
24.01.2018
12:47:39
трудно с привычным ооп
с непривычным - все в порядке

Dima
24.01.2018
12:48:13
То есть на mvc расчитывать не приходится?

Alexander
24.01.2018
12:48:39
а при чем тут mvc и ооп ?

Egor
24.01.2018
12:49:11

Ivanov
24.01.2018
12:49:14
есть куча mvc фреймворков

Dima
24.01.2018
12:49:36

Ivanov
24.01.2018
12:49:36
точнее не куча) но есть

Dima
24.01.2018
12:50:13

Daniel
24.01.2018
12:50:50
но именно для перловика никаких новостей нет, насколько я помню

Marlik
24.01.2018
12:50:56

Dima
24.01.2018
12:51:29

Daniel
24.01.2018
12:51:42
ооп тут перпендикулярно

Artem
24.01.2018
12:53:04
чет кажется для мвс подход гоши будет куда лучше классики, тут смысл понятия "имеет" куда важнее, чем "является".

Marlik
24.01.2018
12:54:52

Google

Elena
24.01.2018
13:10:52
Всем привет!
Нарисовали к GoppherCon Russia серию отечественных гоферов, так что ловите тематический стикерпак:
https://t.me/addstickers/GopherConRu

Vitaliy
24.01.2018
13:16:20

Elena
24.01.2018
13:17:11
водка - яд ?
А в балетной пачке уже есть

Александр
24.01.2018
13:30:02
а где гофер в панике?

Marlik
24.01.2018
13:32:01

Александр
24.01.2018
13:32:32

Stanislav
24.01.2018
13:36:42
Пацаны, подскажите, а что указывается в `` ?
type Person struct {
FirstName string db:"first_name"
LastName string db:"last_name"
Email string
}
Как это правильно читать

Marlik
24.01.2018
13:37:00
теги?

Stanislav
24.01.2018
13:37:15
А кто и как их обрабатывает?

Andrey
24.01.2018
13:38:10
@vorona_karabuta Лена, привет! не знал что вы уже и по go конфы проводите ?

Александр
24.01.2018
13:38:30
обрабатывает либая либа которой это надо ?

Stanislav
24.01.2018
13:38:48
Понял, спс, пойду гуглить)

Elena
24.01.2018
13:39:52

meehalkoff✪
24.01.2018
13:56:43
Друзья. Я уже весь мозг себе сломал.
Есть кучка файлов в дирректории. (~ 0-10000)
Файлы периодически модифицируются.
В директорию периодически сохраняются новые файлы.
Задача следующая. Вылавливать новые файлы в дирректории.
Вот так пробовал даты собрать:
func statTimes(name string) (atime, mtime, ctime time.Time, err error) {
fi, err := os.Stat(name)
if err != nil {
return
}
mtime = fi.ModTime()
stat := fi.Sys().(*syscall.Stat_t)
atime = time.Unix(int64(stat.Atim.Sec), int64(stat.Atim.Nsec))
ctime = time.Unix(int64(stat.Ctim.Sec), int64(stat.Ctim.Nsec))
return
}
Но mtime всегда равен ctime. Фс ext4. Мб нужно флаг монтирования раздела какой то?

Artem
24.01.2018
13:59:16

meehalkoff✪
24.01.2018
14:01:54
Чёрт, нужен не ctime, а crtime

Google

meehalkoff✪
24.01.2018
14:29:47
debugfs только ?

Alex
24.01.2018
14:35:08

meehalkoff✪
24.01.2018
14:39:23

Alex
24.01.2018
14:40:02
нариканий пока нет, используется просто

Admin
ERROR: S client not available

meehalkoff✪
24.01.2018
14:52:35

Гриша
24.01.2018
15:15:33
Подскажите как при маршалинге сделать чтобы data была пустым массивом, а не null
type Response struct {
Data []string `json:"data"`
}

Alexander
24.01.2018
15:18:16
при маршалинге или анмаршалинге?

Гриша
24.01.2018
15:22:43
маршалинге
сейчас выходи data: null, а нужно data: []

Alexander
24.01.2018
15:23:17
Тогда нужно просто заполнить это поле в структуре пустым слайсом

Илья
24.01.2018
15:23:25
return Response{Data: []string{}}
или Response.Data = make([]string,0)

Гриша
24.01.2018
15:24:34
Ок, спасибо. Надеялся можно при обявлении структуры

Andrew
24.01.2018
15:26:18

Гриша
24.01.2018
15:27:59
Имеется ввиду создание нового через NewResponse?

Andrew
24.01.2018
15:29:18
Да, думал создаёшь с нуля.

Гриша
24.01.2018
15:56:25
А если задать вопрос по-другому, как у структуры можно задать значения полей «по умолчанию»

Andrei
24.01.2018
15:58:11

Google

Alexander
24.01.2018
15:58:39
Обычно делается функция-конструктор, которая заполняет структуру значениями по умолчанию.

Aleksandr
24.01.2018
15:59:03

Гриша
24.01.2018
15:59:59
Я понял, спасибо

Alexander
24.01.2018
16:00:43
функция-фабрика
Есть действительно какая то разница в терминологии? (это не с целью придраться, мне правда кажется, что это одно и то же)

Aleksandr
24.01.2018
16:02:05
просто разные вещи

Alexander
24.01.2018
16:02:36
Ок, только в Го нет конструкторов-методов.

Aleksandr
24.01.2018
16:04:27

Michael
24.01.2018
16:07:02
https://golang.org/doc/effective_go.html#composite_literals

Aleksandr
24.01.2018
16:09:55
брехня!
по ссылке фабричный метод называют конструктором. это не брехня, а неграмотность

Alexander
24.01.2018
16:10:36
И сам сказал "фабричный *метод*" :)

Aleksandr
24.01.2018
16:10:59
и?
метод, а что еще?

Alexander
24.01.2018
16:11:22
Это функция, а не метод