
Den
24.01.2017
18:04:52
и в хидере локейшена естественно нет
ну нет, так как перекинуло уже
а как не перекидываться, там в хттп есть что если больше или равно 10 редиректом то ретурн
никто не подскажет, по русски вроде написал

Google

Quet
24.01.2017
18:09:21
кой-то набор слов
извини (

Berkus
24.01.2017
18:09:29
значит оно внутри себя уже обработало редирект

Den
24.01.2017
18:09:32
// CheckRedirect specifies the policy for handling redirects.
// If CheckRedirect is not nil, the client calls it before
// following an HTTP redirect. The arguments req and via are
// the upcoming request and the requests made already, oldest
// first. If CheckRedirect returns an error, the Client's Get
// method returns both the previous Response (with its Body
// closed) and CheckRedirect's error (wrapped in a url.Error)
// instead of issuing the Request req.
// As a special case, if CheckRedirect returns ErrUseLastResponse,
// then the most recent response is returned with its body
// unclosed, along with a nil error.
//
// If CheckRedirect is nil, the Client uses its default policy,
// which is to stop after 10 consecutive requests.

Berkus
24.01.2017
18:09:43
пожрало 302 и прошло по локейшену дальше

Den
24.01.2017
18:09:57
ну да

Berkus
24.01.2017
18:10:05
ну так и в чем вопрос

Den
24.01.2017
18:10:16
по умолчанию клиент жрет 10 локейшенов
а мне не надо, я не шарю, можно конечно нет себе забрать его импортнуть и изменить

Berkus
24.01.2017
18:11:07
зачем, ты же показал вон нужный кусок доки\

Den
24.01.2017
18:11:16
func defaultCheckRedirect(req *Request, via []*Request) error {
if len(via) >= 10 {
return errors.New("stopped after 10 redirects")
}
return nil
}

Berkus
24.01.2017
18:11:19
передай ему свой CheckRedirect

Den
24.01.2017
18:11:31
а как это

Google

Den
24.01.2017
18:11:49
client := &http.Client{Transport: tbTransport}

Berkus
24.01.2017
18:13:12
ну вот тут еще CheckRedirect: myCheckRedirect добавь

Den
24.01.2017
18:14:47
я тупенький

Berkus
24.01.2017
18:15:05
а я не пишу на го )

Den
24.01.2017
18:15:44
а я думал го для роботов
ладно, пусть так голосует
все, ушел, добрые

Maxim
24.01.2017
18:16:59

Alexey
24.01.2017
18:17:15
https://golang.org/src/net/http/client.go

Den
24.01.2017
18:17:30
это смотря как пост делать

Alexey
24.01.2017
18:17:35
// True if the specified HTTP status code is one for which the Post utility should
// automatically redirect.
func shouldRedirectPost(statusCode int) bool {
switch statusCode {
case StatusFound, StatusSeeOther:
return true
}
return false
}

Den
24.01.2017
18:17:52
http.NewRequest("POST", "http://7.htm", &by)
он не пост редиректит а респонс на пост
ретурнает уже редирекченный боди
Нормально изъясняюсь?

Berkus
24.01.2017
18:19:38
> case StatusFound
эмм но это жа 302?

Alexey
24.01.2017
18:20:53

Berkus
24.01.2017
18:21:11
ну то есть оно будет редиректить
а Дену я так понимаю, нужно чтобы не редиректило

Google

Alexey
24.01.2017
18:22:57
Ну тогда надо создавать клиента.
И клиенту давать CheckRedirect
https://golang.org/pkg/net/http/#Client

Slach
25.01.2017
06:21:49
=) всем привет
а подскажите пожалуйста
а по каким причинам может go bench
не выходить из процесса
хотя во время теста случился принудительный вызов panic(err)
код выглядит примерно так
if err := q.Exec(g.db_conn[i]); err != nil {
panic(err)
}
панику в stderr рисует
но из процесса не выходит
почему ? ;)
я понимаю что надо return nil, err
правильнее, но конкретно в этом случае надо делать выход
делать
log.Fatal(err)
тоже не очень хочется в этом месте

Kirill
25.01.2017
06:22:43
а почему у тебя вообще такой вызов случился?
почему ты не используешь встроенные возможности выхода?
не всякие паники
а метод специальный

Slach
25.01.2017
06:24:13
ну хотелось понять чем panic в go отличается от exception в python
на пальцах так сказать
ну то есть да, я могу там поставить
log.Fatal(err)
os.Exit(1)

