
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

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

Google

Roman
18.07.2018
09:12:49

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 поди

Dmitriy
18.07.2018
10:39:14

Pavel
18.07.2018
10:39:39
либо подними всего 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

Roman
18.07.2018
10:58:05

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

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

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

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
а не TCP

Evgeny
18.07.2018
11:09:21

Pavel
18.07.2018
11:09:59
или random

Roman
18.07.2018
11:10:06

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

Roman
18.07.2018
11:11:42

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

Roman
18.07.2018
11:15:31

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

Pavel
18.07.2018
11:32:10

Roman
18.07.2018
11:33:04

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? хеш от имени метрики?