Re[16]: Рассказ о Крутом Манагере
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 05.02.15 05:30
Оценка:
Здравствуйте, Юрий Лазарев, Вы писали:

ЮЛ>Поддерживается у них официально msvc-7.1 А кто заставляет использовать msvc-7.0 — жизнь! Или вы полагаете, что не имея работы, я могу позволить себе ставить самые последние навороченные версии, которые так завораживают местных хомячков?


http://codelite.org/
http://www.codeblocks.org/
ну и так далее. Причём свежие компиляторы и меньше всякого корпоративно-энтерпрайзного тягаря.
The God is real, unless declared integer.
Re[19]: Рассказ о Крутом Манагере
От: AleksandrN Россия  
Дата: 05.02.15 05:53
Оценка:
Здравствуйте, landerhigh, Вы писали:

SD>>Не факт, что она (проблема) в твоём коде. Может быть где угодно, от ядра ОС до микрокода процессора.


L>Совершенно верно. Как тебе проблема, которая всплывает только в определенный день високосного года в случае, если устройству был отправлена команда на согласование времени с сервером исключительно после отправки двух других специальных команд при условии, что сеть построена на оборудовании вендора А и по пути происходит коллизия, приводящая к повтору команды? В итоге это оказался все же баг в коде, но отладчиком такое не найти. Нашлось исключительно написанием специального функционального теста с последующией идентификацией ответственного модуля и написанием уже юнит-теста для проблемы.


L>А уж примеров проблем во внешнем оборудовании тоже до чертиков, когда баг назначают на систему, а она оказывается вот совсем не виноватая!


L>П.С. Сейчас, именно благодаря юнит-тестам, нашел багу в оптимизаторе MSVS 2012. Минимизировать не удается, а весь проект засылать им нихачу.



Похоже, в споре об отладке, все по разному поняли этот термин. Отладка — поиск и исправление ошибок, не обязательно с помощью отладчика.

P.S. Забыл, когда в последний раз отладчиком пользовался. Обычно для отладки сейчас использую тесты и логи.
Re[15]: Рассказ о Крутом Манагере
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 05.02.15 07:21
Оценка: 5 (1) +2
Здравствуйте, landerhigh, Вы писали:

L>Отладчик — хороший, но специализированный инструмент, но как и любой специализированный инструмент, его нужно использовать по назначению.

L>То, как его использует ТС, и не только он, судя по предыдущим подобным топикам — "скомпилировал, запустил, упало, запустил под отладчиком, нашел, исправил, скомпилировал, запустил, не упало, но функциональность сломана" есть ad-hoc или ковбойская разработка, результатом которой ничего, кроме говнокода, быть не может. Иными словами, разработчик сам не понимает, как будет работать код, им же написанный.

Я поставил этому сообщению категорический плюс, но всё же считаю нужным вступиться и сказать несколько слов в пользу отладчика (скорее, не в случае ситуации ТС). Именно что ситуация "сам не понимает, как будет работать код" нормальна для нескольких случаев:
1. Обучение программированию — когда надо прочувствовать происходящее именно в виде последовательности состояний и разницы между ними.
Это же не в случае обучения программированию вообще, но принципиально новым средствам (языки и фреймворки).
2. Странности работы платформы/фреймворка/etc., не документированные, плохо описанные, нарушающие документацию, etc.
3. Очевидно, кордампы всех видов и происхождений.

И правильным подходом должно быть не "запретить отладчик", а "отладчик — не замена тестам" и "затраты времени на отладчик должны быть обоснованы только чем-то из списка выше, но не неумением тестировать".

L>Программист должен уметь проверять работоспособность своего кода и верифицировать функциональность без отладчика. Именно поэтому я всегда говорю, что я бы вообще у разработчиков отбирал отладчик на время собственно разработки.


Лучшее воспитание тут — практическое доказательство того, что отладчик вместо тестов тормозит разработку.
The God is real, unless declared integer.
Re: Рассказ о Крутом Манагере
От: GhostCoders Россия  
Дата: 05.02.15 15:40
Оценка:
Здравствуйте, Юрий Лазарев, Вы писали:

