@dlangru

Страница 581 из 719
Maxim
29.05.2018
11:41:27
но эту статью уже нельзя, потому что копипаста

Dmitry
29.05.2018
11:45:15
Ну если только с публикации пока снять

Может прокатить

Dmitry
29.05.2018
11:45:48
Обновил описание на ютюбе.

Google
Pavel
29.05.2018
11:53:51
Вечером прочту внимательно. Мне пригодилась бы лайт версия рендеринга - чтобы понять как рендерить ascii графику в консоли

Oleg
29.05.2018
12:01:12
ребят, а как получить из std.socket сколько байт пришло при выходе из select

чтобы прочитать только пришедшие байты

Pavel
29.05.2018
12:04:07
Имхо это работает не так - ты ему даешь свой буфер для чтения туда, а он уже тебе возвращает сколько смог прочитать в этот буфер

Pavel
29.05.2018
12:04:41
Нет не должен

Dmitry
29.05.2018
12:04:57
Занятные комменты про Go https://m.habr.com/post/372199/comments/

Pavel
29.05.2018
12:05:45
вот вроде он ждёт пока весь буфер не заполнится
https://github.com/nexor/socks5d/blob/master/source/socks5d/drivers/standard.d#L106

Oleg
29.05.2018
12:06:52
хм, спасибо

Pavel
29.05.2018
12:10:51
Ну прост)

Oleg
29.05.2018
12:11:00
https://github.com/nexor/socks5d/blob/master/source/socks5d/drivers/standard.d#L106
а после accept сразу можно читать? или не факт, что при соединении будут данные?

Google
Pavel
29.05.2018
12:11:26
Не факт

Dark
29.05.2018
12:11:33
Ну прост)
Ну тогда надо гуглить рейкастинг, скорее

Pavel
29.05.2018
12:12:17
Ну тогда надо гуглить рейкастинг, скорее
Не, кажется это оверкилл. Мне надо просто 2д графику попиксельно, чтобы понять как там буферы делать, как рендерить по маскам и т.д.

Oleg
29.05.2018
12:12:43
https://github.com/nexor/socks5d/blob/master/source/socks5d/drivers/standard.d#L106
и вот ещё вопрос: почему ты в один sset добавляешь сокет и clientSocket и targetSocket, хотя из одного ты принимаешь, а в другой отправляешь?

Pavel
29.05.2018
12:13:08
Там я в обе стороны принимаю и отправляю, это такая прокси-труба

двухсторонняя

Oleg
29.05.2018
12:13:49
всё, понял, спасибо

Dark
29.05.2018
12:14:20
Не, кажется это оверкилл. Мне надо просто 2д графику попиксельно, чтобы понять как там буферы делать, как рендерить по маскам и т.д.
Оверкилл это сама постановка задачи) Да и самое лучшее, что ты сможешь сделать - это рендеринг с GPU ускорением и шейдерами, а это уже точно будет оверкилл

Pavel
29.05.2018
12:14:27
всё, понял, спасибо
А ты перевел сокет в неблокирующий режим? Если нет то как раз в этом случае он и заблокируется пока весь буфер не заполнит, вроде

Kirill
29.05.2018
12:14:51
но эту статью уже нельзя, потому что копипаста
Это авторская статья, а не копипаста. Такое там принимают. Не важно, что уже было опубликовано.

Pavel
29.05.2018
12:15:30
Оверкилл это сама постановка задачи) Да и самое лучшее, что ты сможешь сделать - это рендеринг с GPU ускорением и шейдерами, а это уже точно будет оверкилл
Что за жесть. Я просто допустим хочу нарисовать квадрат посередине. Потом над ним нарисовать кружок красный. Потом этот кружок убрать, и вернуть то что было нарисовано под ним.

Maxim
29.05.2018
12:16:03
подозреваю, там дело не в абстрактной копипасте, а в индексации копипасты поисковиками

Oleg
29.05.2018
12:17:19
А ты перевел сокет в неблокирующий режим? Если нет то как раз в этом случае он и заблокируется пока весь буфер не заполнит, вроде
вот... как раз в блокирующем режиме пробовал давным давно... так если неблокирующий режим, то зачем select тогда? можно же пробовать прочитать что-нибудь в цикле и спать прост каким-нибудь vibe.core.sleep

Pavel
29.05.2018
12:17:51
Лол, я почему-то подумал, что ты про 3D графику) Что касается твоего - при чем тут маски и ко?
Ну надо же где то запомнить, что было нарисовано под кружком. Для этого нужна битовая маска для самого нижнего слоя, чтобы отметить те пиксели которые были поверх перерисованы. Как-то так, это просто мои размышления.

