
Oleg
25.09.2017
13:38:34
для desktop ui это немного странный паттерн
view можно задавать на спец. языке разметки
собственно виджеты как контроллеры выстапают
да и это же паттерн, который реализуется программистом

Google

Oleg
25.09.2017
13:41:32
принудительного его соблюдения там точно нет

Dmitry
25.09.2017
14:19:07
По поводу dlangui уж очень странный подход к компоновке гуи

Oleg
25.09.2017
14:42:09

Dmitry
25.09.2017
14:48:26
ну там система виджетов очень аналогичную у Андроид напоминает
А Андроидная мне не кажется логичной
пока лучшее что я видел это flex-box (который в HTML применяется)

Dmitry
25.09.2017
18:12:07

Dmitry
25.09.2017
18:12:56
ну общее впечатление какое?

Dmitry
25.09.2017
18:18:48
Использовать можно. Когда освоишь, разрабатывать приятно. Результат получается неплохой, и все self-contained, статически линкуется, получается небольшой бинарник без зависимостей от монстров вроде Gtk, qt или .net.

Dmitry
25.09.2017
18:19:39
а можно как-то сделать чтобы оно выглядело более нативно? Как понимаю dlangdide рисует все через щpengl

Dmitry
25.09.2017
18:19:43
Но как обычно в D, хватает мест, где надо самому допиливать напильником.
Не обязательно именно opengl, но рисует оно все само, да.
Поэтому нативных контролов там нет

Google

Dmitry
25.09.2017
18:20:39
как нарисуешь так и будет
(кнопки и прочие элементы можно по своему усмотрению сделать)
По-моему, нативный лук - это миф. Ни на одной платформе нет нормального единого набора нативных контролов, всегда что-то лепят свое поверх небольшой базы.

Dmitry
25.09.2017
18:22:33
а Qt как работает?
просто очень хорошо всегда смотрится

Dmitry
25.09.2017
18:23:11
Qt тоже сам рисует. Просто больше старается походить на системные контролы внешне.
(насколько я представляю, по qt не спец)

Oleg
25.09.2017
18:25:53

Dmitry
25.09.2017
18:38:53
Про прозрачность не знаю, не смотрел. По идее там у каждого drawBuf есть поле alpha. Для текста по дефолту есть TextWidget. Когда виджетов не хватает, можно в drawBuf нужного элемента напрямую нарисовать: http://buggins.github.io/dlangui/ddox/dlangui/graphics/drawbuf/DrawBuf.html
A, текст еще рисуется как font.drawText(buf, ... см. http://buggins.github.io/dlangui/ddox/dlangui/graphics/fonts.html

Oleg
25.09.2017
18:55:02
Особо, конечно не запаривался, тк мне сейчас пока не нужен именно dlangui, на gtk делается так как надо. Но раз такая пьянка (не нашёл библиотек для отрисовки графиков), то почему бы и не добавить

Andrey
26.09.2017
05:07:00
нубский вопрос - как наиболее непринужденно переделать const (char)* в string?

Dmitry
26.09.2017
06:13:46
Два способа - аккуратный но медленный, и быстрый но опасный:
const char* a = "aaa";
auto s = a.to!string;
auto s2 = cast(string) a[0..3];
writeln(s, " ", s2);
Первый сам посчитает длину, создаст новую строчку. Второй будет просто ссылаться на оригинальные данные.

Andrey
26.09.2017
06:16:13
спасибо!

Dmitry
26.09.2017
06:49:16
@thedeemon а не мог бы привести кейс когда это опасно? Я думал в книжку добавить.

Dmitry
26.09.2017
06:50:37
Во-первых, легко ошибиться с длиной. Тут никакой рантайм проверки-то нет, если написать a[0..300], будет строка с мусором, с заездом на другие данные.

Google

Dmitry
26.09.2017
06:51:59
а почему длинну надо указывать? разве без нее каст бы не стработал?

Dmitry
26.09.2017
06:52:49
string это указатель + длина. А const char* - только указатель.
Не зная длины, string не получишь.
Чего-то телеграм мне странное показывает. Мое сообщение с "Во-вторых" пришло?

Maxim
26.09.2017
06:56:15
видимо, не пришло)

Dmitry
26.09.2017
06:56:28
Во-вторых, кто его знает, как память под оригинальный const char* была выделена? Может, ее сейчас освободят, тогда строка будет ссылаться на освобожденную память.

Maxim
26.09.2017
06:58:30
наверное, в книжке это может быть хорошей иллюстрацией к какому-нибудь разделу «почему не нужно пользоваться указателями, когда в этом нет необходимости»)

Dmitry
26.09.2017
07:02:53
А to! тогда как сработает?

Maxim
26.09.2017
07:04:22
надо лезть в std, чтобы сказать точно, но, судя по всему, он пойдет по const char* до первого 0x00 и скопирует в строку, которая находится уже под контролем GC

