
Pavel
13.05.2016
17:20:52
Тогда надо хранить пользовательскую сессию не в базе а где-то в кеше действительно

Dmitry
13.05.2016
17:20:56
Кстати, вот в вайбе req, res идет.
Типа:
void checkAuthorization(HTTPServerRequest req, HTTPServerResponse res)
если мне нужно внутри них еще http на левый ресурс отправить, мне как лучше сделать внутри этой функции еще одну:
void foo(HTTPServerRequest req, HTTPServerResponse res)
?

Pavel
13.05.2016
17:21:02
Во временном хранилище самого вайба например

0x9d8e
13.05.2016
17:21:39
Да, и базу эту по минимуму использовать

Google

0x9d8e
13.05.2016
17:22:14
в режиме master->slave, где master некое хранилище в памяти
пишем в него, читаем из него, а там в воне "синхронизируем"
*в фоне
В вебе, когда хочется максимально отзывчивости всё по-максимуму обрабатывается в браузере, а на сервер только результирующее состояни отправляется, можно даже по таймеру и только в критических местах, можно даже по таймеру (делал так, например, с корзиной в магазине).

Eto
13.05.2016
18:37:58


Dmitry
13.05.2016
18:57:23
ну втюшка переключается в завимости от ответа сервера
@sigod но в целм я разобрался как надо, спасибо)
Как в терминологии Ди адекватно термин predicate перевести?
Пример фразы: Didn't even realise canFind could take a predicate!

Pavel
13.05.2016
19:04:57
Что-то похоже на предикат
canFind может в качестве параметра принимать функцию-предикат
т.е. которая возвращает bool

Dmitry
13.05.2016
19:05:30
что такое предикат?))
как это по русски то

Google

Pavel
13.05.2016
19:06:37
Предикат в программировании — функция, принимающая один или более аргументов и возвращающая значения булева типа.

Eto
13.05.2016
19:29:38

Pavel
13.05.2016
19:43:45
Пара секунд это категорически ненормально даже при условии curl
Все должно отрабатывать за пару миллисекунд

Dmitry
13.05.2016
19:45:30
нет, у меня все предельно тупорное, щас код покажу
вот позоду в районе 21 строки все начинается:
http://www.everfall.com/paste/id.php?5dcu96umd094
мне так кажется во всяком случае
Что-то не могу понять, что прописывать, чтобы из интернета вайб слушал вхоядщие данные?
Внешний ИП сервера?

Just
15.05.2016
19:41:25
где прописывать?

Dmitry
15.05.2016
19:41:29
settings.port = 8080;
settings.bindAddresses = ["::", "127.0.0.1"];

Just
15.05.2016
19:42:02
а на чем сервер запущен?

Dmitry
15.05.2016
19:42:07
Цindows
*Windows

Just
15.05.2016
19:42:15
т.е. на домашнем компе?

Dmitry
15.05.2016
19:43:24
Ну там как. Есть домен. При образении к определенному адресу _site.ru/foo идет переадресация на внутренний ИП на другой порт
Раньше там был IIS — и слушал 8081 порт, теперь я на Ди все начал переписывать

Just
15.05.2016
19:44:29
ну вообще внешний ip нужно, по идеи. хотя не могу точно сказать

Dmitry
15.05.2016
19:44:36
и не могу понять как запустить, так чтобы работало как раньше на ИИС
Пишет: Failed to listen когда ему внешний ИП указал...

Just
15.05.2016
19:47:24
а, ну это, попробуй может 0.0.0.0

Google

Dmitry
15.05.2016
19:48:12
а это что значит?

Just
15.05.2016
19:48:56
ну это часто встречающих вариант ip адреса локалхоста вроде как

Dmitry
15.05.2016
20:01:40
нет, он походу опять локалхост слушает

Just
15.05.2016
20:02:35
а этот IIS какой ip слушал?
и возможно стоит указать так же 8081 порт

Dmitry
15.05.2016
20:03:17
так, я проверил, он слушал 8083, его и указываю

Just
15.05.2016
20:03:54
а ip какой слушал?

Dmitry
15.05.2016
20:05:08
Вместо IP написан поддомен
sub.domain.com on *.8083
sub.domain.com адрес рабочего сайта соотвествтенно

Just
15.05.2016
20:12:56
попробуй settings.bindAddresses = ["::1", "127.0.0.1"];

Dmitry
15.05.2016
20:16:11
так, щас, я тут с поротом засомневался. Тут такое чувство два (как их назвать не знаю) сайта или сущности на разные порты ссылались. Что из них работало, что нет не ясно — текущая страница реагирует на отключение той что на 80 порту весела
а единичка тут что значит?

Just
15.05.2016
20:17:04
совершенно без понятия, увидел этот код на форму и в книге
посмотри кто какой порт слушает, может конфликт правда

Dmitry
15.05.2016
20:20:37
IIS я погасил
еще щас порты явно в настройках открыл фаервола (виндового)

Just
15.05.2016
20:21:30
во, теперь 8080 и слушай, хотя может нужно 8083 почему то

Dmitry
15.05.2016
20:22:31
а ИП то какой? Внешний или внутренний нужено? Я что то никак не продуплю

Just
15.05.2016
20:22:58
да внутренний наверное
127.0.0.1 этот

Google

Dmitry
15.05.2016
20:24:03
м... а как он поймет что это внешние запросы прилетели?

