Home
golang
golang@conference.jabber.ru
Четверг, 21 апреля 2016< ^ >
Deirz установил(а) тему: Go Programming Language.
|| Изучаем: https://gobyexample.com/
|| Тур: http://tour.golang.org/
|| Как писать код: http://golang.org/doc/code.html
|| Как писать эффективный код: http://golang.org/doc/effective_go.html
|| FAQ: http://golang.org/doc/faq
|| 99% ответов о языке Go тут: http://golang.org/ref/spec
|| Сторонние либы: http://godoc.org/ https://github.com/avelino/awesome-go
|| Логи: http://chatlogs.jabber.ru/golang@conference.jabber.ru/
|| This chatroom does not adhere to any codes of conduct, be they implied or explicitly stated by someone. Your feelings can and WILL be hurt without a warning.
Конфигурация комнаты
Участники комнаты

GMT+3
[00:06:48] mks2 вышел(а) из комнаты
[00:13:52] <mantyr@jabberon.ru> Переформулировал на русском:) https://toster.ru/q/313102
[00:27:42] begemot_sun вышел(а) из комнаты: Replaced by new connection
[00:27:44] begemot_sun вошёл(а) в комнату
[00:40:22] postman вышел(а) из комнаты: Replaced by new connection
[00:40:22] postman вошёл(а) в комнату
[00:46:04] begemot_sun вышел(а) из комнаты
[01:09:48] krab вышел(а) из комнаты: Replaced by new connection
[01:09:50] krab вошёл(а) в комнату
[01:32:38] <kpmý> http://cs8.pikabu.ru/post_img/big/2016/03/24/12/1458851151163315434.jpg
[01:33:32] <kpmý> надо чо-нибудь на wasm нормально сделать и тогда нормально будет
[01:33:51] postman вышел(а) из комнаты
[01:33:51] <kpmý> я знал что рано или поздно перейду и на эту дрянь)
[01:34:45] kpmý вышел(а) из комнаты
[02:13:37] kms вышел(а) из комнаты
[02:35:33] unixlike вышел(а) из комнаты
[02:44:17] kms вошёл(а) в комнату
[02:44:35] kms вышел(а) из комнаты
[04:15:02] Deirz вышел(а) из комнаты
[04:57:38] 5UN5H1N3 вошёл(а) в комнату
[05:02:20] krab вышел(а) из комнаты: Replaced by new connection
[08:03:18] cheshir вошёл(а) в комнату
[08:12:53] Magiq вошёл(а) в комнату
[08:32:01] begemot_sun вошёл(а) в комнату
[09:15:26] Laz вошёл(а) в комнату
[09:20:56] <Laz> > Is it safe to be removed from map in a competitive environment? In Golang
[09:20:59] <Laz> wut
[09:21:31] <Laz> безопасно ли быть удалённым из отображения в соревновательном окружении?
[09:24:45] avz вошёл(а) в комнату
[09:40:40] plumbum вошёл(а) в комнату
[09:43:41] kpmy вошёл(а) в комнату
[09:50:55] <kpmy> какой-то киберпанк, соревновательный
[09:52:28] kpmy вышел(а) из комнаты
[09:53:20] <Magiq > как аргумент для flag.Duration передавать
[09:53:26] <Magiq > что я только не пробывал всеравно берет дефолтовое значение
[09:53:32] <Magiq > не могу понять что делаю не так
[09:57:00] <Magiq > ./updater-server --requestTimeout=10m
[09:59:14] <Magiq > жизнь боль
[09:59:47] Magiq вышел(а) из комнаты: Replaced by new connection
[09:59:49] Magiq вошёл(а) в комнату
[10:01:22] ermine вошёл(а) в комнату
[10:07:12] <Magiq > о я понял
[10:16:10] mantyr@jabberon.ru вышел(а) из комнаты
[10:31:34] mks2 вошёл(а) в комнату
[10:37:43] kpmý вошёл(а) в комнату
[10:37:52] <kpmý> https://groups.google.com/forum/#!msg/golang-announce/8FwSHbMTEjQ/2-IAqgSbLgAJ
[10:52:20] postman вошёл(а) в комнату
[10:52:45] <postman> эт, кто-нибудь знает, syslog.Writer безопасен для конкурентого использования?
[10:56:51] <postman> ответ: да.
[11:02:48] ftrvxmtrx вошёл(а) в комнату
[11:26:43] <Deirz> о, 1.6.2
[11:26:51] <Deirz> хорошая новость
[11:27:29] <postman> что там нового?
[11:38:05] kms вошёл(а) в комнату
[12:07:40] Deirz вышел(а) из комнаты
[12:08:50] Deirz вошёл(а) в комнату
[12:09:24] <Deirz> багфиксы в компилере и рантайме
[12:17:01] <postman> мне уже идея сделать болтдб-подобные транзакции вроде Store.Run(action func(), lockType LockType) err кажется не такой плохой.
[12:17:59] <Deirz> ты базу делаешь?
[12:19:32] <postman> нет.
[12:20:12] <postman> хм, в крайнем случае применю GOMAXPROCS=1 как пидарас.
[12:33:56] <Deirz> бтв ещё контекст впихнуть стоит
[12:35:08] Deirz вышел(а) из комнаты: Disconnected
[12:35:21] Deirz вошёл(а) в комнату
[12:35:26] <postman> не понимаю этого мемеса про контекст.
[12:35:36] <postman> когда он стал популярным, я не писал на пщвне.
[12:35:57] <Deirz> для таймаута и/или отмены запроса
[12:36:55] <postman> бля, всегда проигрываю с возможности вызова методов на nil-указателях.
[12:37:28] <Deirz> когда транзакция не успевает выполниться, то её отменяют. В этом случае лучше отменить транзакцию, если она ещё в очереди
[12:37:32] <Deirz> или даже во время исполнения
[12:37:57] <postman> ну там вон err подписан для такого.
[12:39:18] <Deirz> ну а как ты запущенному run посигналишь, что транзакция больше не нужна?
[12:40:42] <postman> а лол, извне?
[12:41:03] <postman> а как тут контекст поможет?
[12:45:21] Magiq вышел(а) из комнаты
[12:45:53] Magiq вошёл(а) в комнату
[12:47:16] <Deirz> в контексте таймаут лежит и он сам по таймауту умеет сигналить. И cancellation у него есть - где-нибудь в начале обработки запроса делаешь ctx, cancel := context.WithCancel(ctx), запускаешь в отдельной горутине обработчик и ждёшь результата, по определённому условию прерываешь обработку вызовом cancel()
[12:53:12] <Laz> какая-то жесть
[12:53:22] <postman> и не говори.
[12:55:51] unixlike вошёл(а) в комнату
[13:03:33] <kpmý> что тут происходит
[13:05:26] <postman> консисьтенси эвэйлабилити партишн толерэнс
[13:10:15] Magiq вышел(а) из комнаты
[13:10:44] Magiq вошёл(а) в комнату
[13:17:05] <postman> client.go:59: label loop defined and not used
[13:17:10] <postman> ahaha, ohuet
[13:17:27] <Deirz> мм, goto запахло
[13:18:54] <postman> break, на пацана отвечаю
[13:20:51] Magiq вышел(а) из комнаты
[13:21:19] Magiq вошёл(а) в комнату
[13:21:20] <kpmý> label zaloop
[13:31:46] Magiq вышел(а) из комнаты
[13:32:16] Magiq вошёл(а) в комнату
[13:42:42] Magiq вышел(а) из комнаты
[13:43:11] Magiq вошёл(а) в комнату
[13:52:09] mks2 вышел(а) из комнаты
[13:53:37] Magiq вышел(а) из комнаты
[13:54:06] Magiq вошёл(а) в комнату
[13:57:01] 5UN5H1N3 вышел(а) из комнаты
[13:58:23] Deirz вышел(а) из комнаты
[14:04:33] Magiq вышел(а) из комнаты
[14:05:02] Magiq вошёл(а) в комнату
[14:20:51] Magiq вышел(а) из комнаты
[14:21:21] Magiq вошёл(а) в комнату
[14:25:51] Deirz вошёл(а) в комнату
[14:28:51] avz вышел(а) из комнаты
[15:03:31] Laz вышел(а) из комнаты: Disconnected
[15:03:36] Laz вошёл(а) в комнату
[15:10:01] <kpmý> лайкнул https://www.reddit.com/r/golang/comments/4fsh1m/should_go_have_a_ternary_operator_or_was_it_left/d2bkbpv
[15:11:45] <Laz> лучше б if сделали выражением
[15:12:26] <Laz> и всё остальное тоже...
[15:12:44] <ftrvxmtrx> да
[15:16:16] <kpmý> и даже аллах
[15:26:52] Magiq вышел(а) из комнаты
[15:27:22] Magiq вошёл(а) в комнату
[15:30:12] <Deirz> выражения оверхайпнуты
[15:30:21] <Deirz> оператор ; - костыль
[15:36:20] <unixlike> Hi there !
[15:38:08] Magiq вышел(а) из комнаты
[15:38:37] Magiq вошёл(а) в комнату
[15:39:45] <unixlike> какой протокол можно использовать для взаимодействия между веб-сервером и аппликейшен-сервером . По условию веб-сервер знает айпи-адрес аппликейшен-сервера , но аппликейшен-сервер не знает адрес веб-сервера . Взаимойдествие может быть иницирована и со стороны web-сервера и со стороны аппликейшен сервера
[15:40:02] <kpmý> праздник к нам приходит, праздник к нам приходит http://releases.ubuntu.com/16.04/
[15:40:25] <unixlike> предпочтительный формат взаимодействия: json
[15:41:52] <unixlike> kpmý : тоже думаю её поставить , если ядро пересобрать наверное норм будет работать на ноуте
[15:43:07] <postman> говнянг
[15:43:29] <Laz> unixlike: а как апликейшон сервер может инициировать взаимодействие, если он не знает адрес другой стороны?
[15:43:54] <unixlike> ну например по вебсокету
[15:44:36] <Laz> ну то есть соединение постоянно установлено должно быть?
[15:45:01] <unixlike> Laz: ага
[15:45:07] <unixlike> типа сокета
[15:45:10] <Laz> ну тогда любой
[15:45:21] <unixlike> любой из чего ?
[15:45:28] <Laz> вебсокет ничем (почти) не лучше, чем обычный тцп
[15:47:05] <unixlike> вот что написано про пакет net
[15:47:06] <unixlike> Package net provides a portable interface for network I/O, including TCP/IP, UDP, domain name resolution, and Unix domain sockets.
[15:47:53] Deirz вышел(а) из комнаты
[15:47:59] Deirz вошёл(а) в комнату
[15:48:34] <unixlike> а в принципе наверное сделаю через websocket через ssl
[15:48:49] <unixlike> Всем спасибо !
[15:49:03] <Laz> кстати
[15:49:04] Magiq вышел(а) из комнаты
[15:49:09] <Laz> http2
[15:49:13] <Laz> нахер вебсокет
[15:49:25] <postman> ноулибс, ноусерверс
[15:49:33] Magiq вошёл(а) в комнату
[15:55:45] <unixlike> Laz: Спасибо ! Поковыряю его
[15:57:43] <kms> Laz: как нахер?
[15:58:19] <kms> хттп разве заменит собой вебсокет
[15:58:25] <Laz> каэш
[15:58:30] <Laz> ну или нет
[15:58:51] <Laz> но я что-то не представляю, зачем использовать вебсокеты, если есть хттп2
[15:59:20] <kms> из яваскрипта постоянное соединение держать, и ждать сообщений сервера
[15:59:48] <Laz> это всё есть в хттп2
[15:59:59] <unixlike> нашел прикольный пример с использованием
http2
[16:00:00] <unixlike> https://http2.golang.org/clockstream
[16:00:10] <Laz> плюс там есть мультиплексирование нескольких потоков в одном соединении
[16:00:13] <unixlike> одна беда не могу посмотреть исходники страницы)
[16:00:53] <kms> Laz: так а это... тоесть теперь с шаредхостингов можно держать постоянное соединение?
[16:01:01] <kms> в пхп
[16:01:31] <Laz> про пхп ничего сказать не могу
[16:01:51] <Laz> можно, наверное
[16:05:50] Magiq вышел(а) из комнаты
[16:06:19] Magiq вошёл(а) в комнату
[16:16:51] Magiq вышел(а) из комнаты
[16:17:20] Magiq вошёл(а) в комнату
[16:24:51] ftrvxmtrx вышел(а) из комнаты
[16:27:47] Magiq вышел(а) из комнаты
[16:28:16] Magiq вошёл(а) в комнату
[16:38:25] mks2 вошёл(а) в комнату
[16:38:42] Magiq вышел(а) из комнаты
[16:39:26] Magiq вошёл(а) в комнату
[16:41:35] Magiq вышел(а) из комнаты
[16:41:50] Magiq вошёл(а) в комнату
[16:46:56] Magiq вышел(а) из комнаты
[16:49:49] Magiq вошёл(а) в комнату
[16:56:46] ftrvxmtrx вошёл(а) в комнату
[16:59:59] <postman> напомните, гц goвна разруливает циклы ссылок?
[17:03:50] <Deirz> ему похуй
[17:04:31] <Deirz> mark'n'sweep не аффектится циклическими ссылками
[17:05:37] <postman> // Store modification is forbidden inside this and will cause a deadlock
func (ss *SessionStore) ForEach(f func(*Session)) {
    ss.lock.RLock()
    defer ss.lock.RUnlock()
    for _, session := range ss.sessions {
        f(session)
    }
}
[17:05:37] xep вышел(а) из комнаты
[17:05:40] <postman> :^)
[17:06:34] xep вошёл(а) в комнату
[17:09:16] <kpmý> чо как лох, делай go f(session)
[17:09:37] <postman> экспоненциальный разрыв жопы?
[17:09:56] <kpmý> много ходов очка
[17:23:25] postman вышел(а) из комнаты
[17:24:50] mantyr@jabberon.ru вошёл(а) в комнату
[17:30:47] <Deirz> https://github.com/traetox/goaio
[17:33:59] Deirz вышел(а) из комнаты
[17:34:05] 5UN5H1N3 вошёл(а) в комнату
[17:34:19] Deirz вошёл(а) в комнату
[17:35:13] <kpmý> где же FutureReader/FutureWriter
[17:37:22] <Deirz> go-vanga
[17:58:39] Magiq вышел(а) из комнаты
[17:59:07] Magiq вошёл(а) в комнату
[18:09:11] <kpmý> сейчас ведь всякие интерфейсы io довольно синхронные
[18:10:11] ftrvxmtrx вышел(а) из комнаты
[18:11:52] ftrvxmtrx вошёл(а) в комнату
[18:20:51] kpmý вышел(а) из комнаты
[18:31:23] Magiq вышел(а) из комнаты
[19:04:34] plumbum вышел(а) из комнаты
[19:24:48] 5UN5H1N3 вышел(а) из комнаты
[19:35:38] ftrvxmtrx вышел(а) из комнаты
[19:40:22] kms вышел(а) из комнаты
[19:42:42] kms вошёл(а) в комнату
[19:44:53] krab вошёл(а) в комнату
[20:00:10] krab вышел(а) из комнаты: Replaced by new connection
[20:00:12] krab вошёл(а) в комнату
[20:05:50] Laz вышел(а) из комнаты
[20:08:00] Deirz вышел(а) из комнаты
[20:13:00] Deirz вошёл(а) в комнату
[20:26:11] mantyr@jabberon.ru вышел(а) из комнаты
[20:27:54] mantyr@jabberon.ru вошёл(а) в комнату
[20:28:02] plumbum вошёл(а) в комнату
[20:33:50] cheshir вышел(а) из комнаты: Replaced by new connection
[20:33:58] cheshir вошёл(а) в комнату
[20:44:36] kms вышел(а) из комнаты
[20:45:02] krab вышел(а) из комнаты: Left Vacuum-IM
[20:46:29] cheshir вышел(а) из комнаты
[20:47:05] cheshir вошёл(а) в комнату
[20:47:19] kms вошёл(а) в комнату
[20:50:34] cheshir вышел(а) из комнаты
[20:51:27] cheshir вошёл(а) в комнату
[20:54:50] cheshir вышел(а) из комнаты
[20:55:35] cheshir вошёл(а) в комнату
[21:08:25] cheshir вышел(а) из комнаты: Replaced by new connection
[21:08:28] cheshir вошёл(а) в комнату
[21:24:56] cheshir вышел(а) из комнаты
[21:25:33] cheshir вошёл(а) в комнату
[21:39:41] <Deirz> наебал меня kpmy со стековой машиной
[21:40:13] <Deirz> развернуть дерево в обратную польскую нотацию не просто
[21:51:49] cheshir вышел(а) из комнаты
[21:52:31] cheshir вошёл(а) в комнату
[22:07:32] cheshir вышел(а) из комнаты
[22:08:29] cheshir вошёл(а) в комнату
[22:13:13] krab вошёл(а) в комнату
[22:37:27] cheshir вышел(а) из комнаты
[22:38:00] cheshir вошёл(а) в комнату
[22:42:29] cheshir вышел(а) из комнаты
[22:43:18] cheshir вошёл(а) в комнату
[22:46:52] ermine вышел(а) из комнаты
[22:48:17] cheshir вышел(а) из комнаты
[22:48:53] cheshir вошёл(а) в комнату
[22:50:27] mantyr@jabberon.ru вышел(а) из комнаты
[23:05:15] kpmý вошёл(а) в комнату
[23:09:28] <kpmý> Deirz: ну, скажем так, не наебал, просто я этот этап делал внутри компилятора, поэтом ast сразу получалась хорошо. А на этапе компилятора довольно просто всё разбирается
[23:10:56] Magiq вошёл(а) в комнату
[23:13:28] <kpmý> начинаешь с ожидания самой низкоприоритетной операции, например, сравнения, для сравнения нужно два операнда более высокого приоритета, например, сложение + вычитание, для сложения нужно два операнда более высокого приоритета, например, умножение + деление, для умножения нужно два операнда наивысшего порядка, то есть, константы и выражения в скобках.
при этом в конце каждого этапа ты кладёшь в ast готовый узел со всеми детками, потому что оно не может быть иначе, ведь при каждом погружении ты просишь всё более высокий порядок, а значит оно само собой выстраивается в postfix вариант.
[23:13:51] cheshir вышел(а) из комнаты
[23:14:06] cheshir вошёл(а) в комнату
[23:14:45] <kpmý> https://github.com/kpmy/leaf/blob/master/leac/leap/p/common.go#L514
[23:18:17] <kpmý> вот в этом куске видна вся цепочка, пытаемся разобрать quantum() так как expression в своём самом сложном варианте это сравнение двух подвыражений.
в свою очередь quantum пытается высосать подвыражение либо для отрицания, либо для сложение/вычитание, в виде product()
[23:18:20] <kpmý> и так далее
[23:18:27] mantyr@jabberon.ru вошёл(а) в комнату
[23:19:03] <kpmý> если ты посмотришь, то чисто по вызовам функций уже выстроена postfix цепочка выражений.
[23:19:12] <kpmý> хотя на входе infix
[23:19:22] <kpmý> привычный людям
[23:23:34] cheshir вышел(а) из комнаты
[23:24:49] cheshir вошёл(а) в комнату
[23:29:20] Magiq вышел(а) из комнаты
[23:30:16] Magiq вошёл(а) в комнату
[23:30:17] cheshir вышел(а) из комнаты
[23:30:59] cheshir вошёл(а) в комнату
[23:56:58] cheshir вышел(а) из комнаты
[23:57:25] plumbum вышел(а) из комнаты
[23:58:41] cheshir вошёл(а) в комнату
Powered by ejabberd Powered by Erlang Valid XHTML 1.0 Transitional Valid CSS!