
Pavel
05.03.2017
00:16:37
https://www.imagemagick.org/script/api.php кстати вот на D там что-то нету биндингов :(

Dmitry
05.03.2017
01:14:15
Ой да у dlib код выглядит круто
Надо будет в dcv в issues предложить dlib. А то там задач много похожих возникает

Oleg
05.03.2017
02:06:01
ну скорее наоборот

Google

Oleg
05.03.2017
02:06:07
да и вообще это странная затея)
dlib использует свои типы данных, а dcv свои
при этом в dcv они, насколько я помню, намного более обобщённые
да
в dcv image это sliced из mir
https://github.com/libmir/dcv/blob/master/source/dcv/imgproc/imgmanip.d#L81
resize кстати
да и вообще
в dcv есть imread
https://github.com/libmir/dcv/blob/a2dfdf586958a343f05e02d1e6351af70cbf1da9/source/dcv/io/image.d#L99
но, как понимаю, только png умеет
хотя нет, используется imageformats, она много умеет читать

Dmitry
05.03.2017
05:20:25
М... щас до компа доберусь гляну умеет ли dcv ресайз

Google

Oleg
05.03.2017
09:29:54
Ну так на unittest resize'а одна из ссылок

Dmitry
05.03.2017
14:17:26
Угу, щас посмотрю. Кстати в Volta идею шаблонов хотят упростить и сделать чтобы их можно было записывать в таком виде:
struct LinkedDoubleList(T, Y)
{
data1: T;
data2: Y;
next: LinkedDoubleList*;
}

Pavel
05.03.2017
14:19:01
Не понял в каком виде?

Dmitry
05.03.2017
14:19:36
Как я понимаю тупо передаются (X, Y, Z)
а не foo(T)(T data)

Oleg
05.03.2017
15:12:07
Вызов метода и структура вроде разное, не?

Pavel
05.03.2017
15:12:45
Я тоже не понял как это связано с шаблонами

Dmitry
05.03.2017
15:14:14
значит я не так понял

Мерлин
05.03.2017
15:50:27
D 2.073.2 Beta
https://dlang.org/changelog/2.073.2.html#bugfix-list

Dmitry
06.03.2017
08:12:46
А как бысть с такой ошибкой?
"router.d(32,30): Error: @safe function 'router.MyRouter.getNews' cannot call @system function 'database.Database.getNews'"
С одной стороны компилятор хочет чтобы роутинг был помечен как @safe с другой не может образение к БД сделать т.к. там атрибут другой
О блин, в первый раз такое вижу:

Oleg
06.03.2017
09:19:33
если ты хочешь из @safe кода вызывать @system ты должен 10 раз проверить системный код и пометить его как @trusted

Dmitry
06.03.2017
09:20:16
простоблема в том, что vibed 0.8 хочет чтобы роутинг был помечен как @safe

Oleg
06.03.2017
09:30:28
нет, проблема как раз такая, которая в ошибке написана
@safe код не может вызывать @system
прям вот ровно такая)
а путей её решения 2
ты можешь сделать код либо @safe, либо @trusted

Google

Oleg
06.03.2017
09:32:24
но @safe ограничивает код, а @trusted нет

Dmitry
06.03.2017
09:33:54
просто роутинг @trusted пометить и все?

Maxim
06.03.2017
09:40:13
ну или обращение к БД вынести в маленький @trusted кусок кода, так будет кошернее)

Олег
06.03.2017
09:50:17
можно использовать примерно следующую конструкцию для вызова @trusted куска внутри @safe функции,
обернув в лямбду
() @trusted {
....
} ();

Dmitry
06.03.2017
09:56:12
в первый раз вижу, чтобы код можно было оборачивать скобками () в начале и конце...

Maxim
06.03.2017
09:56:48
это синтаксис делегатов
объявляется delegate и тут же вызывается)

Олег
06.03.2017
09:57:19
вторые скобки это вызов делегата

Dmitry
07.03.2017
11:39:51
Для D есть какой-то простой аналог следующей Питоновской записи?
if string[0:2] == "##"?
Просто с одним символом вопросов нет. Оно работает, а вот как массив проверить...

Alexander
07.03.2017
11:41:34
if (str[0..2] == "##")

Dmitry
07.03.2017
11:43:26
Я пробовал так. Он ругается:
incompatible types for ((line[2]) != ("#")): 'immutable(char)' and 'string'
а хотя момент

Dmitry
07.03.2017
11:44:04
да все работает)
Я с этими одиночными и двойными кавычками ошабся
Кстати, нашел очень забавную функцию:
writeln(succ("1")); // "2"
writeln(succ("9")); // "10"
writeln(succ("999")); // "1000"
writeln(succ("zz99")); // "aaa00"

Pavel
07.03.2017
12:23:42
Прямо как в пхп )