В качестве примера — привожу последний наш разговор на фирме. Перед этим мне доверили разобрать их (такой ценный) код в попытке ответить одному из клиентов на недоуменный вопрос, почему их программа не выдает расстояний между точками, находящимися в разных локальных системах координат. Системы координат у них произвольные, т.е. с произвольной матрицей растяжения и поворота. Мне открыто в глаза было заявлено ЗМанагером, что расстояния измеряются только внутри локальных систем, а в разных системах расстояния будут зависеть от их расположения (!) и потому выводить расстояния нельзя.

Мне как физику (а не ИТ хомяку) было заранее понятно, что тут что то не так. В реальном мире (а не в ИТ "Матрице") расстояния инвариантны независимо от координат. Обдумав ситуацию, на след.день я пришел к ним обрадовать их известием, что они неправильно измеряют расстояния, что в произвольной системе координат метрические измерения нельзя производить без учета метрического тензора, и что по видимому, они просто не знают основ математики.

На меня поглядели как на белую ворону, и в тот же час дали расчет. Разговора про тензоры не состоялось. Можно только пожалеть босса за его такую преданную команду ослов.


Долгое время не решался написать, но напишу, так как не вытерпел.

В нашей системе 3D отчетов есть функция "зонд". Пользователь щелкает мышью на какую-то точку 3D модели, и система выдает координаты этой точки.
Есть также функция измерения расстояний.

Хочу отметить, что у "зонда" есть два режима: режим показа глобальных координат и режим показа локальных координат.
И пользователь может переключиться между двумя этими режимами используя галочку (check box).
Также во время генерации отчета другой пользователь (автор отчета) может задать режим (глобальный\локальный) используемый по умолчанию.
Автор отчета может выбрать, будет ли галочка "глобальный режим" доступна пользователю во время просмотра отчета.

Так вот, в глобальном режиме и координаты и растояния вычисляются без проблем.

В случае, если пользователь выбрал режим отображения локальных координат, то с отображением самих координат проблем тоже нет.
Есть некоторые неясности насчёт режима показа локальных координат и функции измерения расстояний.

Для измерения расстояний пользователь должен указать как минимум две точки.
В случае, если обе точки находятся в одинаковой локальной системе координат — то вопросов как считать расстояние не возникает.

Если же точки находятся на разных 3D моделях и эти модели находяться в разных локальных системах координат (то есть имеют разные полные матрицы трансформаций в scene graph), то тут возможно несколько вариантов:
1. координаты второй точки перевести в координатную систему первой точки и выдать эквлидово расстояние между двумя точками
2. координаты первой точки перевести в координатную систему второй точки и выдать эквлидово расстояние между двумя точками
3. координаты точек перевести в глобальную систему координат и вычислить эквлидово расстояние. Но тут получается, что данный режим дублирует функцию измерения расстояний в режиме показа глобальных координат.
4. вывести сообщение о невозможности вычисления расстояния между точками, расположенными в разных системах координат

У нас был реализован вариант №4. И через какое-то время мы получили письмо от пользователя, что, мол, "система не показывает расстояния" и "выдает ошибку".

Я дал задание Юре разобраться в ситуации. Объяснил, как работает текущая система, и что тут нужно подумать, что лучше сделать варинат №1 или вариант №2.
Попросил Юру сделать необходимые изменения в коде, например, реализовать, к примеру, вариант №1, чтобы Юра мог для начала разобраться в текущем коде.
Тут работы было отсилы на полчаса, чтобы применить матрицу преобразования из одной локальной системы координат в другую и вычислить эвклидово расстояние.

Но Юрий засел над работой на аж несколько дней (почти на неделю, правда отвлекаясь на другие задачи).
Я периодически подходил к нему и интересовался, как идут дела. Он мне отвечал, что он изучает текущий код и его "дебажит", чтобы понять как он работает.

После недели работы Юрий мне заявил, что вообще расстояние в локальных координатных системах выводить не правильно в принципе,
и нужно переводить все в глобальную систему координат или нужно использовать метрический тензор.

На это я ему заметил, что у нас уже есть для этого специальный режим показа глобальных координат и измерения "глобальных" растояний, и ничего изменять в существующем коде не нужно.
И, что я лучше за 15 минут напишу пользователю письмо с рекомендацией использовать режим вывода глобальных координат и т.д.
А то и так уже слишком много времени ушло, и что на эту работу нужно отводить максимум 1 час (если конечно знаешь, где изменять).
Но я ему говорил, что если какие-то вопросы будут — то обращайся.

