
Aleksandr
28.01.2018
14:19:51
printf медленно

Marlik
28.01.2018
14:20:26

Aleksandr
28.01.2018
14:20:50

Google

Alex
28.01.2018
14:22:27
При условии, что rand - int.

Michael
28.01.2018
14:24:13

Marlik
28.01.2018
14:24:47

Nathan
28.01.2018
14:26:23
кто нить разбираеться в debug/pprof/heap ?
почему heap растёт а память нет?

Michael
28.01.2018
14:27:03

Marlik
28.01.2018
14:27:48

Alex
28.01.2018
14:28:29

Marlik
28.01.2018
14:30:23
Я правильно понимаю, что например используя горутины, по одной на каждого пользователя в контексте вебсервера мне sync.Mutex для структур не нужен?

Sergey
28.01.2018
15:42:39

Google

Александр
28.01.2018
15:50:35
это спасает от странных ситуаций, когда оба хотят поправить/прочитать
но замедляет производительность
мне интересно другое, почему язык такое не может отловить. Он же как то отлавливает конфликты когда оба пишут
вот бы в очередь "магический" и запихнул бы обоих

Mykyta
28.01.2018
16:12:28

Александр
28.01.2018
16:13:17
вы не поняли
go race для этого есть
я имел введу зачем нам надо ставить вручную локи, когда "на уровне ядра" можно было бы за нас их проставить ?
что бы меньше стреляли в ноги

Mykyta
28.01.2018
16:15:01

Nick
28.01.2018
16:15:34

Alex
28.01.2018
16:17:20

Александр
28.01.2018
16:20:08
он же паникует когда такой встречается? на основании чего?
почему бы вместо паники не сделать обработку

Mykyta
28.01.2018
16:21:38
как вы себе это представляете?
"это как" [2]
Та элементарно, можно все выполнять в один поток, ну может eventloop прикрутить, либо можно в рантайме вместо параллелизма сделать выполнение тоже в одном потоке, но для создания видимости параллельного выполнения шустренько переключать потоки выполнения

Nick
28.01.2018
16:22:07

Arch
28.01.2018
16:24:09

Mykyta
28.01.2018
16:24:41

Arch
28.01.2018
16:24:45
Только переключение контекста между потоками требует времени

Google

Никита
28.01.2018
16:57:52
Есть какой то актуальный подробный справочник по языку? Кроме тура на сайте
Либо тура достаточно? ?

Человек
28.01.2018
17:04:26
Здравствуйте. Я чет приколов Golang не понимаю. https://ru.stackoverflow.com/questions/776481/%D0%9E%D0%B4%D0%BD%D0%BE-%D0%B2%D1%80%D0%B5%D0%BC%D1%8F-%D0%BF%D0%B0%D1%80%D1%81%D0%B8%D1%82-%D0%B4%D1%80%D1%83%D0%B3%D0%BE%D0%B5-%D0%B2%D1%80%D0%B5%D0%BC%D1%8F-%D0%BD%D0%B5-%D0%BF%D0%B0%D1%80%D1%81%D0%B8%D1%82 тут задал вопрос, ответа пока что не получил. Или я regexp не тот юзаю, хотя позавчера он у меня отлично работал... или же ещё в чем-то подвох

Sergey
28.01.2018
17:07:18
Либо тура достаточно? ?
Чтобы писать код достаточно. Но там кучу всего надо чтобы нормально писать. Посмотри книжки всякие и о кодогенерации вообще в туре ничего нету
Доклады пайка отличные

anton
28.01.2018
17:08:46

Aleksandr
28.01.2018
17:11:05

Sergey
28.01.2018
17:21:45

عاصم بن حارث
28.01.2018
18:21:11
Building Web Applications
and Microservices for the Cloud
with Go and React

Michael
28.01.2018
18:22:52

none
28.01.2018
18:39:52
ребята подскажите, есть проблемма https://play.golang.org/p/k3ctb_vtpbo
если делаю тоже самое на локальной машине расходжение во времени 3 часа как такое может быть ?

anton
28.01.2018
18:40:54

عاصم بن حارث
28.01.2018
18:41:27

none
28.01.2018
18:41:28
да но почему когда приобразуется int64 в timeUnix происходит сдвиг>
я же не локальное время преобрзую и фиксированную int64

me
28.01.2018
18:46:03
что за шрифт? input?

none
28.01.2018
18:46:10
iosevka

me
28.01.2018
18:46:22
а, точно

Google

none
28.01.2018
18:48:15
почему го из int64 делает время со смешением?

anton
28.01.2018
18:48:20
ну для ф-ии
func Unix(sec int64, nsec int64) Time
написано же:
Unix returns the local Time corresponding to the given Unix time

none
28.01.2018
18:48:40
лол

anton
28.01.2018
18:48:50
в одном случае у тебя local Time, в другом In the absence of a time zone indicator, Parse returns a time in UTC.

none
28.01.2018
18:48:54
так значит надо искать как преобразовывать с игнорирование локалтайма

anton
28.01.2018
18:51:47

Admin
ERROR: S client not available

none
28.01.2018
18:52:05
ок спасибо сейчас чекну