Мерлин
07.03.2017
20:47:35
[last news]
Goodbye Rust, and Hello, D (https://z0ltan.wordpress.com/2017/02/21/goodbye-rust-and-hello-d/)

Pavel
07.03.2017
20:53:25
yeah ?

qwe
08.03.2017
04:24:42
я не могу понять у D появились механизмы для владения (ownership) и заимствования (borrowing)? Я не могу информации по этому, но в то же время меня смущает сравнение Rust и D, описанное в блоге

Dmitry
08.03.2017
06:19:05
Я в устройстве памяти очень плохо шарю, но вроде как нет

Google

Maxim
08.03.2017
07:35:17
владения и заимствования в расте, я так понимаю, необходимы исключительно из-за отстутствия сборки мусора, в D контролем памяти занимается исключительно сборщик мусора, если обратного не захочит программист
поэтому жесткого контроля памяти со стороны программиста не требуется — память, зарезервированная под некий объект, освободится сборщиком мусора тогда, когда в программе этот объект перестанет использоваться

Dmitry
08.03.2017
07:37:53
Кстати, samsung tizen к осени оживят, так что возможно Ди для разработки под него покатит хорошо

Maxim
08.03.2017
07:40:59
а под tizen что-то на D разрабатывали?)

Dmitry
08.03.2017
07:53:19
Пока что нет, но туда Ди проще вкорячить будет чем под ту же iOS

Maxim
08.03.2017
07:55:07
хорошо бы было заручиться официальной поддержкой, тогда язык начал бы делать семимильные шаги)

Ksiw
08.03.2017
08:10:59
Вот что верно, то верно

Grigirii
09.03.2017
09:03:12

qwe
09.03.2017
09:24:48
Вот я его читал и поэтому не могу понять есть или нет. Вроде статус draft, но я где-то видел, что он уже реализован. Поэтому и задал вопрос

Admin
ERROR: S client not available

Maxim
09.03.2017
09:28:07
Разные концепции, разные подходы к решению одной и той же проблемы, зачем из одного языка что-то тянуть в другой?)

Grigirii
09.03.2017
09:29:30
dip1000 реализован, но я не видел этого ни в одном анонсе
он не решает проблему безопасности на 100%, он всего лишь закрывает класс ошибок, вроде возврата указателя на локальную переменную. 100% безопасным без GC язык всё ещё не может быть.

Max
09.03.2017
09:31:43
При наличии указателей он таковым вообще быть не может

Grigirii
09.03.2017
09:32:31
при наличии адресной арифметики. Сами указатели могут быть безопасными

Max
09.03.2017
09:34:39
Туда всегда можно засунуть нулл либо уже убитый адрес. И проверять на уровне системы типов их ты заставить не можешь

Grigirii
09.03.2017
09:37:12
rust с этим отлично справляется. с повисшими указателями даже dip100 справляется. а null как раз решается системой типов

Max
09.03.2017
09:38:14
Там указатели только в ансейве есть, который вообще ничего не гарантирует. У указателей вся суть и вообще источник всех ошибок в том, что туда засунуть можно что угодно

Dmytro
09.03.2017
09:38:49
Так не засовывайте:)

Google

Grigirii
09.03.2017
09:38:52
мы видимо разные вещи понимаем под указателями, в этом и непонимаение
там есть как минимум ссылки, которые по всей семантике - указатели
и они безопасны

qwe
09.03.2017
09:40:45

Grigirii
09.03.2017
09:41:13
они называются reference, то есть ссылка

qwe
09.03.2017
09:41:19

Max
09.03.2017
09:42:45

Grigirii
09.03.2017
09:43:32
dip1000 всё ещё опционален, он не включен по умолчанию. но уже можно передать -dip1000 компилеру и попробовать. скорей всего недопилили ещё что-то, поэтому и не включили

qwe
09.03.2017
09:44:36

Max
09.03.2017
09:47:17

qwe
09.03.2017
09:51:38

Grigirii
09.03.2017
09:52:16
ну вот D, например, в safe коде никогда не давал засовывать инт в указатель. Он от этого больше не указатель?

Max
09.03.2017
09:54:42
>Memory-safe code cannot use certain language features, such as:
>Modification of pointer values.
>Taking the address of a local variable or function parameter.
Там вообще своя атмосфера, и именно тут непонятно зачем эти указатели нужны — ссылки при таком раскладе покрывают все нужды

qwe
09.03.2017
10:02:29

Dmytro
09.03.2017
10:04:20
В чем будут отличия допустим если в D поумолчанию все будет @safe?

qwe
09.03.2017
10:37:17
Отличия от чего?

Pavel
09.03.2017
10:55:06

Dmytro
09.03.2017
10:55:40
Отличия от раста

qwe
09.03.2017
11:31:53

Dmitry
09.03.2017
13:46:22
Чnо-то не пойму. В документации написано:
\s Matches whitespace, same as \p{White_Space}.
Но в коде:
`auto h2 = regex("
[a-z]*\n[\s\S]*?\n
");`
я получаю ошибку:
Error: undefined escape sequence \s