Да и что там такого сложного в вычислении эвклидова растояния и перевода координат точки из локальной системы в глобальную и при помощи умножения вектора на матрицу?
Тем более в коде у нас есть готовые классы матриц, векторов, достаточно воспрользоваться перегруженным оператором *.

Я написал пользователям письмо. Пользователей режим глобальных координат устроил, а Юрий продожал "дебажить" этот код, несмотря на то, что я его попросил уже не заниматься этой задачей.
На следующий день я решил что пора решительно поговорить с Юрой. Когда, я ему сообщил о том, что он уволен, Юра начал говорить о том, что мы не понимаем основ математики,
что мы безграмотны, что надо использовать тензоры и т.д. Естественно, я на него смотрел как "на белую ворону" И дальнейших дискуссий решил не заводить.

И несколько слов о расстоянии в локальных системах координат, хотя тут уже Bender ответил.
Допустим, у нас есть глобальная система координат. И она измеряется в метрах.
Например, расстояние между точкой (0,0,0) и (1,0,0) есть 1 метр.

Допустим, у нас есть некая локальная система координат, имеющая матрицу трансформации (матрица маштабирования)
0.01 0 0 0
0 0.01 0 0
0 0 0.01 0
0 0 0 1
Фактически такая матрица применяется для преобразования локальных координат в глобальные.
Скажем точке, (100, 0, 0) в локальной системе координат соответствует точка (1,0,0) в глобальной системе.

Чему равно растояние между точкой (100, 0, 0) и точкой (0, 0, 0) в локальной системе координат? Правильно, 100.
Но 100 чего? Правильно, 100 сантиметров. 100 сантиметров в локальной системе координат соответствуют значению 1 в глобальной, но уже метров.

Поворот локальной системы координат вообще никак не влияет на расстояния, как и перенос.
И сложность функции измерения расстояний в локальных систем координат заключается в отображении единиц измерения. И на это можно было потратить время разработчику, а не "дебажить".

Еще другой пример.
У меня на столе лежит клавиатура. Я могу ее длину измерить следующим образом.
Измерить координату ее левого края относительно левой кромки стола, и измерить координату ее правого края относительно все той же кромки.
И вычислить длину клавиатуры через разницу координат (допустим клавиатура лежит параллельно передней кромки стола).
Какую я систему координат использовал для определение координат клавиатуры?
Локальную или глобальную?

Естественный ответ — локальную, так как начало системы координат совпадает со столом.
Тогда, согласно умозаключениям Юры, я неправильно измерил длину клавиатуры, потому что "не знаю основ математики".

А если мы захотим "правильно" определить длину клавиатуры, согласно методу Юры, мы должны использовать "глобальную" систему координат.
Только вот проблема в том, что же будет являться этой "глобальной" координатной системой?

Навигационная система координат UTM? Система координат, связанная с центром Земли? Или система координат связанная с центром Солнца?

Ах, мы забыли, что в физике все неинерционные системы координат равноправны...
Или может Юрий является сторонником гипотезы об эфире, который является физическим воплощением единой "глобальной" системы координат?
Ну так

Абсолютное пространство было упразднено специальной теорией относительности

проходят даже в школе. Даже в школе проходят постулаты Энштейна.
Но "физику" Юрию это неизвестно.
Третий Рим должен пасть!
Отредактировано 05.02.2015 15:53 GhostCoders . Предыдущая версия . Еще …
Отредактировано 05.02.2015 15:43 GhostCoders . Предыдущая версия .
Re[2]: Рассказ о Крутом Манагере
От: Varavva  
Дата: 05.02.15 15:52
Оценка:
Блин, столько шума из-за умножения точки на матрицу?
Мдяяя
Re[3]: Рассказ о Крутом Манагере
От: GhostCoders Россия  
Дата: 05.02.15 16:09
Оценка:
Здравствуйте, Varavva, Вы писали:

V>Блин, столько шума из-за умножения точки на матрицу?

V>Мдяяя

Или другой случай.
Я его попросил добавить поддержку 32-битного GeoTIFF. Этот как обычный TIFF, только с географическими привязками к местности,
плюс там хранятся 32-bit float значения вместо троек байт RGB. Можно хранить высоту местности в заданных точек относительно моря, температуры и др. величины.

