@proGO

Страница 604 из 1674
LexsZero
28.04.2017
16:49:37
да и вообще, выставлять приложения голой жопой в энторнеты без фронтенда - моветон

m
28.04.2017
16:50:16
А golang.org разве не выставлен "голой жопой"?

Aleksey
28.04.2017
16:50:44
Поняня. В конфиге nginx создать 3 conf файла, каждый будет работать со своим go бинарником?

LexsZero
28.04.2017
16:51:22
каждый будет редиректить запросы на соответствующий порт/сокет/whatnot на котором слушают разные бинарники

Google
m
28.04.2017
16:51:28
конфиг у nginx-а один. а в конфиге нужно описать три блока server{ ... }

LexsZero
28.04.2017
16:51:50
в конфиге можно делать инклюды, по-хорошему

чтоб вся херня относящаяся к одному приложению лежала в одном месте

и количество копипасты сократить можно (хотя в простейшем случае это не нужно)

А golang.org разве не выставлен "голой жопой"?
> HEAD golang.org Gi Server Server: Google Frontend

Aleksey
28.04.2017
16:53:55
Ни кто не встречал в нете пример такого конфига на несколько апп?

LexsZero
28.04.2017
16:54:32
https://www.nginx.com/resources/wiki/start/topics/examples/server_blocks/ с тебя $10 за гуглеж

Aleksey
28.04.2017
16:56:27
LexsZero
28.04.2017
16:56:44
http://stackoverflow.com/a/13241047

Aleksey
28.04.2017
16:57:20
Просто думалось, что го не нужен nginx

m
28.04.2017
16:57:33
> HEAD golang.org Gi Server Server: Google Frontend
Ты прав. И на поддоменах тот же заголовок.

Просто думалось, что го не нужен nginx
nginx очень простой. Рекомендую понять как он работает. Точно в жизни пригодится.

Aleksey
28.04.2017
16:59:39
nginx очень простой. Рекомендую понять как он работает. Точно в жизни пригодится.
Да я немного с ним работал, когда питон/джангу диплоил

Google
m
28.04.2017
16:59:43
99% его директив тебе не нужны. так что в идеале найди простой конфиг на один домен и разберись что там написано в каждой строчке. потом по подобию и для своих доменов сделаешь. Если что, обращайся.

тебе нужно прочесть про server, listen и proxy_pass .

LexsZero
28.04.2017
17:09:05
я имею в виду http frontend, а не то что юзеру в браузер прилетает

m
28.04.2017
17:15:03
запрос от браузера сначала приходит в nginx, а nginx его пересылает одному из твоих демонов. Ответ от твоего демона также сначала идёт в nginx, а потом nginx пересылает его браузера.

Che
28.04.2017
18:50:41
Igor
28.04.2017
18:59:45
как его распарсить потом?
https://blog.golang.org/json-and-go

Igor
28.04.2017
19:34:28
Народ, а почему в https://pastebin.com/WEXhR9TD слова hello и world выводятся в консоль последовательно? Разве GOрутины не должны работать паралельно? Параллельно работает если только добавить time.Sleep(1 * time.Millisecond) после fmt.Println

Igor
28.04.2017
19:37:47
потому что первая горутина заканчивает работу первой
Да нет (вроде) там долгий цикл. Хотя я тестил на web - может кто проверить сколько нужно выставить циклов в for что бы заработало?

m
28.04.2017
19:39:54
Игорь, порядок выполнения горутин не определён. У вас выполяется так, на другой платформе будет иначе.

Igor
28.04.2017
19:43:15
https://play.golang.org/p/SJ5SRRpAn5
Я же писал что со time.Sleep работает. А нужно без time.Sleep

LexsZero
28.04.2017
19:43:51
оно всегда так работает, просто не всегда это можно пронаблюдать вот таким вот образом

m
28.04.2017
19:44:09
Вставьте перед fmt.Println(s) runtime.Gosched() и будет вам счастье.

это передача управления в другое горутины.

LexsZero
28.04.2017
19:44:56
race-driven architecture

Mikhail
28.04.2017
19:46:10
Я же писал что со time.Sleep работает. А нужно без time.Sleep
попробуй запустить этот код на компе (не на play.golang.ru) - https://play.golang.org/p/VDv_WOZqsK

Igor
28.04.2017
19:46:18
Вставьте перед fmt.Println(s) runtime.Gosched() и будет вам счастье.
Блин, у нас у тут спор в @kotlin_lang (можете там ознакомится) насчет "насколько GOрутины честные файберы". Мы должны проверить что переключение GOрутины может происходить "когда угодно" без всяких хаков (Sleep / Gosched)

Google
m
28.04.2017
19:46:23
https://play.golang.org/p/4etW2Ke732

Aleksey
28.04.2017
19:47:06
Друзья, смотрю нынче в стдлиб запилили функцию вывода println(), которая работает без пакета fmt или так было с самого начала?

LexsZero
28.04.2017
19:47:58
было с самого начала

m
28.04.2017
19:48:14
Оно может происходить, когда горутина ушла в ожидание чего-то.

её в будущем убрать могут. так что лучше fmt.Println()

Aleksey
28.04.2017
19:49:26
Понятно

m
28.04.2017
19:50:18
ИМХО такое поведение горутин может казаться несправедливым, но зато экономится куча процессора на ненужном переключении горутин.

LexsZero
28.04.2017
19:50:54
но если горутины попадут в разные ос-треды, тогда они будут преемптиться ядром

Daniel
28.04.2017
19:51:20
это имеет практическое значение хоть какое-то?

