
Daniel
30.01.2017
08:50:11
обычно остаточно закрытия канала для сигналинга

Slach
30.01.2017
09:33:01
что-то я савсем запутался
вот сделал я канал буферизированный (размер буферв 100)
скажите, пока буффер не заполнится select в горутине читателе не вызовется??
так ведь?

Daniel
30.01.2017
09:34:08
нет :)
не так

Google

Slach
30.01.2017
09:35:27
а как?

Daniel
30.01.2017
09:36:04
запись в буферизованный канал происходит мгновенно, пока в буфере есть место
если место кончилось - блокируется до появления

Slach
30.01.2017
09:36:35
я не про запись... я про чтение...
чтение когда вызывается?

Alexander
30.01.2017
09:37:23
операция чтения блокируется во всех случаях когда пусто

Slach
30.01.2017
09:37:38
а если не пусто??? то когда?

Alexander
30.01.2017
09:37:39
операция записи когда буфера нет или он полон

Daniel
30.01.2017
09:37:47

Alexander
30.01.2017
09:37:49
то никогда. вопрос непонятен
ну просто потому что там секция default выбирается

Daniel
30.01.2017
09:38:12

Alexander
30.01.2017
09:38:16
select - это же жругой случай

Slach
30.01.2017
09:39:08
https://play.golang.org/p/0_MqBtVl-z
объясните вот этот код тогда пожалуйста???
почему там в горутине идет чтение только сразу после того как заполнился буфер?

Google

Alexander
30.01.2017
09:40:27
потому что это не параллелизм
а concurrency

Slach
30.01.2017
09:40:56
типа конкуренси идет за вывод в stdout ?

Alexander
30.01.2017
09:41:06
в один момент времени на одно логическом ядре выполняется только одна горутина (main это тоже горутина)
если ты запустишь этот код локально, то у тебя может быть другая картина

Slach
30.01.2017
09:41:23
я читал что main это тоже горутина
ок, понятно

Daniel
30.01.2017
09:42:00
concurrency на плейграунде очень странно работает, не надо там с ним экспериментировать

Slach
30.01.2017
09:43:56
=( ок
а вот такие опции что значат?
-gcflags "-N -l"

Alexander
30.01.2017
09:44:34
видимо что-то со сборщиком мусора, жаль, в гугле посмотреть нельзя :_

Slach
30.01.2017
09:50:53
The code generated by the gc compiler includes inlining of function invocations and registerization of variables. These optimizations can sometimes make debugging with gdb harder. To disable them when debugging, pass the flags -gcflags "-N -l" to the go command used to build the code being debugged.
ясно инлайн оптимизация отключается

Eugene
30.01.2017
12:07:27
https://scontent-amt2-1.xx.fbcdn.net/v/t1.0-9/16387335_1192908794163226_4047552555243849613_n.jpg?oh=9e7873a507faa116434ac439dfd75c9f&oe=594C4D39

Yura
30.01.2017
12:15:33
facepalm
понятное дело, что Fprintf ожидает форматную строку

Мерлин
30.01.2017
12:19:10
Знаете, это прям удобно
https://godoc.org/golang.org/x/build/version
Прям ваще

Антон
30.01.2017
12:50:19
Добрый день!
вопрос от новичка:
как правильно использовать mysql в go?
создавать глобальную переменную и в main делать коннект к базе, потом во всех функциях использовать?
или не делать глобальную переменную для мускуля, а локально его объявить в роуте и потом передавать в те функции, где это необходимо?

Daniel
30.01.2017
12:51:33
я делаю глобальную

Антон
30.01.2017
12:57:12
а других точек зрения и нет)
спасибо!

Google

Мерлин
30.01.2017
13:01:01

Антон
30.01.2017
13:01:32
мне казалось, что на го в принципе особо большие приложения и не пишут)

Сергей
30.01.2017
13:02:15
http://www.alexedwards.net/blog/organising-database-access

Slach
30.01.2017
15:44:06
народ, а может такое быть что при отладке одной горутины, другая горутина которая крутится в цикле, замрет и в итоге выдаст net.timeoutError ???
отлаживаю через dlv и golangd

