@dlangru

Страница 11 из 719
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 некое хранилище в памяти

пишем в него, читаем из него, а там в воне "синхронизируем"

*в фоне

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

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
ну втюшка переключается в завимости от ответа сервера
Т.е. загрузка страницы просто пару секунд висит? Или у тебя какое-то динамическое решение с ajax?

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

Правда я слабо понимаю как там проброска портов устроена

в нашей конторе. Вроде бы поддомен на отдельном порту висит

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
проблема в том, чтобы код не упороть, чтобы его моддерживать можно было

Страница 11 из 719