
Pawel
20.06.2018
13:41:24

20.06.2018
13:59:55

Daniel
20.06.2018
14:00:13
:)

Roman
20.06.2018
14:01:59

Google

Nikolay
20.06.2018
14:02:34
и вот очень хочется напихать каналов и ловить эвенты

Daniel
20.06.2018
14:03:12
почему нет?
пихай
я, правда, не очень понимаю, куда там можо что напихать
то есть - я понимаю, как сделать asinc-await на каналах, и это даже валидный паттерн
сам на прошлой неделе написал такое вокруг мапы со счетчиками

Nikolay
20.06.2018
14:09:23
Не смог сформулировать мысль :)

Daniel
20.06.2018
14:10:00
но паттерн-то - ограниченной применимости, и на что угодно его не натянешь

Nikolay
20.06.2018
14:11:15
У меня есть команды от irc протокола и я думаю как сделать правильнее
В голову приходит распарить и распихать по Каналам

Daniel
20.06.2018
14:12:08
в смысле - это чат?

Nikolay
20.06.2018
14:12:22
Это бот для чата

Google

Daniel
20.06.2018
14:13:35
слушает irc-канал, обрабатывает, отвечает?
непонятно, зачем ему внутре каналы и горутины вооще

Nikolay
20.06.2018
14:14:29
Каналы без горутин :)
Отправлять в канал эвент и пэйлоад, т.е event-driven

Fastumkruk ✅
20.06.2018
14:16:15
Ребята, написал код на го с исползованием sha256, по примеру кода на php. Но почему то ключи не сходятся. Посмотрите пожалуйста, может увидите ошибку. https://play.golang.org/p/XX8734zhzxb

Kaspar
20.06.2018
14:17:53

Daniel
20.06.2018
14:18:56
Каналы без горутин :)
бессмысленно. и даже вредно. каналы нужны только для взаимодействия между горутинами

Fastumkruk ✅
20.06.2018
14:19:42

Nikolay
20.06.2018
14:20:40

Kaspar
20.06.2018
14:20:59

Fastumkruk ✅
20.06.2018
14:21:10

Kaspar
20.06.2018
14:21:40
наверное у тебя другая задача, сорри. просто sha256хэш?

Daniel
20.06.2018
14:22:23
это пример оправданного event-driven

Fastumkruk ✅
20.06.2018
14:23:31

Daniel
20.06.2018
14:24:14
скорее всего - данные разные, только и всего

Kaspar
20.06.2018
14:24:30

Fastumkruk ✅
20.06.2018
14:25:47

Kaspar
20.06.2018
14:26:05
при конкатенации в строку, проверь

Fastumkruk ✅
20.06.2018
14:27:49

Google

Kaspar
20.06.2018
14:28:58
вот же у тебя в пхп
implode(':', $arHash)
а потом ты делаешь в го
mas[0] + mas[1] + mas[2] + mas[3] + mas[4] + mas[5]

Fastumkruk ✅
20.06.2018
14:29:52

Alexander
20.06.2018
14:30:48

Stanislav
20.06.2018
14:30:52
strings.Join

Fastumkruk ✅
20.06.2018
14:33:15

Daniel
20.06.2018
14:33:32
коллега
чего вы от нас хотите?

Fastumkruk ✅
20.06.2018
14:34:36
Все ли я правильно делаю исходя от пхп кода

Daniel
20.06.2018
14:34:57
я даже не читал ваш пхп

Aleksandr
20.06.2018
14:35:32
hmac же всегда разный ключ дает, разве нет?

Daniel
20.06.2018
14:35:53
с чего бы?

Fastumkruk ✅
20.06.2018
14:36:40

Aleksandr
20.06.2018
14:36:50
потому что генерит рандомную соль, которую включаетв ключ

Daniel
20.06.2018
14:37:38
с одинаковой солью - одинаковый результат

Aleksandr
20.06.2018
14:38:20
но соль генрится внутри

