
Stanislav
26.03.2018
17:42:28
кароче правильный вариант - это сделать 2 слушающих сокета) просто надо немного допилить eventcore и vibe-core
почему code.dlang.org все время лежит когда я хочу обновить что-нибудь?

Pavel
26.03.2018
17:47:48
Так он впринципе лежит каждые 5 минут на 5 минут )
Может это такой easter egg, не знаю.

Google

Stanislav
26.03.2018
17:48:08
о, запустился
видать его по крону рестартуют каждые 10 минут, а запускается он 5 минут

Pavel
26.03.2018
17:52:02
И вот эта вот конструкция - от core контрибуторов языка. А потом они еще смеют ругать докер и пшп)

Stanislav
26.03.2018
17:57:43
ну наконец-то
zstas$ netstat -anv | grep 179
tcp46 0 0 *.179 *.* LISTEN 131072 131072 31322 0
zstas$ netstat -anv | grep 179
tcp4 0 0 *.179 *.* LISTEN 131072 131072 31383 0
tcp6 0 0 *.179 *.* LISTEN 131072 131072 31383 0
до и после
вот думаю оформить пр
или это нафиг не надо

Pavel
26.03.2018
18:01:04
оформи конечно
Как это не надо? Тебе безразлична судьба вайба?)

Dark
26.03.2018
18:01:26
Конечно

Stanislav
26.03.2018
18:03:33
а какая практика вообще обычно? сначала issue завести и там все расписать или сразу пулять pr с описанием?
честно говоря ни разу в опенсорс не отправлял ничего

Denis
26.03.2018
18:03:58
без разницы

Vitalii
27.03.2018
06:24:07
А можно ли в D отсортировать два массива без выделения дополнительной памяти (использования struct/tuple/zip конструкций), а только за счёт введения custom swap?

Google

Vitalii
27.03.2018
06:24:56
(в смысле одновременно: сортируется первый массив, а второй сортируется в соответствии с первым)

Evgeny
27.03.2018
06:50:23
не понял. можно пример на массивах из трех элементов?

Eto
27.03.2018
06:51:59
Он просто хочет дублировать все действия.

Evgeny
27.03.2018
06:54:28
Если так, то встроенные сортировки не позволяют задавать кастомный swap
но позволяют вместо реальной сортировки создавать индекс, может это поможет

Dmitry
27.03.2018
07:49:21
У mir походу конкурент появился. Непонятно только зачем еще одна либа https://github.com/caraus-ecms/tanya

Vitalii
27.03.2018
08:03:50
не понял. можно пример на массивах из трех элементов?
Два массива:
int[] Ind = [3, 0, 2, 1];
double[] Val = [9.1, 2.5, 7.3, 4.2];
Сортируем массив Ind так, что при любой перестановке его элементов с индексами i и j одновременно переставляются элементы с индексами i и j в массиве Val. Т.е. происходит одновременная сортировка двух массивов, заданная первым массивом.
не понял. можно пример на массивах из трех элементов?
Как это сделать с помощью промежуточной структуры/кортежа - понятно. Как это сделать с помощью промежуточного массива индексов (перестановки) - понятно. Непонятно только, можно ли это сделать с помощью пользовательского swap'а.

Evgeny
27.03.2018
08:10:41

Pavel
27.03.2018
08:10:49
Можно сортировать объект, связывающий два массива.

Evgeny
27.03.2018
08:11:04

Pavel
27.03.2018
08:11:24
Под переменные сортировки тоже памятьидёт.

