
Kirill
31.05.2018
15:01:36

Alexander
31.05.2018
15:03:17

Kirill
31.05.2018
15:04:38
Я как раз говорил о телеге, где невыгодно сидеть в РФ

Google

Kirill
31.05.2018
15:05:51
У нас тоже сайты должны в РБ хоститься, если хостинг не бесплатный, ну вы понимаете)

Fastumkruk ✅
31.05.2018
15:06:52

Nick
31.05.2018
15:12:16
Blockchain Weekly
Meetup #5!
1 июня , начало в 18:00 , Казань , ул. Подлужная 17
Еще немного и криптовалюты выйдут из серой зоны - на рассмотрение в нижнюю палату парламента поступил законопроект "О цифровых финансовых активах".?
Будут ли токены и криптовалюты считаться имуществом, а майнинг предпринимательской деятельностью? Где и как можно будет обменять рубли на криптомонеты в законной форме? Как легально провести ICO в России?
На все эти вопросы ответит гость нашего следующего митапа, юрист в составе рабочей группы Российской Ассоциации Криптовалют и Блокчейна (РАКИБ) — Галиуллин Рустем!
https://blockchainclub.timepad.ru/event/735160/

Kirill
31.05.2018
15:15:22

Alexey
31.05.2018
15:32:59

Daniel
31.05.2018
15:33:21
а?!

Мерлин
31.05.2018
15:33:47

Alexey
31.05.2018
15:34:58
А что вы прокси и прокси для телеги? Есть же vpn, там можно пустить трафик на телеграм сервера только через него

Kirill
31.05.2018
15:41:46

Fastumkruk ✅
31.05.2018
16:38:13
if update.CallbackQuery != nil {
fmt.Println(update.CallbackQuery.Data)//Выполняет и потом крашиться на сравнении
}
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x58 pc=0x6198c2]
Вопрос, что ему не нравиться?
if update.Message != nil {
fmt.Println("message", update.Message.Text)
}
Аналогичный код, но не крашиться

Ilya
31.05.2018
16:45:56

Fastumkruk ✅
31.05.2018
16:46:13

Google

Fastumkruk ✅
31.05.2018
16:46:34

Ilya
31.05.2018
16:48:29
то есть, сначала выполняется код внутри ифа, а потом код самого ифа?

Fastumkruk ✅
31.05.2018
16:49:21

Ilya
31.05.2018
16:50:04
это значит "да" или значит "нет"? :)

Sergey
31.05.2018
16:50:27
?
.Data ссылается на невалидную память?
что печатается в println(.Data)?
адрес?

Fastumkruk ✅
31.05.2018
16:51:45
Разобрался в чем дело. Сообщения и инлайн сообщения нужно обрабатывать в разных ифах, тогда краша нету.

Aleksandr
31.05.2018
21:03:48
update.CallbackQuery - Пусто тут)
switch {
case update.Message != nil:
msg := update.Message
// в этом кейсе работаете только с msg
case update.CallbackQuery != nil:
call := update.CallbackQuery
// в этом кейсе работаете только с call
}
вчера тебе на это указывали

Fastumkruk ✅
31.05.2018
21:07:11

The
01.06.2018
08:54:38
нужен совет:
1. читаю файл, и пишу в канал задания для воркеров
2. crawler ходят по REST API и тело HTTP ответа записывают в канал, где работают парсеры.
3. парсеры парсят тело ответа, и пишут во writer, который записывает в файл.
вопрос вот в чем: после того как я прочел файл, я закрываю канал с заданиями, crawler завершают свою работу, делаю wg.Wait() и закрываю канал в который писали кравлеры, и из которого читали парсеры (т.е. они тоже завершат свою работу).
И вот тут затык, как мне закрыть канал, в который эти парсеры пишут? Потому что если его не закрыть, то врайтер будет ждать результаты для записи в файл. Вешать ещё один WaitGroup?
сорян за сумбур
можно рулить через context.Context и for { select {
а ещё варианты какие-то есть? может есть вариант проще?

Daniel
01.06.2018
09:02:14
нету
и не надо

Hokusai
01.06.2018
09:02:51
Объединить crawler с парсером

Andrey
01.06.2018
09:23:47
нужен совет:
1. читаю файл, и пишу в канал задания для воркеров
2. crawler ходят по REST API и тело HTTP ответа записывают в канал, где работают парсеры.
3. парсеры парсят тело ответа, и пишут во writer, который записывает в файл.
вопрос вот в чем: после того как я прочел файл, я закрываю канал с заданиями, crawler завершают свою работу, делаю wg.Wait() и закрываю канал в который писали кравлеры, и из которого читали парсеры (т.е. они тоже завершат свою работу).
И вот тут затык, как мне закрыть канал, в который эти парсеры пишут? Потому что если его не закрыть, то врайтер будет ждать результаты для записи в файл. Вешать ещё один WaitGroup?
1) канал нужно закрывать на стороне писателя
2) если писателей много, то нужно ждать их и закрывать после них.

