
Dmitry
02.05.2018
15:40:01
может заработает

Pavel
02.05.2018
15:40:12
wut? Ассерты и сделаны для всего кода а не для юнит тестов только
Их можно свободно расставлять где угодно

Google

Pavel
02.05.2018
15:43:17
Надо тоже туда докерфайл зарелизить чтобы все могли собирать быстренько

Dmitry
02.05.2018
15:43:39
а как дабу указать что LDC надо юзать?
а кажись вспомнил

Dmitry
02.05.2018
15:45:15
--compiler=ldc2

Dmitry
02.05.2018
15:47:33
(ldc-1.9.0)root@dlang:/apps/socks5d# ./socks5d --config=config.sdl
2018-05-02T17:47:12.339:app.d:main:26 Starting socks5d server v. 0.0.4-dev
2018-05-02T17:47:12.340:config.d:loadConfig:14 Parsing config file config.sdl
Illegal instruction
(ldc-1.9.0)root@dlang:/apps/socks5d# cat config.sdl
server {
listen "1.2.3.4" port=1488
auth login="dlang" password="dlang"
}

Pavel
02.05.2018
15:48:00
Как же не проще, когда можно собрать программу за пару команд

Denis
02.05.2018
15:48:36

Pavel
02.05.2018
15:48:41
И потом скопировать получившийся бинарник к себе. И при этом хост система не будет засрана всякими компиляторами и сборочными пакетами

Dmitry
02.05.2018
15:49:52
Как по мне докер хорош для трудноподдерживаемого говна гвоздями прибитого к окружению. Ди в этом плане от всех этих костылей избавиться
Короче не работает упорно — не нравится ему что-то в конфиге

Pavel
02.05.2018
15:50:16
server {
listen "1.2.3.4" port=1488
auth login="dlang" password="dlang"
}
замени на auth "dlang" password="dlang"

Google

Pavel
02.05.2018
15:50:44
login= нет такого )

Dmitry
02.05.2018
15:53:19
server {
listen "1.2.3.4" port=1488
auth="dlang" password="dlang"
}
sdlang.exception.ParseException@/root/.dub/packages/sdlang-d-0.10.2/sdlang-d/src/sdlang/parser.d(257): config.sdl(3:9): Error: Found attribute, but no tag nam
e. If you intended an anonymous tag, you must have at least one value before any attributes.

Pavel
02.05.2018
15:53:50
Зачем у тебя = после auth
У меня же нет в строчке выше

Dmitry
02.05.2018
15:57:10
Так погоди. В примере у тебя:
server {
listen "127.0.0.1" port=1081
auth login="socks5d" password="socks5d"
}
Я делаю:
server {
listen "1.2.3.4" port=1488
auth login="dlang" password="dlang"
}
знаки равенства же есть, есть

Pavel
02.05.2018
16:01:39
Хм да, неправильно в примере, сейчас сделаю исправление

