@dlangru

Страница 139 из 719
Maxim
24.03.2017
09:41:38
я про то, что если на x86 процессоре сделать структуру, где порт будет ushort, и отправить стуктуру в сокет каким-то образом, то отправится-то поток байтов, и в нем последовательность байтов в ushort порта будет little endian

нужно это иметь в виду

Oleg
24.03.2017
09:43:40
Это больше похоже на проблему протокола самого прокси

Тогда вприцнипе понятно

Google
Oleg
24.03.2017
09:44:17
А так то ядро само должно эндиан переворачивать, вона в линуксе изза этого скорость сети в серверах бывает слегка страдает

Но видимо прокси не касается

Maxim
24.03.2017
09:44:51
это не проблема) это аппаратная архитектура и спецификация протокола)

если Byte order архитектуры и протокола не совпадают, то нужно переворачивать все переменные, которые больше byte)

более того, есть архитектуры экзотические, в которых byte равен short, есть такие, где байт равен семи битам, и да, с этим всем приходится уживаться)

Maxim
24.03.2017
09:49:18
нет, но бывают)

Oleg
24.03.2017
09:50:40
Это всё еще выгодно такое железо закупать? Ужс

Maxim
24.03.2017
09:52:42
ну, разная endianness - это проблема распространенная, mips и arm (насчет второго не уверен) в большинстве случаев big-endian, все intel-совместимые компьютеры little-endian, остальное все экзотика)

Oleg
24.03.2017
09:53:12
В армах это переключается на лету

Maxim
24.03.2017
09:55:28
а не на уровне ос?

Oleg
24.03.2017
09:56:18
а не на уровне ос?
ну это не может быть на уровне ОС

это переключаться может до загрузки ОС

Google
Pavel
24.03.2017
09:56:37
ну типа - обязательно не поймает, когда что-то будет не так.
Збагойно, я не первый год в разработке и понимаю что 80% времени уйдет на борьбу с гейзенбагами и мифическими проблемами :) Я к этому готов.

Maxim
24.03.2017
09:58:03
это переключаться может до загрузки ОС
ну я про это и говорю, что какая была последовательность байтов при загрузке, такая и будет)

Pavel
24.03.2017
10:20:10
А вы вот такую штуку не пробовали? https://dlang.org/phobos/std_variant.html

Может с ней все еще проще?

Dmitry
24.03.2017
12:52:41
А в чем может быть проблема. Почему он connection в коде не видит?



типа потому что он в конструкторе инициализируется? Просто в первый раз вижу такую пробелму

Maxim
24.03.2017
12:54:17
это ж не в конструкторе

Pavel
24.03.2017
12:54:31
В каком методе у тебя строка 21 написана?)

Maxim
24.03.2017
12:54:38
если перенести в конструктор, все нормально будет)

Dmitry
24.03.2017
12:55:32
а смысл cmd в конструктор переносить, он же для того чтобы запросы отправлять

Maxim
24.03.2017
12:56:31
ну, короче, этот cmd в какой-нибудь метод нужно засунуть

Dmitry
24.03.2017
12:56:49
ай, тьфу

понял

Shorty(Ale Chapa) Manskiy
24.03.2017
12:58:31
что это за консоль?

Maxim
24.03.2017
12:58:52
ConEmu

удобная штука, кстати)

Dmitry
24.03.2017
13:14:06
conEmu

очень удобная штука

Google
Dmitry
24.03.2017
13:16:54
кстати, а если делать string x = import("FileName.txt") то оно файл где будет искать?

Просто у меня упорно ругался: Error: file "FileName.txt" cannot be found or not in a path specified with -J

Grigirii
24.03.2017
13:21:11
ну он же явно написал, что пути поиска надо передать через -J. Иначе нигде не ищет

dub в vibe.d проекте по умолчанию добавляет папку с шаблонами

остальное руками добавляй сам