Vitalii
27.03.2018
08:11:25
Да.. :( и тут получается "см. пункт 1".
Единственная беда - сортировок много, в т.ч. и в стандартной библиотеке, они оптимизированы в зависимости от размера входного массива и т.д. В общем, везде свой код добавлять затруднительно.
Пойду на форуме dlang вопрос задавать. Надеюь меня не закидают тухлыми помидорами.

Igor
27.03.2018
08:21:02
возможно среди фкнций в std_algorithm_sorting.htm есть функция, которая генерирует перестановки для сортировки. можн этот генератор применить к обоим масивам
что-то там про permutations вижу но не разбирался подходит оно или нет

Evgeny
27.03.2018
08:22:22

Google

Igor
27.03.2018
08:23:32
не, ну вот там перестановки со сравннием есть: bool nextEvenPermutation(alias less = "a < b"
но повторяю, не знаю есть ли там готовое решение

Evgeny
27.03.2018
08:24:03
А вообще, ты хочешь очень странного.
Какая цель-то преследуется? Нужно максимально быстро сортировать или в условиях очень сильно ограниченной памяти?

Igor
27.03.2018
08:25:01
ну и да, может можно эти два массива держать уже в виде пар и просто сортировать по первому ключу
если их можно держать вместе а не раздельно

Evgeny
27.03.2018
08:27:29

Vitalii
27.03.2018
08:27:36

Igor
27.03.2018
08:27:58

Vitalii
27.03.2018
08:28:37

Evgeny
27.03.2018
08:29:08

Pavel
27.03.2018
08:30:50

Evgeny
27.03.2018
08:34:43
готового решения нет, но можно попробовать создать свой RandomAccessRange на базе этих двух массивов и подсунуть его сортировке

Evgeny
27.03.2018
08:34:57
хотя....

Vitalii
27.03.2018
08:35:29

Evgeny
27.03.2018
08:35:34
хех, zip-то оказывается и есть такой рендж
чем тебе zip-то не угодил?

Vitalii
27.03.2018
08:36:08

Evgeny
27.03.2018
08:36:41
ща накидаю пример

Maxim
27.03.2018
08:37:01
а откуда вообще ноги у такой необходимости растут?

Evgeny
27.03.2018
08:37:49
оптимизация как понимаю

Google

Vitalii
27.03.2018
08:38:42

Maxim
27.03.2018
08:38:48
ну просто сама по себе идея хранить связанные данные в двух массивах

Pavel
27.03.2018
08:39:39
Задача походу типовая, в пшп даже есть функция multisort

Evgeny
27.03.2018
08:39:47
Вот, накидал. Оно?
https://glot.io/snippets/ezjxg4plhq

Pavel
27.03.2018
08:40:50

Igor
27.03.2018
08:40:51
а разве можно сортировать range? там же на месте перстановки происходят

Vitalii
27.03.2018
08:41:47

Pavel
27.03.2018
08:42:42
Не он умеет именно несколько массивов сортировать, там в доке есть примеры

Vitalii
27.03.2018
08:44:05

Admin
ERROR: S client not available

Evgeny
27.03.2018
08:44:41
ну если не считать памяти на стеке :)

Igor
27.03.2018
08:45:21
магия )

Evgeny
27.03.2018
08:46:52

Pavel
27.03.2018
08:48:14
http://php.net/manual/ru/function.array-multisort.php

Evgeny
27.03.2018
08:49:31
кстати можно покороче сортировку записать:
zip(ind, val).sort!"a[0] < b[0]";

Igor
27.03.2018
08:57:40
не понимаю как оно работает не выделяя памяти. sort же сортирует in-place? нужно бы разобраться

Pavel
27.03.2018
09:00:28

Google

Evgeny
27.03.2018
09:00:47

Pavel
27.03.2018
09:01:54
Т.е. оригинальные массивы тоже отредактируются?

Evgeny
27.03.2018
09:02:18

Pavel
27.03.2018
09:02:48
Я имею в виду, что хотелось бы только редактирования массивов указателей
Хотя впринципе в случае с массивом классов оно и так будет указателями

Evgeny
27.03.2018
09:03:20

Pavel
27.03.2018
09:03:46

Evgeny
27.03.2018
09:04:09
если элементы - это указатели, то будут двигаться указатели, но тогда, возможно, потребуется переписать функцию сравнения, чтобы сравнивались не сами указатели, а то что нужно.

Pavel
27.03.2018
09:05:20
Да в общем решаемо

Igor
27.03.2018
09:07:47
понятно, значит я неправильно представлял себе зип просто как поток tuples, а он хитрее

Evgeny
27.03.2018
09:08:11
чем мне нравятся функции из std.range, так это тем что они умные ваще. Результирующий рендж будет мимикрировать под подсунутые ренджи. Если zip подсунуть списки не поддерживающие доступ по индексу, то и zip вернет рендж не поддерживающий обращение по индексу.
а если необходимо превратить ленивый рендж в реальный массив то применяем к нему std.array.array

Igor
27.03.2018
09:22:43
да, очень приятные штуки

Dark
27.03.2018
12:18:33
Жаль, что они такой подход переносят на dmd из-за чего он вечно нестабилен

Dmitry
27.03.2018
13:54:30
На правах оффтопа. К теме линукс для десктопа. LibreOffice у меня намертво виснет при попытке открытия xlsx файла. Ей богу хоть винду на виртуалку ставь т.к. работа стоит

Денис
27.03.2018
13:59:20
У меня было что-то подобное
Но у меня было дело в том, что депенденси библиотеки не хватало

Dmitry
27.03.2018
14:02:18
просто виснет при попытке фильтр применить