Pavel
29.05.2018
12:18:31
обычно каждый кадр заново рисуется
Но ведь не весь экран перерисовывается? А только те пиксели что изменились

Oleg
29.05.2018
12:19:05
Google
Pavel
29.05.2018
12:22:07
Я вроде не пробовал даже в блокирующем читать )

Oleg
29.05.2018
12:22:15
не осознал сакральный смысл селекта тогда

Pavel
29.05.2018
12:22:35
Ну селект как раз говорит на каких сокетах пришли данные

И ты можешь немного прочитать.

Oleg
29.05.2018
12:22:57
так ведь ты можешь просто попробовать прочитать и всё

не пришло ничего, так и фиг с ним

Pavel
29.05.2018
12:23:25
Попробовать прочитать из каждого из 5000 сокетов весьма накладно

Oleg
29.05.2018
12:23:44
а select вроде ж так себе для 5000

там ж вроде epoll в моде?

Pavel
29.05.2018
12:24:10
Ну он гораздо быстрее чем в цикле попробовать прочитать, все еще

epoll еще быстрее да

Oleg
29.05.2018
12:24:28
так...

а если у меня ситуация где 1 сокет?

мне же пофигу должно быть, так?

пробую прочитать — не пришло ничего и фиг с ним

Pavel
29.05.2018
12:25:37
Ну по идее да,

Хотя нет

все равно надо select

Иначе ты будешь крутиться в бесконечном цикле и проц у тебя будет грузиться на 100%

Google
Pavel
29.05.2018
12:26:09
А селект не грузит вообще

Oleg
29.05.2018
12:26:15
зато блокирует

Pavel
29.05.2018
12:26:47
Ну да, но если у тебя ни на одном сокете не произошло событий, то зачем тебе идти дальше

Oleg
29.05.2018
12:27:11
то что ничего не пришло тоже событие

а если пришло не всё, нужно вычитать всё

я modbus TCP пишу

переписываю точнее

Pavel
29.05.2018
12:28:58
а если пришло не всё, нужно вычитать всё
Тогда надо тебе поэкспериментировать под твои требования

Oleg
29.05.2018
12:29:35
а как вообще системный буфер в этом плане работае? есть какие-то особенности?

там есть что-нибудь вроде .c_cc[VMIN] и .c_cc[VTIME] ?

http://unixwiz.net/techtips/termios-vmin-vtime.html

Ned Ogl
29.05.2018
13:43:56
ребят, помогите сбилдить проект под виндой

запускаю dub build и lld-link.exe не обнаруживает libcmt.lib

она лежит в либах вижака

какую использовать?

т.е. их там несколько

Dmitry
29.05.2018
14:00:58
Там вроде флаг был какой то чтобы выбирать с какой именно линковаться. Если что отпишись о результатах. Интересно знать.

Dark
29.05.2018
15:26:51
lol

Google
Pavel
29.05.2018
15:27:12
интересная штука

но оно же не умеет рисовать один рисунок поверх другого?

Denis
29.05.2018
15:28:16
Pavel
29.05.2018
15:29:51
не понял вопрос

Denis
29.05.2018
15:33:45
не понял вопрос
Что значит рисовать поверх другого?

Два наложенных рисунка это просто рисунок

Pavel
29.05.2018
15:34:39
А потом верхний рисунок удаляется и под ним отрисовывается все что было изначально

Ну как GUI типа

Или чтобы один рисунок можно было подвигать в консоли )

Denis
29.05.2018
15:36:02
Pavel
29.05.2018
15:36:13
Во, что мне и нужно

буферы с масками )

Denis
29.05.2018
15:37:04
Только не велосипедь)

Pavel
29.05.2018
15:37:13
Я ничего такого не нашел на D

Denis
29.05.2018
15:37:20
Это уже есть в dlangui

Pavel
29.05.2018
15:38:01
dlangui умеет консольный интерфейс? O_o

Denis
29.05.2018
15:39:27
dlangui умеет консольный интерфейс? O_o
Он вообще не привязан к движку графическому https://github.com/denizzzka/dlangui_bearlibterminal

https://github.com/denizzzka/formoshlep

Это мои эксперименты

Pavel
29.05.2018
15:42:14
Во, как раз такое

Спасибо поизучаю примеры

Dmitry
29.05.2018
16:55:08
Вопрос. Почему скалярный тип называется скалярным. В чем логика название? Скаляр это же лестница с латыни. Типа намек на то что он строительный блок для более сложных типов?

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