Google

Andrey
01.06.2018
09:27:44
У вас несколько груп писателей, поэтому на каждую группу нужен свой waitgroup. Облегчает задачу то, что у вас определён порядок работы, то есть первыми завершаются краулеры, значит сначала надо ждать их, потом закрывать канал куда они пишут, потом ждать парсеры, и закрывать их канал
Если бы порядок не был определён, то пришлось бы порождать отдельные горутины с waitgroup

vktr
01.06.2018
09:28:34
Завести калал done := chan struct {}

Pawel
01.06.2018
09:36:48
Использует кто нибудь graph-gophers/graphql-go вместо graphql-go/graphql ?
@Aleksandr Zelenin, ты вроде в теме, какую либу юзаешь для графкуэль?

The
01.06.2018
09:39:28
всем спасибо

Aleksandr
01.06.2018
09:44:12
Эту сегодня просмотрю - как раз расчехлил свой пет проджект
На первый взгляд очень похоже на nelance. Буду у компа - покручу детальнее

Pawel
01.06.2018
09:50:25
по моему graph-gophers/graphql-go - это она и есть nelance
могу ошибаться

Aleksandr
01.06.2018
09:51:02
Возможно. Я посмотрел последние коммиты - там другой чел

Aleksandr
01.06.2018
09:51:07
Но похоже по идее

vktr
01.06.2018
11:08:36
У кого есть публичные репозитории с тестами чего-то прикладного поверх grpc, можете дать ссылки на посмотреть?

Aleksandr
01.06.2018
12:03:34

Dmitry
01.06.2018
15:31:35
какой пакет порекомендуете вместо flag (нужна внятная работа с позициоными параметрами) ? стадарт де факто ?

Kirill
01.06.2018
15:32:03
https://github.com/spf13/cobra
отличнейшая вещь
очень мощная

Антон
01.06.2018
15:32:33

Google

Илья
01.06.2018
15:32:38
мегаоверкилл
но мощная, бесспорно

Kirill
01.06.2018
15:32:52
ну - я ж не знаю, что именно хочет человек

Admin
ERROR: S client not available

Илья
01.06.2018
15:32:56
может быть, даже кофе заварит
?

Kirill
01.06.2018
15:33:28
предлагаю сначала то, что сам использую регулярно

Илья
01.06.2018
15:33:47

Kirill
01.06.2018
15:34:04

Илья
01.06.2018
15:34:31
+ еще потоньше, от этих же ребят https://github.com/spf13/pflag

Kirill
01.06.2018
15:35:28

Dmitry
01.06.2018
15:35:32

Илья
01.06.2018
15:36:14
глянь pflag
типизация есть, usage тоже

Dmitry
01.06.2018
15:38:40
глянь pflag
насколько он распространен ? не хотелось бы чужой эксклюзивный велосипед с квадратными колесами использовать, я и свой могу написать

Denis
01.06.2018
15:38:52
cobra классная, но не понравилось в ней то, как парсить параметр --config (путь к конфигу, чтобы можно было параметры читать и из конфига и из командной строки) - приходится делать хак - парсить дважды аргументы или много кода повторно писать.

Илья
01.06.2018
15:38:59
pflag используется в viper, который очнеь распространен

Dmitry
01.06.2018
15:39:31
ну хорошо. пожалуй заюзаю. спасибо

Google

Kirill
01.06.2018
15:41:20
я о pflag и забыл уже)

Илья
01.06.2018
15:41:37
я его юзал для первых пет проджектов

Kirill
01.06.2018
15:41:44
обычно или flag, или сразу cobra %)

Илья
01.06.2018
15:41:50
с тех пор cli не делал давно ? крайний раз как раз на кобре
просто для некоторых небольших проектов cobra , как буст в плюсах, слишком жирно ?

Maxim
01.06.2018
15:49:55
Не путайте и читайте доки

Dmitry
01.06.2018
15:52:02
чето немогу найти ничего в документации pflags про позиционные параметры

Илья
01.06.2018
15:52:03
у вас там такое расследование

Dmitry
01.06.2018
15:54:30
cmd.exe filename1 filename 2
позиционые параметры filename1 filename2

Kirill
01.06.2018
15:55:10
О_о