Dmitry
24.03.2017
13:29:04
Кто будет vibed-0.8.0 использовать, обратите внимание, что он только с DMD 2.072.2 и старше совместим. На более ранних версиях бинарики будут собираться, но он сам работать не будет. Сонк подтвердил тот баг на который я напоролся

Oleg
24.03.2017
13:48:49
а много людей вообще пользуется не последней версией компилятора?

пока не выходило ни одной версии (копилятора, библиотеки), в которой я бы не нашёл ошибки

и думаю так с каждыйм активным пользователем D, к сожалению

это достаточно хороший мотиватор обновлять версию компилятора

Shorty(Ale Chapa) Manskiy
24.03.2017
14:36:33
Я все время пользую последнии версии DMD и LDC, но не из-за того что там ошибки исправляют, а от того, что хочу чтобы кодогениратор делал более лучший код, и чтобы все фичи поддерживались. У меня нет крупных проектов, и особых проблем с обновлением нет. А в сторонних библиотеках и приложениях постоянно что-то да не работает, и приходится держать несколько версий компиляторов. По поводу ошибок, как писал карпов (PVS-Studio) - если вдруг вам подумалось что в компиляторе ошибка, то скорее всего ошибка у вас, а не вкомпиляторе. Это работало до D. Разработчики MSVC++ как-то писали что исправили свыше трехсот ошибок. Я думал - Ну бля, как они смогли нахуячить столько ошибок... знал про ошибки в компиляторе C#, точнее знал что там их исправляли, но я сам никогда сними не сталкивался. Когда же я сам нашел первую ошибку в DMD, у меня было что-то типа когнитивного диссонанса, ведь я знал что там не может быть ошибок, но современем ошибки стали нормой. Я не сообщал об ошибках, т.к. с английским все плохо, и пока я собирался сообщить о них, больше половины уже исправили :)

Oleg
24.03.2017
14:46:02
Я все время пользую последнии версии DMD и LDC, но не из-за того что там ошибки исправляют, а от того, что хочу чтобы кодогениратор делал более лучший код, и чтобы все фичи поддерживались. У меня нет крупных проектов, и особых проблем с обновлением нет. А в сторонних библиотеках и приложениях постоянно что-то да не работает, и приходится держать несколько версий компиляторов. По поводу ошибок, как писал карпов (PVS-Studio) - если вдруг вам подумалось что в компиляторе ошибка, то скорее всего ошибка у вас, а не вкомпиляторе. Это работало до D. Разработчики MSVC++ как-то писали что исправили свыше трехсот ошибок. Я думал - Ну бля, как они смогли нахуячить столько ошибок... знал про ошибки в компиляторе C#, точнее знал что там их исправляли, но я сам никогда сними не сталкивался. Когда же я сам нашел первую ошибку в DMD, у меня было что-то типа когнитивного диссонанса, ведь я знал что там не может быть ошибок, но современем ошибки стали нормой. Я не сообщал об ошибках, т.к. с английским все плохо, и пока я собирался сообщить о них, больше половины уже исправили :)
последний абзац, доставляет, конечно)))

Dmitry
24.03.2017
17:54:34
Как раз для любителей всего новенького beta dmd 2.074 вышла

Кстати, а как лучше всего структуры сравнить? Мне нужно найти структуру у которой одно из полей имеет максимальное значение

http://dlang.org/changelog/2.074.0.html

Dmitry
24.03.2017
18:03:23
Выбрать из 10 структур те у которых значения одного из полей максимальные доя начала. filter! Тут поможет? Структуры это же range или нет?

Или там sort!take(1) как нить...

Google
Shorty(Ale Chapa) Manskiy
24.03.2017
18:13:30
какая разница что они range или нет, важно то, в чем они у тебя хранятся, ну там массив, иил еще что. или если ты хочешь сравнивать все поля у каждого объекта, то можно использовать свойство tupleof. В общем, я так и не понял, что тебе нужно.

Pavel
24.03.2017
18:24:42
Походу ему нужно упорядочить структуры и найти максимальную

