@dlangru

Страница 176 из 719
qwerty
22.05.2017
15:07:44
вопрос в том, стоит делать или нет) Как мне видится, это упрощает понимание того, что должно прийти

Andrey
22.05.2017
15:08:47
как то странно) в каждое объявление вставлять проверки на наличие всего, чего вызывается...)

Oleg
22.05.2017
15:09:05
если ты делаешь перегрузку, и тебе нужно один метод вызвать для одного типа, а другой для другого, то тебе нужно точно указать как вести себя с опр типом

Google
qwerty
22.05.2017
15:09:08
Иногда можно делать, чтобы показать пользователю шаблона чего в него передавать вообще
да, я это и хотел сказать. Кроме этого есть еще какие-то вещи?

Oleg
22.05.2017
15:10:08
void foo(T)(T a) if(is(typeof(a.len) == size_t)) {} void foo(T)(T a) if(is(typeof(a.count) == size_t)) {}

типа как-то так

qwerty
22.05.2017
15:10:21
о!

вот это прикольно

Dmitry
23.05.2017
07:42:35
А никто термин: "cherry-picking" не слышал? Как его понять? пример фразы: "intuitive interface to cherry-picking"

Denis
23.05.2017
07:47:12
а, я в курсе. ща

это про git и подобные.

когда надо один коммит перетащить в другую ветку его "черрипикают" в ту другую ветку

именно не всю историю, а один конкретный

то есть, это не merge

Dmitry
23.05.2017
07:48:25
а в git это сложно?

Denis
23.05.2017
07:48:30
нет

Google
Denis
23.05.2017
07:48:50
вообще, стараюсь такого избегать - толкьо мёрджу

Dmitry
23.05.2017
07:51:30
Кстати, а кто как перебирает возможные сочетания ключей командной строки? Получается вариант только кучу if, else if городить? Или как-то получше можно?

Denis
23.05.2017
07:51:43
it depends

)

Раз уж оффтопик, какой протокол выбрать для умного дома в 2k17 году?

проводной

Dmitry
23.05.2017
07:54:42
это да, только сочетаний ключей может быть куча

Max
23.05.2017
07:55:23
Он как раз для кучи и сделан, там всё одной ф-ей описывается.

Eto
23.05.2017
07:55:34
Напиши на ООП с наследованием. Потом плюнь и перепиши на if-else. :)

Dmitry
23.05.2017
07:56:23
просто вдруг есть более красивый\надежный вариант перебора их комбинаций. А то у меня в комбинации из 5 ключей уже ошибки стали всплывать, когда не один ключ указан, другой нет итд

Eto
23.05.2017
08:01:51
просто вдруг есть более красивый\надежный вариант перебора их комбинаций. А то у меня в комбинации из 5 ключей уже ошибки стали всплывать, когда не один ключ указан, другой нет итд
Создавай состояние. По сути те же ключи, только проще работать в сложных моментах. Например, когда наличие 2х ключей означает специфичную вещь. auto stuff = key_a && key_b; Вроде того. В общем, всё как всегда — чем проще, тем лучше.

Dmitry
23.05.2017
08:02:13
@sigod спасибо, хорошая идея

Denis
23.05.2017
08:02:21
Modbus + CAN может, параллельно... У модбаса что плохо это мастер нужен, не всегда это удобно, но и без него никак - вся промэлектроника на нём

Oleg
23.05.2017
08:05:33
на самом деле лучше ethernet

Denis
23.05.2017
08:05:47
он дороже - свичи дорого стоят

Oleg
23.05.2017
08:06:30
зато максимум универсальности

Denis
23.05.2017
08:06:33
плюс, всякие клапаны-задвижки им не управляются

Dmitry
23.05.2017
08:32:40
А в чем смысл static int ?

Google
Dmitry
23.05.2017
08:33:33
В доке нашел "Это просто означает, что после того, как переменная была инициализирована, она остается в памяти до конца программы."

А если она в классе объявлена то? Пока жив класс?

Oleg
23.05.2017
08:34:21
это как глобальная переменная, только не глобальная)))

Dmitry
23.05.2017
08:34:21
И что будет если объявитть просто int в классе?

Oleg
23.05.2017
08:34:53
в классе это будет статическим полем

к нему можно будет обратиться через имя класса

вне зависимости от существования экземпляров классов

Dmitry
23.05.2017
08:35:46
writeln(MyClass.x) типа так?

