Здравствуйте, Undying, Вы писали: U>Если заказчиков много, то это всегда не так по совершенно объективным причинам.
Индусский аутсорс в расчет не берем.
Здравствуйте, Undying, Вы писали:
U>Декоратор это антипаттерн. Но тебе этого не понять, потому что зубришь и повторяешь за авторитетами, а не думаешь и не понимаешь сам.
Декоратор, это не антипаттерн. Антипаттернов вообще не бывает. Есть их не правильное применение.
Но это не важно. Я вас о другом спрошу.
Вы читаете хабрахабр?
Здравствуйте, Undying, Вы писали:
U>Здравствуйте, Ikemefula, Вы писали:
I>>У ней n*log(n) это среднее время работы, худший случай — n^2
U>Есть подозрение, что вероятность этого худшего случая на большой коллекции данных пренебрежимо мала.
Я погляжу на твое пренебрежение, когда от сложности сортировки будет зависеть время отклика авионики самолета или хотя бы плавность проигрывания видеофайла.
Еще быстрая сортировка неустойчивая, то есть иногда ее нельзя использовать даже в оперденях, в местах где есть таблицы с упорядочиванием по колонкам.
В микроконтроллерах быстрая сортировка моментально сожрет весь стек (если его программно не эмулировать).
Здравствуйте, Ночной Смотрящий, Вы писали:
НС>Ну попробуй тогда обосновать свое решение. Сколько проходов, какая сложность, есть ли ограничения на длину цепочки.
N проходов, O(N), длина цепочки ограничена емкостью стека. Но разве я где-то писал, что это оптимальный алгоритм?
И вы проигнорировали вопрос насчет извратности.
Здравствуйте, Vzhyk, Вы писали:
V>Блин, с каждым днем, я все больше и больше в шоке от кывта, точнее от современных программистов. Обычно я всегда тут нахожу, что ответить, но сейчас я ступоре, у меня просто нет слов.
До меня был вариант с использованием теории фильтров и т.п. Работал не очень. Через некоторое время переписал его на свой алгоритм, взятый не из умных книжек. Работать стало отлично, хоть с объективной, хоть с субъективной (т.е. лучше чем у конкурентов) точки зрения. Так что я делаю не так?
В любой нетривиальной задаче надо думать своей головой, а не надеяться, что кто-то за тебя в умной книжке задачу решил.
Здравствуйте, Undying, Вы писали:
I>>У ней n*log(n) это среднее время работы, худший случай — n^2
U>Есть подозрение, что вероятность этого худшего случая на большой коллекции данных пренебрежимо мала.
Вероятность зависит не от размера а от порядка следования и в случаях близких к наихудшему глубина рекурсии слишком высока, т.е. там где время близко O(n^2) память израсходуется O(n).
I>>Когда есть некоторые сведения о характере и количестве сортируемых данных, можно подобрать более подходящий алгоритм, часто даже O(n).
U>А конкретный пример и характера данных, и алгоритма можешь привести?
Рендеринг некоторой сцены. Понадобилась стабильная сортировка с временем близком к линейному которая не будет требовать дополнительной памяти. Фактически, z-order, количество элементов в сцене от 100К и отсечения неприменимы, т.к. элементы слишком сложные. Стандартная сортировка во первых, нестабильная, давала периодически небольшие лаги, иногда длительное замерзание, и пару раз было переполнение стека.
Теоретически, 100К элементов не надо рисовать, но вот алгоритм, который подскажет более менее адекватную картинку в таком случае работает слишком медленно. Проще было взять и нарисовать всё с учетом z-order.
Здравствуйте, noone, Вы писали:
N>Я погляжу на твое пренебрежение, когда от сложности сортировки будет зависеть время отклика авионики самолета или хотя бы плавность проигрывания видеофайла.
Так сколько лет и где нужно учится, чтобы ответы на все вопросы возникающие при программирование авионики и проигрывании видеофайла были у вас в голове уже после окончания обучения?
Где бы вы и сколько бы не учились, ответов на большинство возникающих вопросов у вас не будет. Т.к. вопросов возникает очень много и самых разных. Так почему вы такое значение придаете именно сортировке, которая составит малюсенькую долю возникающих вопросов? А не умению решать возникающие задачи с неизвестным ответом?
зы
А зачем при проигрывании видеофайла сортировка? Никогда не занимался этим, просто интересно.
Здравствуйте, Vzhyk, Вы писали:
V>Здравствуйте, Undying, Вы писали:
U>>На самом деле в данной задаче и от всего перечисленного толку немного. Классическая ЦОС заточена под часто снимаемые сигнала. А когда данные идут раз в десять секунд работает это все кое как. V>Блин, с каждым днем, я все больше и больше в шоке от кывта, точнее от современных программистов. Обычно я всегда тут нахожу, что ответить, но сейчас я ступоре, у меня просто нет слов.
А как вы хотели. Для них уже Си — низкоуровневый язык!
А все почему? Потому, что есть типа идиома какая-то или закон, звучит так — "Нельзя писать велосипед!!!".
Любая задача сводится к тому, что она уже написана и надо просто погуглить и скопипастить код.
То, что этот код может быть неправильным, неподходящим для задачи или просто переусложненным игнорируется полностью.
Отсюда имеем плачевный результат, забери у такого "спеца" его платформу или интернет и он не способен решить ни одной проблемы.
Здравствуйте, Undying, Вы писали:
U>Здравствуйте, -n1l-, Вы писали:
N>>Декоратор, это не антипаттерн. Антипаттернов вообще не бывает. Есть их не правильное применение.
U>Бывают и их очень много.
На хабрахабре прочли?
N>>Вы читаете хабрахабр?
U>По очень большим праздникам.
Здравствуйте, Undying, Вы писали:
U>До меня был вариант с использованием теории фильтров и т.п. Работал не очень. Через некоторое время переписал его на свой алгоритм, взятый не из умных книжек. Работать стало отлично, хоть с объективной, хоть с субъективной (т.е. лучше чем у конкурентов) точки зрения. Так что я делаю не так?
Любым инструментов можно себе нанести увечья, разве это говорит о том, что инструмент такой? Это говорит лишь о кривизне рук использующего.
Ты просто угадал с эмпирикой — это часто работает, но не говорит о том, что эмпирика и полное отрицание науки (что ты озвучил) — это разумно.
И вообще-то мне, как человеку с высшим образованием, было бы стыдно за подобные высказывания, но, я, это уже давно понял, — динозавр в современном мире.
N>А все почему? Потому, что есть типа идиома какая-то или закон, звучит так — "Нельзя писать велосипед!!!".
Это правильная идиома. Нельзя писать велосипед, пока не доказано, что имеющиеся стандартные решения не удовлетворяют требованиям задачи.
N>Любая задача сводится к тому, что она уже написана и надо просто погуглить и скопипастить код.
Действительно уже много задач написано и в 90% процентах случаев программистской работы можно скопипастить. Но есть 10% (или сколько там процентов), где такое не пройдет.
N>То, что этот код может быть неправильным, неподходящим для задачи или просто переусложненным игнорируется полностью. N>Отсюда имеем плачевный результат, забери у такого "спеца" его платформу или интернет и он не способен решить ни одной проблемы.
Если у вас все задачи на конторе попадают исключительно в 10% R&D — что невозможно.
Здравствуйте, Ikemefula, Вы писали:
I>Вероятность зависит не от размера а от порядка следования и в случаях близких к наихудшему глубина рекурсии слишком высока, т.е. там где время близко O(n^2) память израсходуется O(n).
С этим согласен. Но просто было интересно есть ли вероятностные оценки столкновения с проблемой на случайных данных.
I>Рендеринг некоторой сцены. Понадобилась стабильная сортировка с временем близком к линейному которая не будет требовать дополнительной памяти. Фактически, z-order, количество элементов в сцене от 100К и отсечения неприменимы, т.к. элементы слишком сложные. Стандартная сортировка во первых, нестабильная, давала периодически небольшие лаги, иногда длительное замерзание, и пару раз было переполнение стека.
Так чем тебе помогло твое знание сортировок? Ты все равно с начала столкнулся с проблемой, а потом уже начал ее решать. Т.е. это еще одно подтверждение того, что ключевой навык программиста это умение быстро разобраться в возникшей проблеме, а вовсе не наличие горы мусора в голове выученной на всякий случай.
Здравствуйте, Vzhyk, Вы писали:
V>Любым инструментов можно себе нанести увечья, разве это говорит о том, что инструмент такой? Это говорит лишь о кривизне рук использующего. V>Ты просто угадал с эмпирикой — это часто работает, но не говорит о том, что эмпирика и полное отрицание науки (что ты озвучил) — это разумно.
Что значит угадал с эмпирикой? А теория ЦОС по твоему откуда появилась? Ее бог что ли написал или марсиане? Ее писали такие же люди как я и ты, но в отличие от тебя не боявшиеся сами находить решения, а не пользоваться готовыми. Если бы все мыслили так как ты люди до сих пор бы с деревьев не слезли.
Здравствуйте, -n1l-, Вы писали:
N>А как вы хотели. Для них уже Си — низкоуровневый язык! N>А все почему? Потому, что есть типа идиома какая-то или закон, звучит так — "Нельзя писать велосипед!!!".
Если бы ты умел понимать прочитанное, а не развешивать ярлыки, то заметил бы, что Vzhyk ужаснулся как раз тому, что я посмел написать свой алгоритм обработки вместо того, чтобы взять готовый из книжки.
Здравствуйте, Undying, Вы писали:
U>Что значит угадал с эмпирикой? А теория ЦОС по твоему откуда появилась? Ее бог что ли написал или марсиане? Ее писали такие же люди как я и ты, но в отличие от тебя не боявшиеся сами находить решения, а не пользоваться готовыми. Если бы все мыслили так как ты люди до сих пор бы с деревьев не слезли.
Хорошо сказано. На этом можно поставить точку. Теперь точно нет слов.
Здравствуйте, Undying, Вы писали:
I>>Вероятность зависит не от размера а от порядка следования и в случаях близких к наихудшему глубина рекурсии слишком высока, т.е. там где время близко O(n^2) память израсходуется O(n). U>С этим согласен. Но просто было интересно есть ли вероятностные оценки столкновения с проблемой на случайных данных.
У меня таких оценок нет
I>>Рендеринг некоторой сцены. Понадобилась стабильная сортировка с временем близком к линейному которая не будет требовать дополнительной памяти. Фактически, z-order, количество элементов в сцене от 100К и отсечения неприменимы, т.к. элементы слишком сложные. Стандартная сортировка во первых, нестабильная, давала периодически небольшие лаги, иногда длительное замерзание, и пару раз было переполнение стека.
U>Так чем тебе помогло твое знание сортировок? Ты все равно с начала столкнулся с проблемой, а потом уже начал ее решать. Т.е. это еще одно подтверждение того, что ключевой навык программиста это умение быстро разобраться в возникшей проблеме, а вовсе не наличие горы мусора в голове выученной на всякий случай.
Для начала это знание помогло задетектить проблему. Скажем, большинство людей просто не в курсе особенностей быстрой сортировки и пока они будут таращить глаза и искать причину, пройдет много времени.
Потом это знание помогло проанализировать причины и определиться с тем, в каком направлении копать — "стабильная сортировка с временем близком к линейному которая не будет требовать дополнительной памяти"
И вот здесь уже я был в курсе про возможность сортировки за линейное время без расхода памяти.
Все вместе это заняло у меня от силы неделю и это время включает в себя полное переписывание кода завязаного на z-order, со всеми оптимизациями, что бы сортировка в конечном результате работала в среднем за линейное время.
К слову — до меня эта проблема висела несколько лет и фича была заморожена ибо "сортировка слишком долгая операция".
Сама сортировка сильно упрощала рендеринг. В конце концов алгоритм визуализации естественным путем усложнился до безобразия, после изменения UI я снова соптимизировал, при чем снова сэкономил на сортировке — я заменил самопал на обычную стабильную(Enumerable.OrderBy) . Сэкономил на том, что все приседания для линейной сортиовки получилось выбросить. В этом случае новая версия уже не сортировала все >100К элементов, а где то пару тысяч.
Собтсвенно упрощение UI я проталкивал именно для того, что бы можно было ускорить рендеринг в т.ч. из за сортировки. Теоретически можно было сразу ввести изменения в UI, но дело в том, что первый раз я оптимизировал эту хрень буквально за пару недель до релиза — никто в своем уме не вносит радикальные изменения в UI на таком сроке.
Здравствуйте, Undying, Вы писали:
U>Если бы ты умел понимать прочитанное, а не развешивать ярлыки, то заметил бы, что Vzhyk ужаснулся как раз тому, что я посмел написать свой алгоритм обработки вместо того, чтобы взять готовый из книжки.
И читать ты не умеешь:
"Любым инструментов можно себе нанести увечья, разве это говорит о том, что инструмент такой? Это говорит лишь о кривизне рук использующего.
Ты просто угадал с эмпирикой — это часто работает, но не говорит о том, что эмпирика и полное отрицание науки (что ты озвучил) — это разумно.
И вообще-то мне, как человеку с высшим образованием, было бы стыдно за подобные высказывания, но, я, это уже давно понял, — динозавр в современном мире."
Здравствуйте, Vzhyk, Вы писали:
V>И вообще-то мне, как человеку с высшим образованием, было бы стыдно за подобные высказывания, но, я, это уже давно понял, — динозавр в современном мире.
Ты не динозавр, ты просто д'Артаньян С твоей математикой уже давно положено продукт-овнером быть, а ты в девелоперах бегаешь от багадельни к багадельне.
Здравствуйте, Vzhyk, Вы писали:
U>>Что значит угадал с эмпирикой? А теория ЦОС по твоему откуда появилась? Ее бог что ли написал или марсиане? Ее писали такие же люди как я и ты, но в отличие от тебя не боявшиеся сами находить решения, а не пользоваться готовыми. Если бы все мыслили так как ты люди до сих пор бы с деревьев не слезли. V>Хорошо сказано. На этом можно поставить точку. Теперь точно нет слов.
Т.е. теорию ЦОС писали сверхчеловеки? А нынешним недочеловекам это недоступно и даже сомневаться в этом кощунственно? Или что тебя так пугает?
Любую теорию, и ЦОС не исключение, пишут под конкретные задачи. Сбивать ракеты, к примеру, да, ей получается замечательно, лучше придумать сложно. А контролировать топливо ей в то время никто не собирался, не было технологических возможностей для этого тогда. Поэтому теория контроля топлива сейчас только создается. И создают ее не какие сверхчеловеки, а обычные инженеры, но умеющие и не боящиеся думать своей головой.