
Denis
19.05.2017
07:48:34
ZFS через такие потоки принимает и отправляет огромные бинарные образы слепков ФС и всё норм
значит естьспособ

Andrey
19.05.2017
07:49:04
нужен значит аналог сискола read, не знаю, в D где это) может rawRead какой нибудь

Denis
19.05.2017
07:49:22
он тоже блокируется

Google

Denis
19.05.2017
07:49:34
как и byChunk()

Andrey
19.05.2017
07:49:55
ну а пайп твой закрывается? если нет, то чтение заблокируется. если в неблокирующий режим не перевести

Denis
19.05.2017
07:50:16
stdin это файл же, разве у файлов есть неблокирующий режим?
fcntl(d, F_SETFL, O_NONBLOCK);

Andrey
19.05.2017
07:51:10
в юниксе это все дескрипторы, что сокет, что пайп

Denis
19.05.2017
07:51:11
вроде вот такое есть действительно
а в ди - нет, File и Socket это разное

Andrey
19.05.2017
07:51:37
ну это обертки.
вот так попробуй
import core.sys.posix.fcntl;
import std.file;
int x = fcntl(stdin.fileno, F_GETFL, 0);
if (x == -1) {
writeln("fcntl error");
return 1;
}
x |= O_NONBLOCK;
int r = fcntl(stdin.fileno, F_SETFL, x);
if (r == -1)
writeln("fcntl set error");
или погуглить) не может быть, что б нельзя

Denis
19.05.2017
07:56:56
Есть, это оно!
Это надо добавить в File если оно ещё не
судя по гитхабу фобоса ничего такого для файлов нету

Google

Oleg
19.05.2017
08:12:22

qwerty
19.05.2017
08:14:25
Да
Да я уже проверил. Тоже получилось 4 гб. Можно использовать theAllocator безболезненно. Там есть методы для инстанциирования как объекта, так и массива. И даже массива массивов
хотя ты и сам знаешь неверняка

Oleg
19.05.2017
08:15:13
@ahdenchik если тебе нужен неблокирующий ввод/вывод, то можно тут посмотреть https://github.com/deviator/serialport/blob/master/source/serialport/port.d#L533

Denis
19.05.2017
08:15:33
а stdin уже открыт же сразу
всё, уже запилил:
https://github.com/denizzzka/xymodem/blob/master/integration_test/stdio_sender.d#L47

Oleg
19.05.2017
08:15:57
Можно закрыть, вроде
Хотя хз

Denis
19.05.2017
08:16:05
щас наверну сверху тестилку

Oleg
19.05.2017
08:16:27

Denis
19.05.2017
08:17:58
Погрепал фобос - нету там для открытых файлов возможности опции ставить такие. Надо допиливать

Oleg
19.05.2017
08:18:43
Ну то что я скинул эт чисто posix и winapi
Но они тоже в Фобосе есть

Denis
19.05.2017
08:20:47
Хочется враппер
Soket.nonblocking же есть
Надо для File такое же запилить
Пусть оно будет только для POSIX

Dmitry
19.05.2017
08:55:57
А правильно я понимаю, что конструкция:
Flag!"some string" flag1;
нужна для того, чтобы у флага было название для того, чтобы по нему проще было ориентироваться что он делает?

Maxim
19.05.2017
08:56:18
ога

Google

Andrey
19.05.2017
09:04:50

Denis
19.05.2017
09:06:05
при любом EOF повторите позже по моей логике в софтине
https://github.com/denizzzka/xymodem/blob/master/integration_test/stdio_sender.d#L37

Dmitry
19.05.2017
09:22:26
м... если у меня двум классам нужно одно и тоже соединение с БД то тут только синглтоно класс соединения с БД делать? (вроде уже спрашивал)

Ievgenii
19.05.2017
09:23:13
Синглтон не хороший подход для этого

Dmitry
19.05.2017
09:24:22
а если вот так сделать:
просто объявление всего вверх перенести

Ievgenii
19.05.2017
09:27:18
Сделай сервис локатор и в него помести свой драйвер. Зарегистрируй его как единый объект (аналог синглтона)

Dmitry
19.05.2017
09:27:48
уф... я про такое в первый раз слышу...