One
30.01.2017
17:01:50
хорошо тут читать...

Slach
30.01.2017
17:43:29
как проверить что *os.File закрыт??
file.Fd() ? что должен возвращать после file.Close() ?? какую то константу? она os specific или общая?

Andrey
30.01.2017
17:55:41
func (f *File) Fd() uintptr {
if f == nil {
return ^(uintptr(0))
}
return uintptr(f.fd)
}
да не очень понятно надо читать дальше )
во
file.fd = -1

Andrey
30.01.2017
17:57:15
во время закрытия
значит после закрытия должен возвращать -1

Slach
30.01.2017
17:57:49
constant -1 overflows uintptr
после закрытия возвращает max int какой то =))
https://play.golang.org/p/jgOvmcqWE6

Slava
30.01.2017
18:03:08
а вы знаете что такое Two's Complement?

Andrey
30.01.2017
18:03:10
короче как написано в доке The file descriptor is valid only until f.Close

Slach
30.01.2017
18:03:57
это прекрасно =) я это читал
но мой вопрос
а как именно проверить что дескриптор закрыт?
ну то есть с чем мне сравнивать значение Fd() ??? с какой то константой???

Google

Daniel
30.01.2017
18:55:47
а зачем это проверять?
после закрытия надо нарисовать nil в соответствующую переменную сразу

Admin
ERROR: S client not available

Slach
30.01.2017
19:07:20
Ну я так в итоге сделал

Ivan
30.01.2017
20:23:34
А есть play.golang но с возможностью go get ?

Daniel
30.01.2017
20:33:02
нет

Lev
31.01.2017
07:32:31

Stuf
31.01.2017
08:48:38
Привет. Кто может с soap помочь?

Daniel
31.01.2017
08:48:50
привет
а что не так с мылом?

Stuf
31.01.2017
08:49:47
Тут не мыло. https://dev.okpay.com/en/manual/interfaces/index.html мне нужно с этим апи как-то сработаться

Андрей
31.01.2017
08:50:59
Ишь чо... С картинками...
Ну так SOAP - суть xml. Берем encoding/xml, к примеру, и срабатываемся.
Вот тут есть пример http://stackoverflow.com/questions/11767642/wsdl-soap-support-on-go
Ну или тут
http://stackoverflow.com/questions/12256353/how-to-do-a-soap-call-in-go

Stuf
31.01.2017
08:57:39
Я с вебмани интерфейсами работал. Я понял суть, просто тут непонятно куда токены вставлять.
Вот этот php пример, внизу который надо как-то в го перенести https://dev.okpay.com/en/manual/interfaces/functions/general/wallet-get-balance.html

i
31.01.2017
09:23:16
Одноразовое решение это xml парсить, правильное это на основе wsdl сгенерировать клиент для работы с API
Так, по-моему в шарпе делается

Мерлин
31.01.2017
09:45:48
https://github.com/hooklift/gowsdl/blob/master/README.md

Google

Stuf
31.01.2017
10:55:50
А как можно с помощью вот этого https://github.com/TranDuyThanh/soap/blob/master/soap.go переписать вот это https://dev.okpay.com/en/manual/interfaces/functions/general/wallet-get-balance.html на php?
req := soap.SoapRequest{
UrlString: "https://api.okpay.com/OkPayAPI",
Action: "Wallet_Get_Balance",
}
req.SendAndParseResponseTo("")
пустой ответпочему-то

Daniel
31.01.2017
10:56:41
а?!
коллега, вы взрывате мне мозг третий день :)
вы так ставите задачу, что я теряюсь

Constantine
31.01.2017
10:58:13
плюс я не пойму, зачем тебе okpay часть переписывать на го
сделай микросервис и дергай по http
дешевле будет

Stuf
31.01.2017
10:59:29
Не, только на го, а то получится махина из зависимостей

Constantine
31.01.2017
10:59:46
я тебя умоляю
а на го у тебя сейчас появится махина монолит )
если кратко, то изучай соап и пробуй примеры из инета