Dmitry
26.09.2017
07:07:30
именно!

Andrey
26.09.2017
07:31:28
вот еще есть https://dlang.org/phobos/std_string.html#.fromStringz
который кстати второй способ и использует https://github.com/dlang/phobos/blob/master/std/string.d#L216

Oleg
26.09.2017
08:31:27
А не просто указателем на символы

Andrey
26.09.2017
09:08:48

Maxim
26.09.2017
09:10:31
очень мала вероятность, что в указателе кто-то будет хранить не null-terminated string, мне кажется)
но, конечно, всякое может быть

Andrey
26.09.2017
11:00:04
а уже с массивом можно хоть как-то поработать

Maxim
26.09.2017
11:03:27
вообще, конечно, подобное надо делать на границе интерфейса с Си и глубоко в код на D не пускать)

Google

Andrey
26.09.2017
11:04:05
ну это все из С-шных библиотек рога, да
всякие имена файлов и строки из них же

Dmitry
26.09.2017
14:51:17
Вопрос. А вот слово "отлуп" в значении "отказ" оно откуда? Я же его не сам придумал? Есть у него какой-то IT-бэкграунд?

Sergey
26.09.2017
15:06:50
"Я же его не сам придумал?"
не факт.
"Есть у него какой-то IT-бэкграунд?"
чёт сомневаюсь

Денис
26.09.2017
15:07:23

Dmitry
26.09.2017
15:08:18
а от сетевых технологий не могло пойти. просто я от кого-то его из айтишников слышал, но дальше не помню что как.

Sergey
26.09.2017
15:10:33
судя, по тому, что прочитал только что в словаре, этимология связана со столярным ремеслом. А вообще, лично я, до этого, такого слова не слышал
отлупиться - да, даже залупиться)
но не "отлуп" - в смысле отказа

Admin
ERROR: S client not available

Sergey
26.09.2017
15:13:55
напрашивается outloop, который, конечно же, ничего общего (кроме временной характеристики) с отказом не может иметь, какой бы кто ему outloop'у смысл ни придавал.
UPD
- это к тому - откуда могла возникнуть иллюзия взаимосвязи с сетями

Dmitry
26.09.2017
15:50:56
Отлуп - распространенное просторечие, не технический термин. Типа, от ворот поворот.

Dmitry
26.09.2017
16:26:24
Я правильно понимаю, что на Ди в режиме betterC теперь можно писать подобные вещи https://habrahabr.ru/post/196544/

Maxim
26.09.2017
16:33:39
подозреваю, так можно писать на всем, что поддерживает c calling conventions

Stepanos
26.09.2017
16:59:24
dlangide 0.8 релизнулся :)

Pavel
26.09.2017
16:59:59
А под убунтой оно идет?

Stepanos
26.09.2017
17:01:05
почему нет? недавно компилил под убунту 0.7.х какуето с последних

Pavel
26.09.2017
17:01:22
Чет я устал от vscode

Dmitry
26.09.2017
18:45:09
От чего может мереть Linux на слабой VPS? Отваливается все. Помогает только перезагрузка.
root@debian:~# systemctl status nginx.service
Failed to get properties: Connection timed out
везде таймаут

Google

Dmitry
26.09.2017
18:45:42
Debian 8.5 512 памяти
с местом свободным все ок
прчем таймаут у всех сервисов вылазит

Pavel
26.09.2017
21:02:50
Это все равно что спрашивать "почему у человека вдруг может подниматься температура"

Andrey
26.09.2017
21:04:59
https://imgur.com/FSOnaJj
Продвигаюсь с водичкой

Pavel
26.09.2017
21:06:18
?
А 29 fps не маловато ли? ;(

Andrey
26.09.2017
21:13:27
оно фиксировано
там апдейт <40мкс

Pavel
26.09.2017
21:17:07
Помню я на дельфях программил 2д коробочку в которую падает точка и начинает по параболе скакать там, тоже кайфово было :)

Evil
27.09.2017
01:07:51
Вопрос по программированию на невеодом ООП ЯП: есть некий класс Config с элементами, которые загружаются туда из базы данных и складываются в список в виде структуры; при изменении значения элемента требуется синхнуть его в базу; на сколько этично передать коннектор базы в конструктор Config?

NullSanya
27.09.2017
01:18:30
По идее туда надо абстракцию сувать

Evil
27.09.2017
01:22:49
Вот я к этому тоже пришел, пока думал. Или даже делегат из абстракции типа SaveConfigItem

NullSanya
27.09.2017
01:25:25

Ievgenii
27.09.2017
05:58:57
Это не задача конфига
У тебя должен быть механизм получения конфига (из БД, файла, с или без кеша), затем ты или создаёшь объект конфига, или наполняешь принятый объект