Ievgenii
19.05.2017
09:28:37
http://sergeyteplyakov.blogspot.com/2013/03/di-service-locator.html

Denis
19.05.2017
09:29:12

Ievgenii
19.05.2017
09:29:16
https://en.wikipedia.org/wiki/Service_locator_pattern

Denis
19.05.2017
09:29:50
очередь запросов в базу и 1 соединение
и усё

Ievgenii
19.05.2017
09:30:42
Он это и хочет сделать
Что-то подобное

Dmitry
19.05.2017
09:30:49
Ievgenii спасибо
@ahdenchik а на сколько правильно создавать новые экземпляры подключений для каждого класса. Просто я в толк не возьму. Мне часть логики работы с БД нужно в отдельный файл вынести. но там у меня разные connections не будут видны

Denis
19.05.2017
09:31:22
очередь запросов в базу и всего 1 соединение, используемое по очереди

Ievgenii
19.05.2017
09:31:44

Google

Denis
19.05.2017
09:31:49
А не одно расшаренное физическое соединение между классами

Ievgenii
19.05.2017
09:31:50
Правильно делать пулКоннектов

Denis
19.05.2017
09:32:02
Зависит от типа базы, мы это не обсуждали)

Ievgenii
19.05.2017
09:32:29

Denis
19.05.2017
09:32:35
А ну ок тады

Ievgenii
19.05.2017
09:32:43
А вообще юзай Монго
И перфоменс и простота...

Denis
19.05.2017
09:32:57
и отсутствие реляций

Admin
ERROR: S client not available

Denis
19.05.2017
09:33:04
https://github.com/denizzzka/vibe.d.db.postgresql вот пример PostgreSQL с пулом
В самом vibe.d есть пул, но код такой мутный, что написал свой

Ievgenii
19.05.2017
09:35:57

Denis
19.05.2017
09:36:41
SQL vs NoSQL thread go?

Ievgenii
19.05.2017
09:37:13
Не понял

Denis
19.05.2017
09:37:52
http://stackoverflow.com/questions/5186707/why-is-mongodb-so-fast
MongoDB isn't like a traditional relational database. It's noSQL or document based, it provides weak consistency guarantees, and it doesn't have to guarantee consistency like SQL.

Ievgenii
19.05.2017
09:38:36
и?

Denis
19.05.2017
09:38:59
Кто советовал юзать монгу? А если челвоеку надо ACID?
Вот и изложи сам свои "за" неё

Dmitry
19.05.2017
09:39:32
У меня две БД. MySQL и PostgreSQL. >pd. mysql-native и dbc (натив для PG)

Google

Ievgenii
19.05.2017
09:40:18
Ну если ему нужны транзакции, то да
Монго не подойдет
Но в подавляющем большенстве - они не нужны

Denis
19.05.2017
09:42:01
По объёму данных считаем или по количеству инсталляций? )
В микрозадачах чаще всего транзакции нужны. А вот если велосипед делать или хайлоад то уже нет.

Ievgenii
19.05.2017
09:43:41

Denis
19.05.2017
09:43:58
Конечно. Всякие там бухгалтерии, магазинчики и прочие.

Ievgenii
19.05.2017
09:44:17
И это микрозадачи?

Denis
19.05.2017
09:44:20
Конечно.

Ievgenii
19.05.2017
09:44:25
Как скажешь

Denis
19.05.2017
09:44:36
ПОдсчёт деталей на заводе или типа того
А вот велосипеды (очередные инет-форумы) или большие сайты - там да, там монги.
Так вот чего больше - больших сайтов или микрозадачек по автоматизации предприятий?

Ievgenii
19.05.2017
09:47:00
Как скажешь

Dmitry
19.05.2017
09:48:28
так, а что мне мешает соединение поднимать внутри static this() {}
чем не синглтон будет?

Ievgenii
19.05.2017
09:52:22
Ты можешь это сделать и синглтоном
Но я бы тебе это не советовал

Denis
19.05.2017
09:52:55
Так что, какая база там?

Maxim
19.05.2017
09:55:22
ну вообще, тут напрашивается какой-то менеджер соединений, можно через ambient context сделать)

Dmitry
19.05.2017
09:56:13
static this() это аналог синглтона будет? или в чем разница его и ... ?