Denis
02.05.2018
16:20:14
std.algorithm.iteration: uniq работает для строк?
что-то оно у меня не все неуникальные отфильтровывает почему-то
похоже сравнивает поинтеры
из
["field name", "field name", "another field", "field
name"]
делает
["field name", "another field", "field name"]

Dark
02.05.2018
16:25:09
А если отсортировать?

Denis
02.05.2018
16:25:29
не должно влиять по идее
https://run.dlang.io/is/2X7ysR

Dmitry
02.05.2018
16:28:01
uniq только unique consecutive elements обрабатывает
только подряд идущие повторы убирает

Dark
02.05.2018
16:28:38
По хорошему, нужен Set

Denis
02.05.2018
16:29:28
ок разобрались
спасибо

Google

Dark
02.05.2018
16:37:52
А как там называется "место, которого хватит для всех перечисленных типов"?

Pavel
02.05.2018
16:38:17
union

Dark
02.05.2018
16:41:26
Точно
Еще один вопрос: а в D есть шаблон, который позволяет бинарно распарсить числов структуру? Типо 1ый бит - bool field1, 2ой - bool field2 и т.д.

Dmitry
02.05.2018
17:35:16
Давно хотел спросить, Почему во всех фреймворках мы принимаем И запрос И ответ т.е.
void handleRequest(HTTPServerRequest req, HTTPServerResponse res) { }
Почему не?
`HTTPServerResponse handleRequest(HTTPServerRequest req)``

Denis
02.05.2018
17:35:44

Dark
02.05.2018
17:36:31

Denis
02.05.2018
17:36:37

Dark
02.05.2018
17:39:23

Denis
02.05.2018
17:39:36
Тогда точнее опиши свою хотелку

Dark
02.05.2018
17:41:10

Denis
02.05.2018
17:41:58

Dark
02.05.2018
17:43:16

Denis
02.05.2018
17:44:19
протупил
ничто не мешает засунуть миксин в юнион

Dark
02.05.2018
17:44:52

Denis
02.05.2018
17:45:03
https://run.dlang.io/is/p6KUTV

Google

Denis
02.05.2018
17:45:05
ну вот

Dark
02.05.2018
17:47:50
Замечательно

Denis
02.05.2018
17:49:24
https://geektimes.com/post/300547/ вспомнилаи сегодня Дракон, и вот он опять
долбанутым нет покоя

Pavel
02.05.2018
18:04:53
В упоминавшемся уже unreal engine визуальное программирование всё ещё используется для несложных задач.
Коллективное дежавю. Только зашел на хабр и там https://habr.com/post/354444/

Pavel
02.05.2018
18:26:33
Что ни говори а визуализация нужная тема

Dmitry
02.05.2018
19:04:50
А кто нибудь может показать пример Dependency Injection на D?
Вообще кому либо этот паттерн пригождался в реальных проектах?

Denis
02.05.2018
19:05:37

Admin
ERROR: S client not available

Dmitry
02.05.2018
19:05:50
Да просто сел про паттерны читать

Pavel
02.05.2018
19:11:15
Без DI просто смерть)

Ievgenii
02.05.2018
19:12:00

Dmitry
02.05.2018
19:16:22
Очень даже
А можешь пример привести очень простой какой нибудь?

Ievgenii
02.05.2018
19:16:41
Смотри
Мы реализовывали драйвера логера.
Сам механизм лога был простой до безумия
Типа write
С тегами и самим сообщением

Google

Ievgenii
02.05.2018
19:18:14
Но то, куда логировать, решал сам драйвер
Сами же драйвера регистрировались в DI контейнере
И любая зависимость нашего проекта, без изменения строчки кода самого приложения, могла добавить кастомный логер
Второй пример:

Dmitry
02.05.2018
19:19:44
А можешь хотя бы один кейс на Ди показать. Ну там с foo и bar
чтобы понять как это все конструируется


Ievgenii
02.05.2018
19:20:06
Это было не на Ди
Но если бы я делал свой DI контейнер, то он бы выглядит что-то типа такого:
interface Gt { void test(int g);}
D.i!Gt().test(7);
Это если ты работаешь с глобальным DI контейнером
Можно их иметь просто массу и в каждом иметь свои зависимости
Идея заключается в том, чтобы не создавать необходимые тебе зависимости внутри объекта, а получать их снаружи
Но так, как твой объект может расширяться и со временем требовать все новые и новые зависимости, чтобы код не переписывать, или дописывать, ты можешь передавать в объект не сами зависимости, а DI контейнер
Который может наполняться непосредственно кодом, или же, каким-то инициируемым конфигом
Скажем у тебя есть объект МАШИНА
И ты хочешь открыть дверь
Но дверь может быть во многих состояниях, разных конструкций и т.д.
Ты не знаешь как с ней работать
Ты передаешь в свой объект МАШИНА DI контейнер, который имеет объект, что имплементирует интерфейс работы с дверью, а ты знаешь только о интерфейсе
И в любой момент ты имеешь возможность подменить эту имплиментацию.
Также ты имеешь возможность подменить эту имплиментацию не только в одном объекте МАШИНА, а сразу во всех!
Или наоборот только в одном или нескольких объектах