@proGO

Страница 1574 из 1674
DMITRY
18.07.2018
06:59:34
ага ток надо еще посчитать високосный год или нет

Alexei
18.07.2018
07:00:49
там достаточно просто должно быть пересчитать эту дату в юникс, а оттуда уже плясать

DMITRY
18.07.2018
07:03:00
надо ток сообразить с високосными годами

Alexei
18.07.2018
07:04:15
юникс дата - это же тоже количество секунд с определенной даты, вычисли разницу между датами начала и прибавляй к дельфи-значению эту разницу - получишь юникс, как-то примерно так

Google
DMITRY
18.07.2018
07:06:27
ну да лучше вариант,чем самому считать

Александр
18.07.2018
07:25:23
очень блин странно

у меня SDK 1.9.4

и там нет https://godoc.org/golang.org/x/crypto/argon2

Anufant
18.07.2018
07:26:14
Привет, дурацкий вопрос, какой канал читать в первую очередь, этот или "go, go", ну в общем тот который параллельный русскоязычный :) понимаю, что часто задают вопрос, но все же, есть между ними разница принципиальная?

Александр
18.07.2018
07:29:16
да никакой

все те же рожи ?

иногда обсуждение тут иногда там

Kirill
18.07.2018
07:44:34
все те же рожи ?
Что там рожи, даже админы те же

Oleg
18.07.2018
07:47:17
Ребят, есть проблема с зависимостью, которая юзает cgo,в зависимости есть файл, он подключает в себя сишый файл, который юзает либу openssl, подключения выглядят таким образом: #include <openssl/bio.h> #include <openssl/evp.h> #include <openssl/err.h> .... На линуксе это решалось так: ставил openssl и дел с концом, но сейчас пытаюсь сбилдить это все на винде, поставил openssl, работает, решил, что есть неплохой костыль добавить в Path путь к этим исходникам, но тоже не прокатило, как можно решить подобную проблему? Исходники лежат по пути C:\OpenSSL-Win64\include\openssl Я получается добавляю в Path новое значение C:\OpenSSL-Win64\include\ , но что-то не очень помогло. П.С. пробовал и со слэшом в конце и без

Vany
18.07.2018
08:29:01
явно пропиши пути до инклюдов в -I для компайлера. прямо в скрипте сборки

Oleg
18.07.2018
08:52:48
явно пропиши пути до инклюдов в -I для компайлера. прямо в скрипте сборки
Говорит, что ничего не знает про такой флаг, прописываю: go build -o name -l C:\...\include Можно попросить какой-нибудь пример?

Linux
18.07.2018
09:05:49
Добрый день! Хотел бы узнать у опытных людей как производить авторизацию и чекать ее. Сейчас ее записываю в монго, _id из mongo записываю в куки и при любом запросе к рест серверу делаю аля: if !checkAuth(c) { c.Redirect(302, "/login") return }

Google
Alexey
18.07.2018
09:54:12
https://golang-moscow.timepad.ru/event/765492/

кто не знал, или забыл. 7 дней до митапа

Evgeny
18.07.2018
10:20:32
Всем привет, Есть такой вопрос. Я использую модуль http. Сначала вызываю http.HandleFunc, потом http.ListenAndServe. Все хорошо работает, но мне нужно различать отдельных клиентов. Клиенты используют keep-alive соединения, поэтому низлежащее tcp подключение не разрывается (я думаю). Но в функции, которую я передаю в http.HandleFunc невозможно понять от кого данные.

DMITRY
18.07.2018
10:23:43
Long Polling ?

Evgeny
18.07.2018
10:28:48
нет, это просто оптимизация, хочу чтобы данные от одного клиента шли потом на один и тот же сервер

приложение просто пересылает данные дальше

Pavel
18.07.2018
10:29:53
Sticky cookies?

Evgeny
18.07.2018
10:33:13
не могу устанавливать cookies (вообще не контролирую код клиента)

http.Request.RemoteAddr не подходит, т.к. RemoteAddr один и тот же

Stanislav
18.07.2018
10:36:38
через прокси чтоли ходят клиенты?

DMITRY
18.07.2018
10:36:52
за NAT поди

Pavel
18.07.2018
10:39:39
не могу устанавливать cookies (вообще не контролирую код клиента)
в ответе -- set cookie заголовок, но если и так нельзя, то protocol+source ip+source port для роутинга используй

либо подними всего 1 сервер и не парься, епто

Evgeny
18.07.2018
10:42:03
В общем ясно, спасибо. Так и думал что на С++ переписывать придется.

Dmitriy
18.07.2018
10:43:01
а какая разница на что вы перепишите?) вам дали ответы, если вам они не подходят, то врят ли вы сервером на c++ решите вашу задачу

DMITRY
18.07.2018
10:43:25
тоже не понял разницу перехода на язык

Evgeny
18.07.2018
10:52:36
В с++ я могу использовать libmicrohttpd или boost.asio, там я смогу получить доступ к соединению напрямую, либо создать отдельный контекст на каждое соединение. С помощью модулья http в Go так сделать нельзя.

Просто мой клиент, это одно приложение (prometheus), который использует пулл подключений. Метрики шардируются между ними, мне нужно открыть пулл исходящих подключений и распределить входящие данные между ними так, чтобы не терять data locality. Модуль http в Go судя по всему под други задачи делался, эта довольно узкая.

Google
Pavel
18.07.2018
10:58:44
Ага, что даст доступ к соединению напрямую, если оно уже установлено не с тем сервером? ?

И, во-вторых, из http.ResponseWriter можно получить net.Conn.

Evgeny
18.07.2018
10:59:40
мне нужно просто различать соединения

DMITRY
18.07.2018
11:00:04
по какому параметру вы хотите физически различать соединения?