Just
15.05.2016
20:25:37
ну вообще можно адрес отправителя проверять, если нужно знать локальный или внешний запрос, но это и не нужно

Dmitry
15.05.2016
20:31:10
так, ладно, завтра утром продолжу

Just
15.05.2016
20:31:53
так а не пробовал разные порты и 127.0.0.1:
?

Pavel
15.05.2016
21:14:32
0.0.0.0 - значит слушать все доступные айпишники

Eto
15.05.2016
21:18:02
И, если не ошибаюсь, :: означает тоже самое, только для IPv6.

Dmitry
16.05.2016
03:42:04
А если я за прокси сижу?
Порт какой тогда указывать?
Спасибо, вариант с нулями заработал
Я тут читаю про шаблоны. Там есть такой пример:
struct IntTree {
int value;
IntTree[] children;
разве можно внутри объявления создавать сам экземпляр?

Eto
16.05.2016
07:21:16
А почему нет? Помнится в Pascal для этого ещё особый случай есть.
Только с рекурсивными типами и структурами надо поосторожнее быть. Вот такое:
struct A {
A a;
}
Работать не будет.

Dmitry
16.05.2016
07:22:24
А в чем разница?

Eto
16.05.2016
07:22:59
Структура A получается бесконечной вложенности и занимает бесконечное количество памяти.

Dmitry
16.05.2016
07:23:48
а в моем примере разве такого не будет?

Eto
16.05.2016
07:23:58
Нет.

Dmitry
16.05.2016
07:24:18
Объясни плиз не вижу разницы

Eto
16.05.2016
07:24:56
Так всё очень просто. Что из себя массив в D представляет?

Dmitry
16.05.2016
07:25:21
размер и указатель на границу

Google

Eto
16.05.2016
07:25:42
Верно. И именно это хранится в структуре.

Dmitry
16.05.2016
07:27:45
А почему:
struct A {
A a;
}
Будет отъедать то всю память? Как я понимаю создастся А в которой А в которой А в которой А
Тут же тоже самое:
struct IntTree {
int value;
IntTree[] children;
Создастся children в котором value и сам children и тд

Just
16.05.2016
08:15:20

Dmitry
16.05.2016
08:15:46
80
Правда я слабо понимаю как там проброска портов устроена
в нашей конторе. Вроде бы поддомен на отдельном порту висит

Just
16.05.2016
08:17:16


Dmitry
24.05.2016
14:24:30
Блин ребят. Помогите мне архитектуру решения спланировать. Я к сожалению с Шарпом связался, которй еще хуже чем Ди понимаю. На Ди я хоть что-то могу там жесть какая-то.
Короче суть.
Есть 3 БД.
PostgreSQL SQLite FireBrd
SQLite используется как транзитная база данных.
Будет три таблицы. Что должно делать приложение.
Берет все данные из PostgreSQL с FL=10 (не синхронизированно), меняет на FL=11 (данные ожидают синхронизации)
Загружает данные в транзитную БД.
Потом делает выборку по гуидам из транзитной БД и из FireBrd.
Если гуиды совпадают, то значит данные в FireBrd уже есть.
Если гуидов в FireBrd нет, то выгружает данные туда, ставя им новые ID. Данным присваивается FL=12. Типа синхронизированы.
Подразумевается, что гуиды гарантируют уникальность.
Дальше в FireBird из SQL и потом снова в Postgres все выгружается.
Как это сделать. Но не по тупорному, а чтобы оно адекватное было.
Как понимаю нужно как-то организовать унифицированный интерфейс доступа к базам данных, так чтобы я мог указывать взять такие-то значения, вставить туда-то.
И потом в конфиге легко менять порядок.
Как это по уму делается? Как структуру таблиц описать можно?


Eto
25.05.2016
10:07:18
Вопрос в архитектуре кода? Ну, у меня тут тупой ответ: пиши, как получается, потом перепиши нормально. Через время ещё раз перепишешь.

Dmitry
25.05.2016
10:08:16
да именно в архитектуре

0x9d8e
25.05.2016
10:09:44
Почитай Рефакторинг Мартина Фаулера, траблы в архитектуре вообще перестают существовать, ибо архитектура "живёт". А со временем начинаешь сразу нормально делать незадумываясь.

Pavel
25.05.2016
10:10:19
> Как понимаю нужно как-то организовать унифицированный интерфейс доступа к базам данных, так чтобы я мог указывать взять такие-то значения, вставить туда-то.
И потом в конфиге легко менять порядок.
А зачем унифицированный интерфейс и менять порядок? Решай свой конкретный кйес
*кейс
И транзитная база точно нужна? Я бы по максимуму использовал постгрес. Можно в той же базе завести отдельную схему, которая будет выполнять функции sqlite. И получится даже транзакционно

Dmitry
25.05.2016
10:11:48
да нужна. Ее на флешке будут таскать

Pavel
25.05.2016
10:12:03
интересно

Dmitry
25.05.2016
10:12:18
да упоротое решение нужно к сожалению

Pavel
25.05.2016
10:12:28
Репликация почтовыми голубями :D

0x9d8e
25.05.2016
10:12:33
Жесть какая

Dmitry
25.05.2016
10:12:43
проблема в том, чтобы код не упороть, чтобы его моддерживать можно было

Eto
25.05.2016
10:13:18