Kirill
25.01.2017
06:25:21
ну — для начала, паника должна быть тогда, когда нужно выйти из программы при ошибке, потому что её невозможно обработать и она затрагивает сразу всю работоспособность программы. в других случаях паник не должно быть категорически.
их даже сравнивать с исключениями категорически нельзя как минимум потому, что использовать исключения в других языках — нормально, а использовать панику в Go — нет.

Slach
25.01.2017
06:28:04
ну, я понимаю что ненормально и panic это именно что остановка всего рантайма и по идее выход из процесса

Slach
25.01.2017
06:30:11
но все таки
почему принудительный вызов panic
внутри go bench
не приводит к остановке go bench ???
потому что оно там делает спокойненько recover ?
и пох что там течь все может?

Yura
25.01.2017
08:05:28
Надо открывать issue. Сделаешь? Я плюсану.

Никита
25.01.2017
08:17:14
https://youtu.be/mur2aRsRxZ0

Slach
25.01.2017
08:22:19

Roman
25.01.2017
08:57:01

Kirill
25.01.2017
08:58:26

Roman
25.01.2017
08:59:43
Вобще то go way обработки ошибок
x, err := myfunc()
If err { ... }

Kirill
25.01.2017
09:00:02

Google

Demiurg
25.01.2017
09:02:14
а прочие какие?

Roman
25.01.2017
09:26:32
Вот такой код работает:
func main() {
if f, err := Sqrt(-1)
if err != nil {
panic(err)
}
fmt.Println(f)
}
Ну и этот тоже работает:
func main() {
err := Sqrt(-1); if err != nil {
panic(err)
}
fmt.Println("11")
}
Тупанул вопрос был про выход
Вобще для обработки ошибок тут используется log.Fatal(err) : https://blog.golang.org/error-handling-and-go
panic() используется для перехвата и восстановления ошибок через recover(). https://blog.golang.org/defer-panic-and-recover

Kirill
25.01.2017
10:07:13

Roman
25.01.2017
10:07:30
Из примера по ссылке

Admin
ERROR: S client not available

Slach
25.01.2017
10:21:39
в общем оно у меня под golangd в дебагере не выходило из процесса
возможно это косяк golangd или дебагера

Subbotin
25.01.2017
10:53:24
а кто чем профайлится в го?

Serge
25.01.2017
10:55:21

i
25.01.2017
10:55:59

Aleksey
25.01.2017
11:08:05
Встроенным pprof

Denis
25.01.2017
11:18:04
где можно почитать что они там мутят для 2.x
в milestones 2.x вообще нет
ви а гоин ту рефинк эрорс, может еще что годное они гоин

Subbotin
25.01.2017
11:30:51
будут генерики, потокобезопасные мапы, встроенные функции map filter и reduce
https://github.com/goodlang/good/issues

i
25.01.2017
11:32:11
наследование будет?

Google

Alexander
25.01.2017
11:52:32
нет, сказано же – используйте композицию

Denis
25.01.2017
11:53:22
?

Kirill
25.01.2017
12:08:03

Subbotin
25.01.2017
14:43:15
чё-то под макось у меня pprof упорно ничего не пишет в файл профайла
он под маком работает или нужен линупс?
ну понятно. короче проще под линупсом

Evgenij
25.01.2017
14:55:17

i
25.01.2017
14:56:09
Прост

Evgenij
25.01.2017
14:56:40
Если интересно погугли про делегирование против наследования

Quet
25.01.2017
14:58:41

Evgenij
25.01.2017
15:03:22

Denis
25.01.2017
15:06:47
Making the move from Scala to Go, and why we're not going back | Movio Movio Blog
https://movio.co/blog/migrate-Scala-to-Go/

Evgenij
25.01.2017
15:07:45

Denis
25.01.2017
15:11:33
Статья большая, правда сравнение акторов с каналами нелепое, но в целом newbie оценят

Evgenij
25.01.2017
15:14:31
Мне один чел сказал что можно запустить го прогу на баре метал(я ему доверяю) - это очень сильно перевешивает в некоторых вопросах

Daniel
25.01.2017
15:15:09
можно, но зачем?
какой толк в этой проге без всего остального, что есть в системе?

Yura
25.01.2017
15:15:54
Ну, для Ocaml я такое слышал. И для C++.

Denis
25.01.2017
15:16:09
Там еще ссылочки на примеры выполнения backpressure и построение FIFO ответов при параллельной обработке

Evgenij
25.01.2017
15:16:11
Ну система наслаивается как мясо на шампур)))