Oleg
23.05.2017
08:37:05
можно например счётчик сделать class A { static size_t count; size_t id; this() { id = count++; } } void main() { auto a = new A; writeln(A.count, " ", a.id); auto b = new A; writeln(A.count, " ", b.id); } }

count будет расти при каждом создании экземпляров

Dmitry
23.05.2017
09:00:01
м... а можно пример реального кейса где статический конструктор полезен?

Dmitry
23.05.2017
09:01:03
Допустим если я к БД подключаюсь. Может имеет смысл его в виде статического конструктора организовать? Или нет?

Dmitry
23.05.2017
09:14:53
ок, а кейс можно какой-то?

Denis
23.05.2017
09:15:41
запуск из static this() модуля

какие-то предопределённые данные например забить в него, которые во время компиляции не удалось поместить (большой объём, например)

а у статических переменных ноги растут из ассемблера. оcтавил в памяти значение - вот она статическая переменная)

При следующем вызове функции это значение там же и будет лежать

Всё просто, короч

Google
Denis
23.05.2017
09:20:07
и coverage

Andrey
23.05.2017
09:20:46
ок, а кейс можно какой-то?
ну вот например из фобоса https://github.com/dlang/phobos/blob/master/std/parallelism.d#L119

Pavel
23.05.2017
09:30:44
То есть там код написан из предположения что количество процессоров не меняется в процессе работы программы :)

Denis
23.05.2017
09:36:10
)

Andrey
23.05.2017
09:44:04
тем, у кого оно меняется, уже не до таких тонкостей)

Denis
23.05.2017
10:03:38
/me видел такие компы есличо

Сейчас пришли к тому что выгоднее резервировать целиком сервер, а не проц в нём

Oleg
23.05.2017
13:47:15
кто-нибудь знает статистику? квартили (медиана в частности) можно расчитать с помощью InputRange?

не хочется выделять память под массив, но чёт сейчас не вижу выхода

Admin
ERROR: S client not available

Денис
23.05.2017
13:52:47
не хочется выделять память под массив, но чёт сейчас не вижу выхода
Хз. Вообще есть простые линейные рекурсивные алгоритмы поиска k-го значения. А как известно, всё рекурсивное - можно сделать итеративно. Итеративно с линейной сложностью - выглядит как возможность успеха.

Oleg
23.05.2017
13:54:12
> А как известно, всё рекурсивное - можно сделать итеративно. Итеративно с линейной сложностью - выглядит как возможность успеха. Хорошее предположение, но проверять я его, конечно, не буду

тк вики даёт алгоритмы только на готовых массивах

типа ты по нему можешь гулять сколько хочешь

это не случай InputRange

и для данной ситуации видимо проще выбрать в массив, отсортировать и взять что нужно

qwerty
23.05.2017
14:22:42
@deviator без сортировки точно не взять, потому что основа формул порядковый номер элемента

Oleg
23.05.2017
14:23:12
ну тогда я спокоен)

Google
Oleg
23.05.2017
14:23:22
и мне не стыдно будет, что я память выделяю)

qwerty
23.05.2017
14:24:04
?

Денис
23.05.2017
14:41:26
Кажется можно без выделения за линейное время

Исходный ряд состоит из 3 частей

Числа меньше медианы, медиана, числа больше медианы

Соответственно храним 3 числа. Значение медианы, максимальное числа чисел меньше её, минимальное число чисел больше неё.

Денис
23.05.2017
14:43:18
как получить значение медианы без сортировки?
Поддерживать определенный инвариант по мере движения по массиву.

Поддерживать определенный инвариант по мере движения по массиву.
Это не точно, сейчас порасписываю на листочке тесты.

qwerty
23.05.2017
14:44:37
Я тоже

хотя нет

то есть надо двигаться по массиву, но как понять что текущий элемент — медиана?

тут вот только что нашел https://stackoverflow.com/a/33965272

@deviator ты уверен, что тебе настолько нужна память? Скорость алгоритма сильно упадет

@andrushaTheSlayer ты подобное имел ввиду?

@andrushaTheSlayer крутой ник))

Денис
23.05.2017
15:00:15
@andrushaTheSlayer ты подобное имел ввиду?
Вроде идея та же, только я пытался как-то нерандомно её реализовать. Ну вечером тогда потуплю над этим.

А так правда, если не критично, то я бы выделил массив, зато код понятный будет. Да и 640 килобайт хватит всем!

Denis
23.05.2017
15:12:02
А потом у них видеоплеер 10 гигов жрёт)

и прочая прочая

qwerty
23.05.2017
16:17:48
ммм

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