Нужно добавить операторы ><=

zk
24.03.2017
18:28:58
сперва ему нужно понять что есть структура (struct), а что объект

Dmitry
24.03.2017
19:09:41
ну да, получается найти структуру в которое поле (к примеру) .age максимальное

Oleg
24.03.2017
19:12:18
import std.stdio; import std.range; import std.algorithm; struct Test { float age, sex; string value; } void main() { auto list = [ Test(3.14, 2.7, "one"), Test(4.20, 8.15, "two"), Test(1.4, 6.66, "three"), Test(9.5, 0.15, "four"), Test(4.0, 2.0, "five"), ]; writeln(list.sort!("a.age + a.sex > b.age + b.sex").front); }

ничего не надо переопределять

Dmitry
24.03.2017
19:12:39
Олег, спасибо)))

Oleg
24.03.2017
19:13:43
writeln(list.sort!((a,b) => a.age / a.sex > b.age / b.sex).front);

Admin
ERROR: S client not available

Oleg
24.03.2017
19:13:53
можно ещё так задавать фукнцию сравнения

если строкой, то там можно использовать только a и b

а если лямбду сам делаешь, то на твой вкус

Maxim
24.03.2017
19:14:38
https://dlang.org/phobos/std_algorithm_sorting.html#sort тут подробности)

Eto
24.03.2017
19:14:58
Без сортировки никак?

Oleg
24.03.2017
19:15:17
можно и без

а сортировка не нравится потому что "не оптимально"?

Eto
24.03.2017
19:16:48
Не нравится отсутствие понимания.

Oleg
24.03.2017
19:19:01
да, в std.algorithm появились (насколько я помню раньше не было) функции minElement и maxElement

writeln(list.maxElement!(a => a.age / a.sex));

Google
Oleg
24.03.2017
19:20:25
А ведь логично что сортировка лишняя была)

Вы учите его оптимальным решениям

Ему потом 100 гигабайт обрабатывать

Oleg
24.03.2017
19:20:59
ну...

если по серьёзному 100 гб обрабатывать, то тут нужно много работы

элементарно замерить скорости библиотечных реализаций и своих

и оптимизировать, оптимизировать и ещё раз оптимизировать

алгоритмы и исполнение

а если нужно по быстрому код написать, то можно и так себе

Oleg
24.03.2017
19:22:57
Я думаю в Д засчет крутой семантики все быстро должно быть? Разве тот код с maxElement не сгенерирует тупейший цикл для оптимальности вместо замыкания?

Oleg
24.03.2017
19:25:39
maxElement не генерирует код

и цикл не совсем тупой

private auto extremum(alias map = "a", alias selector = "a < b", Range, RangeElementType = ElementType!Range) (Range r, RangeElementType seedElement) if (isInputRange!Range && !isInfinite!Range && !is(CommonType!(ElementType!Range, RangeElementType) == void)) { alias mapFun = unaryFun!map; alias selectorFun = binaryFun!selector; alias Element = ElementType!Range; alias CommonElement = CommonType!(Element, RangeElementType); alias MapType = Unqual!(typeof(mapFun(CommonElement.init))); Unqual!CommonElement extremeElement = seedElement; MapType extremeElementMapped = mapFun(extremeElement); static if (isRandomAccessRange!Range && hasLength!Range) { foreach (const i; 0 .. r.length) { MapType mapElement = mapFun(r[i]); if (selectorFun(mapElement, extremeElementMapped)) { extremeElement = r[i]; extremeElementMapped = mapElement; } } } else { while (!r.empty) { MapType mapElement = mapFun(r.front); if (selectorFun(mapElement, extremeElementMapped)) { extremeElement = r.front; extremeElementMapped = mapElement; } r.popFront(); } } return extremeElement; }

min и maxElement вызывают эту функцию

тут всё просто, но не проще

Maxim
24.03.2017
19:28:09


Oleg
24.03.2017
19:29:05
есть же стикеры)

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