Alexey
28.01.2018
18:58:09
мм. не читал. спс

Человек
28.01.2018
19:04:47
Не в этом дело, добавил обработку ошибок, тело возвращаеться отлично, да и wireshark отдает body отлично. Так что дело в чем-то другом.
зачем ты опускаешь проверку ошибок, а потом спрашиваешь в чем проблема?

anton
28.01.2018
19:14:18

Marlik
29.01.2018
03:11:53
Нужен совет, пытаюсь в функции получить строку из БД посредством QueryRow(). Функция возвращает два типа ошибок, строка не найдена(для меня это не ошибка, это значит юзера нет в базе и его туды нужно заинсёртить) и общая стандартная ошибка. Пример:
switch {
case err == sql.ErrNoRows:
log.Fatal(err)
case err != nil:
log.Fatal(err)
}
return p, err
}
Вот тут что-то придумать нужно
case err == sql.ErrNoRows:
Или может обработать как-то ошибку? Кто-то может сталкивался?

Aleksandr
29.01.2018
03:14:30
с чем сталкивался?
зачем тебе фатал, если это не ошибка?

Marlik
29.01.2018
03:16:02
Ну вот пока пробую так, если строки не найдено, возвращаю return p, err, щас на сервер закину, проверю.

Aleksandr
29.01.2018
03:16:51
вопрос то в чем не пойму?

Marlik
29.01.2018
03:17:26
Не, не катит. 2018/01/29 06:16:23 sql: no rows in result set
Вопрос вверху.

Aleksandr
29.01.2018
03:18:19
я не вижу вопроса. вижу размышления на тему. код покажи весь

Marlik
29.01.2018
03:19:24
А, вот что, обрабатываю так
user, err := ReturnUser(db, ChatID)
if err != nil {
log.Fatal(err)
}
Соответственно ошибка то всё равно есть, вот и фатал ловлю. А на ошибки не проверять, плохая практика.

Google

Aleksandr
29.01.2018
03:20:17
покажи весь код. ReturnUser в том числе, и что ты дальше делаешь с user

Marlik
29.01.2018
03:22:14
В общих чертах, читаю из БД, проверяю на ошибки.
switch {
case err == sql.ErrNoRows:
return p, err
case err != nil:
log.Fatal(err)
}
return p, err
}
Тут, в другой функции, проверяю на ошибки
user, err := ReturnUser(db, ChatID)
if err != nil {
log.Fatal(err)
}
Ошибка всё равно будет, что строки нет, что просто ошибка чтения из БД. Вот и думаю как обойти.

Aleksandr
29.01.2018
03:23:48
друг, я тебя прошу, дай мне тебе помочь. не кидай огрызки кода - кинь полностью весь заучаствованный код - запрос, возврат результата, использование результата
я тебе уже даже написал что конкретно хочу получить от тебя. ты все равно куски вырываешь, да не те

Marlik
29.01.2018
03:27:08
друг, я тебя прошу, дай мне тебе помочь. не кидай огрызки кода - кинь полностью весь заучаствованный код - запрос, возврат результата, использование результата
Я прост не понимаю что ещё нужно?))) Остальное только усложнит. Ну допустим так:
func ReturnUser(db *sql.DB, ChatID int64) (p *DATA, err error) {
p = new(DATA)
err = db.QueryRow("...")
switch {
case err == sql.ErrNoRows:
return p, err
case err != nil:
log.Fatal(err)
}
return p, err
}
Проверяю
user, err := ReturnUser(db, ChatID)
if err != nil {
log.Fatal(err)
}
Вот при проверке, всё равно будет ошибка, потому что err по любому вернуть нужно.
Как-то вот ошибку мне кажется обработать нужно, а как пока не знаю, опыта нет.


Aleksandr
29.01.2018
03:29:50
func ReturnUser(db *sql.DB, ChatID int64) (p *DATA, err error) {
p = new(DATA)
err = db.QueryRow("...")
return p, err
}
user, err := ReturnUser(db, ChatID)
if err != nil {
if err == sql.ErrNoRows {
//insert
} else {
// обработать остальные ошибки
}
} else {
// обработать user
}

Marlik
29.01.2018
03:31:09
Вот, тут if err == sql.ErrNoRows будет ошибка, ибо не определена sql.ErrNoRows. Ладно, щас ещё поковыряюсь, может придумаю как.

Aleksandr
29.01.2018
03:41:42
что значит не определена? это встроенная ошибка
если пакет импортировал, то она определена

Marlik
29.01.2018
03:46:19
если пакет импортировал, то она определена
Странно конечно го работает))) Получается что в db.go лежит функция ReturnUser() в ней всё импортировано, а вызываю её, из app.go где не было импорта sql, вот заимпортил в app.go и кажется ошибок нет. Но что будет при компиляции? Скомпилируется импорт в двух пакетах?

Aleksandr
29.01.2018
03:47:07
Разные контексты
Используй иде - оно тебе подсветить ошибки

Marlik
29.01.2018
03:47:55

Aleksandr
29.01.2018
03:48:57
Там где ты импортировал database/sql там sql = database/sql. В остальных местах sql = sql, а такого пакета нет