И его решение было "идеальным".
Конкретно, он использовал коэффициент 2.59 в своем коде. Для приведения произвольного диапозона входных значений к RGB диапозону 0-255.
Естественно, это работало только для 1 определенного входного файла.
К счастью, этот код быстро обнаружили другие члены команды. И схватились за голову (facepalm).
А там надо было вычислить максимум и минимум значений входных, и нормировать согласно им.

И при этом Юра часто обвиняет других в производстве халтуры:

Сразу бабки и производство фуфла (халтуры).

Возможно, с тех пор формальные каноны усовершенствовались, но где же сегодня великая литература? Сплошь халтура.

и в других местах.
Третий Рим должен пасть!
Отредактировано 05.02.2015 16:09 GhostCoders . Предыдущая версия .
Re[4]: Рассказ о Крутом Манагере
От: GhostCoders Россия  
Дата: 05.02.15 16:21
Оценка:
Здравствуйте, GhostCoders, Вы писали:

GC>Здравствуйте, Varavva, Вы писали:


V>>Блин, столько шума из-за умножения точки на матрицу?

V>>Мдяяя

Я как-то уходил из офиса по делам, дал задание другому сотруднику помогать Юре.
Там какая-то проблема была с проектом в CMake.
То есть проект конфигурировался неправильно, из-за чего ошибка компиляции была.
Меня не было, но мне рассказали.
О том, что Юрий прицепился к проекту ZERO_CHECK, который генерируется CMakом
Начал менять свойства этого проекта, хотя нужно менять файлы CMakeLists.txt.
Eму коллега объясняет, что проект ZERO_CHECK генерируется системой CMake, изменять его нет смысла, нужно изменять CMakeLists.txt
Но Юра — упирается, нет, буду менять свойства проекта ZERO_CHECK.
Коллега и так и этак объясняет, но Юра говорит что вот он изменит проект ZERO_CHECK и "все будет хорошо". При этом хотел изменения в ZERO_CHECK куда-то коммитить.
И так почти весь день ушел в бесплодных попытках убедить Юру. Его еще когда надо было увольнять.
А коллеги были рады. Вообщем, было веселье в офисе. Рядом сидели и угорали от смеха
Третий Рим должен пасть!
Re[2]: Рассказ о Крутом Манагере
От: iriska2  
Дата: 05.02.15 16:43
Оценка: +4 :)
Вы оба какие-то странные ребята. Один выложил какую-то простыню говнокода и пытается всех нас убедить, что он гений а мы идиоты.
Второй, так называемый менеджер, вместо того чтобы сгладить конфликт и спасти остатки своей репутации и репутации компании, наоборот
подливает масла в огонь.
Re[3]: Рассказ о Крутом Манагере
От: GhostCoders Россия  
Дата: 05.02.15 17:18
Оценка:
Здравствуйте, iriska2, Вы писали:

I>Вы оба какие-то странные ребята. Один выложил какую-то простыню говнокода и пытается всех нас убедить, что он гений а мы идиоты.

I>Второй, так называемый менеджер, вместо того чтобы сгладить конфликт и спасти остатки своей репутации и репутации компании, наоборот
I>подливает масла в огонь.

Почитал я про себя тут. "Крутой Менеджер" — прямо даже стало лестно
Сразу приходит на ум какой-нибудь менеджер в крупной фирмер, Газпром, не меньше.
На самом деле, я себя менеджером никогда не считал, и мне не нравится когда меня называют менеджером, даже не ЗМ или КМ.
Третий Рим должен пасть!
Re[3]: Рассказ о Крутом Манагере
От: jhfrek Россия  
Дата: 05.02.15 20:00
Оценка: +1
Здравствуйте, iriska2, Вы писали:

I>Второй, так называемый менеджер, вместо того чтобы сгладить конфликт и спасти остатки своей репутации и репутации компании, наоборот подливает масла в огонь.


если GhostCoders не приврал для выгораживания себя, то репутация компании только улучшилась — в ней не держат людей тормозящих процесс разработки и устраивающих споры на ровном месте.
Re[16]: Рассказ о Крутом Манагере
От: SkyDance Земля  
Дата: 05.02.15 23:19
Оценка:
N>И правильным подходом должно быть не "запретить отладчик", а "отладчик — не замена тестам" и "затраты времени на отладчик должны быть обоснованы только чем-то из списка выше, но не неумением тестировать".