Igor
28.04.2017
19:51:46
тлдр: кооперативный
Те если сделать много 1kk GOрутин, то длительные горутины в начале затормозят коротки но созданные посже?

LexsZero
28.04.2017
19:52:07
это имеет практическое значение хоть какое-то?
да. если тред один, и мы что-то большое считаем в одной горутине - другие будут сосать хуй пока эта недосчитает.

LexsZero
28.04.2017
19:53:03
как раз на этот случай и есть костыль runtime.Gosched() который нужно дергать руками в таком случае

Daniel
28.04.2017
19:53:52
один-единственный раз я на это напоролся. один за три года. и runtime.Gosched() меня вполне спас тогда

m
28.04.2017
19:57:10
да

Daniel
28.04.2017
19:57:15
если горутина - или что угодно еще - читает файл - она блокируется

LexsZero
28.04.2017
19:57:18
А если горутина читает файл, будет переключение без Gosched?
а это IO, там рантайм будет класть горутину в вейт. да.

Google
Daniel
28.04.2017
19:57:53
но на вызове операции шедулер получит управление.

m
28.04.2017
19:58:00
Игорь, с большой вероятностью Gosched() вызывать Вам не понадобится.

Просто пишите код. ?

Daniel
28.04.2017
19:58:24
а еще шедулер получит управление на вызове любой не-inline функции. поэтому так сложно на это напороться

m
28.04.2017
20:03:17
Запускаю goxc для получения дистрибутивов. И оно падает то на тестах, то на компиляции и с какими-то мутными ошибками: fatal error: unexpected signal during runtime execution [signal SIGSEGV: segmentation violation code=0x1 addr=0x8073a pc=0x80700de] [goxc:xc] 2017/04/28 22:33:44 'go' returned error: Wait error: exit status 2: # bytes ../../../../go1.8.1/src/bytes/bytes.go:524: internal compiler error: not lowered: v16, Load SLICE PTR32 mem что бы это значило? Может оперативка глючит?

LexsZero
28.04.2017
20:03:47
на другой машине пробовал?

если б оперативка глючила, то у тебя бы вся система глючила

m
28.04.2017
20:04:08
нет пока ещё. Долго всё настраивать...

не факт. у меня один сервер есть с глючащей оперативкой. глючит один регион памяти. там крутятся апачи. и они иногда падают, когда им глючная память достанется. а сам сервер работает без ребута год уже наверное.

Igor
28.04.2017
20:10:41
но на вызове операции шедулер получит управление.
А есть для этих точек в программе официальное название (типа safepoint в java)?

Admin
ERROR: S client not available

m
28.04.2017
20:24:00
memtest86+ ничего не нашёл плохого с памятью.

Maxim
28.04.2017
22:23:05
В for есть возможность начать ТУ ЖЕ итерацию заново?

break досрочно останавливает итерации, continue досрочно переходит к следующей итерации, return завершает итерации возвратом результатов. А повторения текущей итерации нет?

LexsZero
28.04.2017
22:27:03
goto? махинации с переменной цикла и continue?

внутренний цикл?

Maxim
28.04.2017
22:27:37
Например есть задача убирать с начала строки все символы дефиса: for _, tag := range tags { if strings.HasPrefix(tag, "-") { tag = tag[1:] } } Я хочу убедиться, что дефисов в начале точно нет, если их несколько

Т.е. убирать дефисы в том же объекте пока их не будет совсем, а уже потом переходить к следующему объекту.

Maxim
28.04.2017
22:30:20
for _, tag := range tags { for tag[0] == '-' { tag = tag[1:] } }
Ну, это аналог того что я написал. Это не то.

Google
Dmitriy
28.04.2017
22:31:11
Мне кажется ты хочешь странного

LexsZero
28.04.2017
22:31:12
ну придумай тогда другой пример, когда "начать итерацию с начала" не выражается через еще один вложенный цикл

Maxim
28.04.2017
22:31:12
Он уберёт этот символ и перейдёт к следующему тегу. Мне нужно на нём задержаться и гарантировано убрать все дефисы.

Андрей
28.04.2017
22:31:37
https://golang.org/pkg/strings/#Replace

Maxim
28.04.2017
22:32:14
Как так?

LexsZero
28.04.2017
22:32:36
Как так?
ты на сишке никогда не писал, да?

Maxim
28.04.2017
22:32:37
А, я заметил

LexsZero
28.04.2017
22:33:18
пока первый символ строки это дефис, удаляем его. профит.

Dmitriy
28.04.2017
22:34:30
Открыли while

Андрей
28.04.2017
22:34:31
https://play.golang.org/p/Ljecoffoh1

Maxim
28.04.2017
22:34:49
for _, tag := range tags { for tag[0] == '-' { tag = tag[1:] } }
Всё, сорян, я не заметил что там уже не if

LexsZero
28.04.2017
22:35:09
https://play.golang.org/p/Ljecoffoh1
оно пореплейсит дефисы не только в начале строки, а вообще все

Maxim
28.04.2017
22:35:28
https://play.golang.org/p/Ljecoffoh1
Не подходит. Мне нужно убирать дефисы только с начала строки

https://play.golang.org/p/zvxMDWeMee
Это более чем достаточно

LexsZero
28.04.2017
22:36:36
Это более чем достаточно
https://godoc.org/strings#TrimLeft

это идеоматичнее все-таки

tag := strings.TrimLeft(tag, "-")

Maxim
28.04.2017
22:37:54
это идеоматичнее все-таки
Да, тоже вариант: https://play.golang.org/p/8XHv7sJWXP

Aleksey
29.04.2017
01:03:57
Как решаете вопрос с нехваткой типа Decimal ?

Страница 604 из 1674