Evgeny
18.07.2018
11:00:06
net.Conn возможно то что нужно, спасибо

Roman
18.07.2018
11:00:16
мне нужно просто различать соединения
мне кажется, вам нужно немного теорию почитать по сокетам и tcp

Evgeny
18.07.2018
11:00:48
возможно действительно стоит ?

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

дело нехитрое, на самом деле

Pavel
18.07.2018
11:03:11
Roman
18.07.2018
11:03:34
и даже больше. tcp соединение не вечное

дмитрий выше правильный вопрос задал

Pavel
18.07.2018
11:04:32
и какая разница что данные от одного клиента уйдут в разные подключения? пахнет плохим овер-инжинирингом

Evgeny
18.07.2018
11:04:48
клиент использует keep-alive, т.е. запросы разные а tcp подключение одно

Roman
18.07.2018
11:06:02
клиент использует keep-alive, т.е. запросы разные а tcp подключение одно
перезагрузку роутера кип-элайв коннект не переживет

Pavel
18.07.2018
11:06:11
DMITRY
18.07.2018
11:06:41
а разве для http, keep alive работает?

Evgeny
18.07.2018
11:06:49
мой вопрос не в этом был, если что, я знаю что не переживет и что это не обязательно будет так

Pavel
18.07.2018
11:07:30
а почему ты хочешь балансировать тогда по клиенту, если гарантий нет и у тебя все равно данные будут идти в разные исходящие подключения?

Google
Roman
18.07.2018
11:07:41
мой вопрос не в этом был, если что, я знаю что не переживет и что это не обязательно будет так
тогда просто присваивайте ид соединение при коннекте и записывайте куда то

DMITRY
18.07.2018
11:07:43
Насколько я понимаю для http, keep alive будет актуален только при long poling

Evgeny
18.07.2018
11:08:30
Pavel
18.07.2018
11:08:31
Насколько я понимаю для http, keep alive будет актуален только при long poling
не, это HTTP/1 штука -- не закрывать подключение после отправки запроса и получения ответа, если возможно

а не TCP

Evgeny
18.07.2018
11:09:21
а почему ты хочешь балансировать тогда по клиенту, если гарантий нет и у тебя все равно данные будут идти в разные исходящие подключения?
все живет в одном дц, работает на соседних стойках (скорее всего), не вижу проблем почему бы этому всему не работать так как я хочу

Pavel
18.07.2018
11:10:07
что сломается?

что будет работать медленнее?

Evgeny
18.07.2018
11:10:45
это будет медленнее (сильно), это все просто оптимизация, не обязательно чтобы так работало гаранированно всегда

DMITRY
18.07.2018
11:10:54
Вообще когда http закроется,какой keep alive может быть обьясните?

или я неправильно понимаю OSI

Evgeny
18.07.2018
11:11:17
кстати, зачем вообще что то писать. поставьте nginx и балансируйте
я меняю формат (это remote write адаптер для prometheous)

Roman
18.07.2018
11:11:42
Вообще когда http закроется,какой keep alive может быть обьясните?
через один tcp коннект можно отправлять разные http запросы

Pavel
18.07.2018
11:14:30
я все еще считаю что это неосмысленный оверинжениринг, особенно учитывая контекст прометеуса ?

хотя может это для job security!

Roman
18.07.2018
11:15:31
я меняю формат (это remote write адаптер для prometheous)
у nginx куча разных плагинов, может, вам что то подойдет. как это точно сделать на го не подскажу, но, скорее всего, нужно просто хранить канал, который читает из одного соединения и сразу пишет в другой с каким то миддлваре

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

Google
Evgeny
18.07.2018
11:19:31
хотя может это для job security!
это не для работы и это не overengenerring, многие БД лучше работают когда соблюдается data locality (т.е. одни и те же данные отправляются вместе), тут та же история, пром шлет через каждое соединение один и тот же набор метрик, поэтому я хочу их отправлять так же, не ломая locality

Pavel
18.07.2018
11:20:06
в какую БД вы пишите, если не секрет?

гарантии что точно уйдет куда надо+действительно простая реализация, без оверинжениринга

Roman
18.07.2018
11:31:07
я меняю формат (это remote write адаптер для prometheous)
вот, например, для nginx можно на Lua писать https://github.com/openresty/lua-nginx-module#body_filter_by_lua

Pavel
18.07.2018
11:32:10
Roman
18.07.2018
11:33:04
приложение на го проще поддерживать, чем nginx-lua
проще, когда опыт есть. а так это будет сплошной баг фикс и круги под глазами ;)

а в чем проблема балансировать по имени пришедшей метрики?
там keep alive в обе стороны должен быть. вообще не понятно, зачем что то привязывать. есть соединение - пиши, нет - октрой новое на рандомный сервер и пиши

Pavel
18.07.2018
11:35:58
именно поэтому я и говорю, что это оверинжиниринг ?

Evgeny
18.07.2018
11:39:48
Там http только на вход, на выход tcp, но даже если было бы http и там и там, http клиент просто открыл бы одно исходящее подключение, а мне нужен пулл подключений.

Pavel
18.07.2018
11:49:52
кто ж запрещает держать пул или даже открывать каждый раз новое и закрывать (это все равно придется делать, чтобы пул был живой)

но вопросы то не об этом

что за бд? почему баланс по подключению, а не по имени метрики, раз нужна data locality по твоим словам?

Evgeny
18.07.2018
11:57:32
кто ж запрещает держать пул или даже открывать каждый раз новое и закрывать (это все равно придется делать, чтобы пул был живой)
Никто не мешает, я так и делаю, только вот нужно выбирать соединение из пулла, прежде чем что нибудь в него писать. Вопрос как раз и был в том, как это сделать.

Pavel
18.07.2018
11:58:34
round robin? хеш от имени метрики?

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