Вот в такой формулировке подпишусь под каждым словом.
Re: Рассказ о Крутом Манагере
От: sharpcoder Россия  
Дата: 06.02.15 06:41
Оценка:
Ну допустим манагер дурак, чего я совершенно не могу исключать. Но мне другое не понятно.
А чего вы хотите добиться этим сообщением?
Re[3]: Юрий - безумный гений :)
От: GhostCoders Россия  
Дата: 06.02.15 06:56
Оценка:
Здравствуйте, iriska2, Вы писали:

I>Вы оба какие-то странные ребята. Один выложил какую-то простыню говнокода и пытается всех нас убедить, что он гений а мы идиоты.


Кстати, Юрий не так прост.
Юра Лазарев является победителем Всероссийской (!) математической олимпиады среди школьников 10 класса.
Журнал "Квант" №10 1979 года, можно проверить в архиве журнала, например
http://www.kvant.info/k/1979/197910.djvu
Идем на страницу 62 (60) и видим вторую строку сверху "Лазарев Ю."

Кстати, Юра в своей "мега"-программе вроде бы даже использует все те вещи, которые перечислены в этом сообщении — http://rsdn.ru/forum/job/5944701.1
Автор: Bender
Дата: 05.02.15
Третий Рим должен пасть!
Re[2]: Рассказ о Крутом Манагере
От: GhostCoders Россия  
Дата: 06.02.15 07:01
Оценка: :)
Здравствуйте, sharpcoder, Вы писали:


S>Ну допустим манагер дурак, чего я совершенно не могу исключать. Но мне другое не понятно.

S>А чего вы хотите добиться этим сообщением?
Я не Юрий, я "менеджер"
Третий Рим должен пасть!
Re[3]: Рассказ о Крутом Манагере
От: Aртём Австралия жж
Дата: 06.02.15 07:37
Оценка: -1 :)
Здравствуйте, GhostCoders, Вы писали:

GC>Я не Юрий, я "менеджер"


Теперь понятно. Но все равно к Юре симпатия. У гениев бывают "игры разума", к сожалению.
Re[4]: Рассказ о Крутом Манагере
От: CreatorCray  
Дата: 06.02.15 07:58
Оценка: +1 :))
Здравствуйте, Aртём, Вы писали:

Aё>У гениев бывают "игры разума", к сожалению.


Игры разума бывают не только у гениев.
Забанили по IP, значит пора закрыть эту страницу.
Всем пока
Re[4]: Рассказ о Крутом Манагере
От: GhostCoders Россия  
Дата: 06.02.15 08:07
Оценка: :)
Здравствуйте, Aртём, Вы писали:

Aё>Теперь понятно. Но все равно к Юре симпатия. У гениев бывают "игры разума", к сожалению.


Забирай его себе в Австралию
Третий Рим должен пасть!
Отредактировано 06.02.2015 8:08 GhostCoders . Предыдущая версия .
Re[4]: Рассказ о Крутом Манагере
От: Vlad_SP  
Дата: 06.02.15 08:16
Оценка:
Здравствуйте, Aртём,

Aё> У гениев бывают "игры разума", к сожалению.


Игры разума имеют неприятный побочный эффект — они иногда рождают чудовищ. Да, мы видели, оценивая код.........
Re[4]: Юрий - безумный гений :)
От: Victor Ivanidze Россия  
Дата: 06.02.15 08:17
Оценка: +2
GC>Кстати, Юрий не так прост.
GC>Юра Лазарев является победителем Всероссийской (!) математической олимпиады среди школьников 10 класса.
GC>Журнал "Квант" №10 1979 года, можно проверить в архиве журнала, например

Да, есть о чём задуматься — если в 1979 он был десятиклассником, то сейчас, на шестом десятке, он всё ещё борется с менеджерами.
Re[5]: Рассказ о Крутом Манагере
От: Aртём Австралия жж
Дата: 06.02.15 08:30
Оценка:
Здравствуйте, GhostCoders, Вы писали:

GC>Забирай его себе в Австралию


А вот к вам симпатии нет: "Там работы на 30 минут" и потом "Я написал письмо клиенту и сказал, как вызвать в глобальной СК". Если работы там на 30 минут, как Вы изволили выразиться, но фича так и не была добавлена за все время- это уже о чем-то говорит.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.