Daniel
20.06.2018
14:38:38
а как проверять хеш тогда?
неее

Aleksandr
20.06.2018
14:38:46
поэтому с одним ключом мы каждый раз будем получать разный хэш

Daniel
20.06.2018
14:38:47
так не бывает

Aleksandr
20.06.2018
14:38:55
как не ыбвает

Google

Aleksandr
20.06.2018
14:39:03
соль включается в хэш
ну погугли

Daniel
20.06.2018
14:39:19
что именно я должен погуглить?

Aleksandr
20.06.2018
14:39:36
там типа такой хэш algo/hash/salt

Daniel
20.06.2018
14:39:52
зачем нужен unpredictable hash?
я знаю, как устроен hmac

Aleksandr
20.06.2018
14:40:43
ну и? на какой стадии ты соль задаешь?

Daniel
20.06.2018
14:40:45
и на одинаковых входных данных он дает одинаковый результат

Admin
ERROR: S client not available

Daniel
20.06.2018
14:41:18
потому что он для этого сделан

Aleksandr
20.06.2018
14:44:13
да, сорри. я попутал с производной от hmac функцией, которая у меня в памяти отложилась

Kaspar
20.06.2018
14:47:36

Fastumkruk ✅
20.06.2018
14:47:56

Alexander
20.06.2018
14:48:25
слушай, у тебя на пхп в массиве 5 элементов, а на го - 6, не?

Kaspar
20.06.2018
14:48:58
не, там добавляется еще один в конце)

Alexander
20.06.2018
14:49:08
$arHash[] = $m_key; а, хитрая конструкция

Alexey
20.06.2018
14:53:39
Други, я на го начал программировать день назад. Скажите, а как принято избавляться от вот такого:
a, err := stringParameter(d, keyA)
if err != nil {
return nil, err
}
b, err := stringParameter(d, keyB)
if err != nil {
return nil, err
}
client, err := initialize(accessKey, secretKey)
if err != nil {
return nil, err
}
// тут еще 5 таких же вызовов
return result, nil
как-то странно копипасту вот такую делать после каждого вызова

Daniel
20.06.2018
14:55:09
не принято

Никита
20.06.2018
14:55:22
Не проверять на ошибки ))))0

Google

Dmitry
20.06.2018
14:55:33

Alexey
20.06.2018
14:56:01
не принято
и что все пишут одну строчку логики и три боилерплейта?

Daniel
20.06.2018
14:56:08
ага

Илья
20.06.2018
14:56:46
Мапы слайсы каналы
они тоже передаются по значению, просто в структуре значении есть ссылка на данные, при передаче создается новый slice/map/chan который ссылается на тот же блок данных

Maksim (Ellrion)
20.06.2018
14:58:34

Daniel
20.06.2018
14:58:59
именно этот бойлерплейт - да
бесит, но вариантов нет

Maksim (Ellrion)
20.06.2018
14:59:27
и не только он. иначе небыло подхода кодогенерации

Daniel
20.06.2018
14:59:39
а?!

Алексей
20.06.2018
15:00:30

Sergey
20.06.2018
15:00:53
/split микросервесы

Daniel
20.06.2018
15:01:55

Алексей
20.06.2018
15:02:06
кстати, а стектрейсы в Go имеются хоть в каком-то виде?

Daniel
20.06.2018
15:02:17
а погуглить?

Алексей
20.06.2018
15:02:39
зачем гуглить, если можно в чатике спросить?
ушёл гуглить

Maksim (Ellrion)
20.06.2018
15:04:00

Dmitry
20.06.2018
15:04:10

Алексей
20.06.2018
15:04:16
да, я уже смотрю, спасибо
а, то есть ошибки по умолчанию стектрейса своего возникновения никак не содержат
замечательно!

Daniel
20.06.2018
15:06:25
с ошибками вообще нехорошо получилось
иногда хочется форкнуть гошку :)