Re[2]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 11.04.20 08:46
Оценка: 4 (1) -3 :))
Здравствуйте, reversecode, Вы писали:

R>если даже несколько сот многовато, для программиста >5 лет

R>это проф не пригодность

Для программиста, независимо от стажа, способность анализировать чужой код, за пределами самого общего понимания, вообще не является профессиональной необходимостью. Профессиональная функция программиста — создавать код, а не "разматывать" его. То есть, если программист способен создать код в рамках заданных условий (задача, время, стоимость, надежность и т.п.) — он однозначно полностью профпригоден. Умение копаться в чужом коде и переделывать его — сугубо дополнительные способности.
Re: как определить используемый код
От: reversecode google
Дата: 10.04.20 20:04
Оценка: -5
500k loc это даже не о чем
если даже несколько сот многовато, для программиста >5 лет
это проф не пригодность
Re[9]: как определить используемый код
От: rg45 СССР  
Дата: 17.04.20 09:22
Оценка: +4
Здравствуйте, Евгений Музыченко, Вы писали:


R>>В метафоре про чукчу речь идет об умении читать и только. На то она и метафора.


ЕМ>Тогда и не стоило ее развивать с двусмысленными намеками.


Это почему? По моему скромному мнению, программист, не умеющий анализировать чужой код, очень похож на чукчу из известного анектода. Я же могу выразить свое мнение?
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 20.04.2020 6:36 rg45 . Предыдущая версия . Еще …
Отредактировано 17.04.2020 9:23 rg45 . Предыдущая версия .
Re[3]: как определить используемый код
От: rg45 СССР  
Дата: 17.04.20 05:25
Оценка: +3
Здравствуйте, Евгений Музыченко, Вы писали:


ЕМ>Для программиста, независимо от стажа, способность анализировать чужой код, за пределами самого общего понимания, вообще не является профессиональной необходимостью. Профессиональная функция программиста — создавать код, а не "разматывать" его. То есть, если программист способен создать код в рамках заданных условий (задача, время, стоимость, надежность и т.п.) — он однозначно полностью профпригоден. Умение копаться в чужом коде и переделывать его — сугубо дополнительные способности.


Тут невольно вспмонилось "чука — не читатель, чукча — писатель..."
--
Не можешь достичь желаемого — пожелай достигнутого.
Re: как определить используемый код
От: kov_serg Россия  
Дата: 10.04.20 14:34
Оценка: 4 (1) +1
Здравствуйте, sergey2b, Вы писали:

S>мне надо мигрировать приложение с win на linux

S>примерно несколько сот тыс строк
S>состоит из N самописных библиотек (те исходный код доступен) которые в итоге собираються в юинарник

S>уже понятно что часть кода реально не используеться

S>есть ли какая либо возможность определить какой код реально используеться в приложении
1. Собираете всё в статические либы.
2. Потом компилируете целевые исполняемые файлы, генерируя при этом map файл
3. Затем парсите его и выделеяте то что используются
4. ...
5. PROFIT
Re[3]: как определить используемый код
От: Bill Baklushi СССР  
Дата: 17.04.20 15:01
Оценка: +1 -1
Евгений Музыченко:

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


Неумение читать код, это профнепригодность. Дали тебе задачу передвинуть кнопку на форме, и ты сядешь всё с нуля переписывать?
Модератор-националист Kerk преследует оппонентов по политическим мотивам.
Re: как определить используемый код
От: flаt  
Дата: 10.04.20 14:32
Оценка: 4 (1)
Натравить тулзы с code coverage и прогнать софт под как можно большим количеством юзкейсов. Либо тщательно проанализировать код самому. Либо понадеяться, что линкер выкинет лишнее.
Re: как определить используемый код
От: Zhendos  
Дата: 10.04.20 14:41
Оценка: 4 (1)
Здравствуйте, sergey2b, Вы писали:

S>мне надо мигрировать приложение с win на linux

S>примерно несколько сот тыс строк
S>состоит из N самописных библиотек (те исходный код доступен) которые в итоге собираються в юинарник

S>уже понятно что часть кода реально не используеться

S>есть ли какая либо возможность определить какой код реально используеться в приложении

clion вроде умеет, но я давно его не использовал
поэтому "вроде".
Re[3]: как определить используемый код
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 10.04.20 14:59
Оценка: 4 (1)
Здравствуйте, sergey2b, Вы писали:

S>линкер не вариант тк конечная цель сэкономить время на переноси исходного кода


Почему не вариант?
Ты просто решил, что надо на целевом линуксе смотреть, что выкинулось, а что нет. А надо смотреть виндовый вариант, что в нем используется, и от этого плясать.
Маньяк Робокряк колесит по городу
Re[3]: как определить используемый код
От: watchmaker  
Дата: 10.04.20 15:55
Оценка: 4 (1)
Здравствуйте, sergey2b, Вы писали:

S>Здравствуйте, flаt, Вы писали:


F>>Натравить тулзы с code coverage и прогнать софт под как можно большим количеством юзкейсов. Либо тщательно проанализировать код самому. Либо понадеяться, что линкер выкинет лишнее.


S>а можно название 1-2 таких утилит для примера


clang же: https://clang.llvm.org/docs/SourceBasedCodeCoverage.html
Ну или gcov.

S>линкер не вариант


Линкер — норм. Если он выкинул что-то, то это явно не нужно.

Другое дело, что линкер и прочие map-файлы не смогут обнаружить, например, что реально функция fn в таком фрагменте не вызывается: if (sinf(x) > 2.0f) { fn(); }

А source based code coverage как раз разметит, что при использовании программы условие в этой строке не становилось истинным никогда, и соответственно функция fn не нужна (если она больше нигде не вызывается).
Re: как определить используемый код
От: prog123 Европа  
Дата: 10.04.20 18:01
Оценка: 4 (1)
Здравствуйте, sergey2b, Вы писали:

S>уже понятно что часть кода реально не используеться

S>есть ли какая либо возможность определить какой код реально используеться в приложении

Кроме уже предложенных, можно попробовать профилировщики. Они выдают список всех ф-ций, которые вызывались. Если список можно вывести в текстовый файл, еще лучше. Еще поискать что-то типа call graph profiler.
Вот тут что-то делают https://www.cs.sfu.ca/~wsumner/teaching/886/callgraph-profiler.html
Re: как определить используемый код
От: IID Россия  
Дата: 16.04.20 18:17
Оценка: 4 (1)
Здравствуйте, sergey2b, Вы писали:

S>есть ли какая либо возможность определить какой код реально используеться в приложении


Возьми код, который ТОЧНО используется (main и далее). И подключай сорцы по сообщениям линкера. Если совсем перфекционист — в подключенном сорце комментируй всё, кроме нужной функции. А потом раскомментируй по мере продвижения.
kalsarikännit
Re[6]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.04.20 08:45
Оценка: 4 (1)
Здравствуйте, rg45, Вы писали:

R>А тут невольно вспоминается другой афоризм — про бабушку и бороду.


Ну давайте так: подпишетесь под утверждением, будто любой писатель, востребованный не самой маргинальной частью населения, способен быстро и грамотно анализировать чужие литературные произведения, независимо от их стиля и объема? То есть, сможет, бегло пробежавшись по тексту, выписать характеры персонажей, отметить возможные противоречия, нарисовать граф сюжетных линий, опять же выделив возможные нестыковки, очертить блоки повествования, классифицировать произведение по стилям и т.п.

Ну и до кучи: сможет ли любой успешный террорист без дополнительной подготовки столь же хорошо выполнять контртеррористическую работу?
Re[3]: как определить используемый код
От: IID Россия  
Дата: 17.04.20 17:40
Оценка: 1 (1)
Здравствуйте, Marty, Вы писали:

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


S>>>есть ли какая либо возможность определить какой код реально используеться в приложении


IID>>Возьми код, который ТОЧНО используется (main и далее). И подключай сорцы по сообщениям линкера. Если совсем перфекционист — в подключенном сорце комментируй всё, кроме нужной функции. А потом раскомментируй по мере продвижения.


M>За пару лет управится


Отставить панику.
Лично портировал 5,8мб исходников (плюс либы типа OpenSSL, Jpeg и т.д.) с Lin на Win. Точнее добавлял ещё одну платформу для запуска.
ХЗ сколько там строк. Наверное раза в 2 побольше чем 100к.
Приложение под Linux Box, с кучей UI на OpenGL.
Очень повезло что:
— приложение уже содержало 2 платформы: Desktop и Embedded Linux. И было поделено на слои. Для GL/GLES сущностей существовали обёртки. Пришлось только часть Posix вызовов проэмулировать с помощью Win32, причём для некритических я сильно не заморачивался.
— в консоль Win10 завезли флаг поддержки Escape последовательностей VT100 — логи в терминале раскрасились сами собой. А логирования там просто дохрена.

Справился где-то за неделю. Получил возможность собирать, запускать и отлаживать прямо из студии.
kalsarikännit
Re[5]: как определить используемый код
От: watchmaker  
Дата: 10.04.20 16:31
Оценка: +1
Здравствуйте, K13, Вы писали:

K13>А вообще -- есть риск "не поймать" обработчики исключительных ситуаций, например таймаут при запросе в БД, исчерпание места на диске и т.п.


Конечно. Именно поэтому подсчёт покрытия часто используется совместно с тестами и прочим Continuous Integration: смотрим на непокрытые участки кода и либо удаляем их (как потерявшие актуальность), либо добавляем тест, который приведёт к срабатыванию нужной ветки.

Ну и в любом случае, имея детальную карту покрытия можно легко её огрубить до уровня функции, объектника, или библиотеки. А уже потом разбираться с такими крупными блоками — если из всей библиотеки ни одной функции не было вызвано, то на неё надо посмотреть повнимательнее на предмет полезности.
Re[8]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.04.20 10:08
Оценка: +1
Здравствуйте, reversecode, Вы писали:

R>у вас есть в друзьях такие проф писатели ?


Прямо, чтоб в друзьях — нет, но общаться приходилось. Равно как и со множеством разного рода людей, занимающихся как синтезом, так и анализом. Совершенно очевидно, что эти способности не являются двунаправленными, симметричными. У наиболее успешных они и перекрываются наиболее полно, однако далеко не все, кто способен интересно и увлекательно хоть писать, хоть рассказывать, имеют сколько-нибудь выдающиеся способности к анализу.

R>у вас есть террорестический опыт ?


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

R>а то что делаете вы это уводите тему в сторону да еще и не удачными примерами


Так давайте же удачных примеров. Или, по-Вашему, программирование — совершенно уникальная сфера деятельности, не имеющая себе аналогов?

R>а теперь видимо вы готовы рассказать нам форумчанам какими же умениями и знаниями должен обладать программист с 10 лет опыта ?


Я уже рассказал, что умение "сочинять вообще" не предполагает равного ему умения "разбираться вообще". В этих занятиях задействованы разные свойства мозга. У кого-то мозги "симметричные", и они одинаково легко как сочиняют, так и разбираются, а у кого-то эти свойства сдвинуты в одну сторону, причем достаточно сильно.
Re[2]: как определить используемый код
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 17.04.20 10:16
Оценка: :)
Здравствуйте, IID, Вы писали:

S>>есть ли какая либо возможность определить какой код реально используеться в приложении


IID>Возьми код, который ТОЧНО используется (main и далее). И подключай сорцы по сообщениям линкера. Если совсем перфекционист — в подключенном сорце комментируй всё, кроме нужной функции. А потом раскомментируй по мере продвижения.


За пару лет управится
Маньяк Робокряк колесит по городу
Re[11]: как определить используемый код
От: rg45 СССР  
Дата: 17.04.20 13:56
Оценка: :)
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Совсем не умеющий — похож. Так или иначе анализировать способен любой программист. Однако, делать это на уровне "как дышать" (ну, или как читать запоем тот же роман) — далеко не каждый. Для этого нужно иметь определенным образом устроенный мозг, а не только знания и опыт.


Моя младшенькая бьет меня иногда моим же оружием: "Папа, помоги — вот в этом месте какая-то фигня". Смотрю код, а там — ни в сказке сказать, ни пером описать. Смотрю, смотрю... В конце концов не выдерживаю: "а ты что сделать хотела, вообще?" Так она мне в ответ: "учись читать чужой код!"
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 17.04.2020 14:11 rg45 . Предыдущая версия . Еще …
Отредактировано 17.04.2020 14:02 rg45 . Предыдущая версия .
Отредактировано 17.04.2020 14:01 rg45 . Предыдущая версия .
Re[4]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.04.20 16:23
Оценка: -1
Здравствуйте, Bill Baklushi, Вы писали:

ЕМ>>Для программиста, независимо от стажа, способность анализировать чужой код, за пределами самого общего понимания, вообще не является профессиональной необходимостью.


BB>Неумение читать код, это профнепригодность.


А неумение понять разницу между "читать" и "анализировать за пределами самого общего понимания" — это глупость?
Re[12]: как определить используемый код
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 17.04.20 18:09
Оценка: :)
Здравствуйте, rg45, Вы писали:

R>Моя младшенькая бьет меня иногда моим же оружием: "Папа, помоги — вот в этом месте какая-то фигня". Смотрю код, а там — ни в сказке сказать, ни пером описать. Смотрю, смотрю... В конце концов не выдерживаю: "а ты что сделать хотела, вообще?" Так она мне в ответ: "учись читать чужой код!"


Ну, сказал бы: "лапа, этот трэш я просто перепишу заново"
Маньяк Робокряк колесит по городу
Re[7]: как определить используемый код
От: rg45 СССР  
Дата: 18.04.20 05:04
Оценка: +1
Здравствуйте, Евгений Музыченко, Вы писали:

R>>И когда программист уходит из конторы, поддержа продукта прекращается?


ЕМ>Если оставшиеся программисты не в состоянии поддерживать продукт — да, примеров достаточно. Чтобы этого не происходило, одни конторы принимают меры, облегчающие программистам понимание и сопровождение чужого (а также и своего) кода, другие — нанимают программистов с развитыми аналитическими способностями.


А бывают еще и третьи конторы — где понимание "чужого" кода считается нормой. Для этого утверждается корпоративный стиль кодирования и на систематической основе проводятся code-review. И процесс поддержки продукта не завязан на авторов кода, коих множество. Вот мне только такие конторы и попадались почему-то. Совпадение, наверное.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 18.04.2020 5:16 rg45 . Предыдущая версия .
как определить используемый код
От: sergey2b ЮАР  
Дата: 10.04.20 14:27
Оценка:
мне надо мигрировать приложение с win на linux
примерно несколько сот тыс строк
состоит из N самописных библиотек (те исходный код доступен) которые в итоге собираються в юинарник

уже понятно что часть кода реально не используеться
есть ли какая либо возможность определить какой код реально используеться в приложении
Re[2]: как определить используемый код
От: sergey2b ЮАР  
Дата: 10.04.20 14:35
Оценка:
Здравствуйте, flаt, Вы писали:

F>Натравить тулзы с code coverage и прогнать софт под как можно большим количеством юзкейсов. Либо тщательно проанализировать код самому. Либо понадеяться, что линкер выкинет лишнее.


а можно название 1-2 таких утилит для примера
я сейчас анализирую но кода овер дофига (хотя некоторые стратегии я придумал)

линкер не вариант тк конечная цель сэкономить время на переноси исходного кода
Re: парсинг map file
От: sergey2b ЮАР  
Дата: 10.04.20 15:32
Оценка:
Здравствуйте, sergey2b, Вы писали:

одна из утилит парсинга http://www.sikorskiy.net/prj/amap/index.html
позволяет сделать примитивный анализ (мне пока хватило для начала)
Re[4]: как определить используемый код
От: K13 http://akvis.com
Дата: 10.04.20 16:15
Оценка:
W>Другое дело, что линкер и прочие map-файлы не смогут обнаружить, например, что реально функция fn в таком фрагменте не вызывается: if (sinf(x) > 2.0f) { fn(); }

W>А source based code coverage как раз разметит, что при использовании программы условие в этой строке не становилось истинным никогда, и соответственно функция fn не нужна (если она больше нигде не вызывается).


"В военное время значение синуса может достигать и четырех!"
А вообще -- есть риск "не поймать" обработчики исключительных ситуаций, например таймаут при запросе в БД, исчерпание места на диске и т.п.
Линкер в этом отношении надежнее: то что он не взял -- портировать не нужно.
Re[3]: как определить используемый код
От: IID Россия  
Дата: 16.04.20 18:14
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Для программиста, независимо от стажа, способность анализировать чужой код, за пределами самого общего понимания, вообще не является профессиональной необходимостью. Профессиональная функция программиста — создавать код, а не "разматывать" его. То есть, если программист способен создать код в рамках заданных условий (задача, время, стоимость, надежность и т.п.) — он однозначно полностью профпригоден. Умение копаться в чужом коде и переделывать его — сугубо дополнительные способности.


Ничего подобного.
Код он не сферический в вакууме. А взаимодействует с другим кодом (ОС, библиотеками и т.д.).
Даже программисту-одиночке придётся изучать документацию, а часто и реализацию того, с чем он работает.

А в командах необходимость понимать чужой код возрастает многократно.

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

Причём заметь, даже пресловутое "самое общее понимание" — оно не возникает внезапно изниоткуда. Это тысячи часов опыта. Когда глядя на код ты сразу понимаешь что и зачем. А не пережёвываешь более низкоуровневые конструкции.
kalsarikännit
Re[4]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.04.20 00:58
Оценка:
Здравствуйте, IID, Вы писали:

IID>Код он не сферический в вакууме. А взаимодействует с другим кодом (ОС, библиотеками и т.д.).

IID>Даже программисту-одиночке придётся изучать документацию, а часто и реализацию того, с чем он работает.

За документацию разговора нет. А вот реализацию приходится изучать исключительно при нехватке документации (если, конечно, не ставится целью сделать "такое же, но с перламутровыми пуговицами").

IID>А в командах необходимость понимать чужой код возрастает многократно.


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

IID>Причём заметь, даже пресловутое "самое общее понимание" — оно не возникает внезапно изниоткуда. Это тысячи часов опыта. Когда глядя на код ты сразу понимаешь что и зачем.


Это не только опыт, но еще и определенным образом устроенные мозги, и определенные склонности. Иначе можно скатиться и до того, что каждый писатель, способный создать качественный роман, должен, лишь глядя на чужое творение (не читая его полностью и вдумчиво), видеть все характеры, сюжетные линии, их возможные нестыковки и т.п.
Re[4]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.04.20 05:33
Оценка:
Здравствуйте, rg45, Вы писали:

R>Тут невольно вспмонилось "чука — не читатель, чукча — писатель..."


Если чукча напишет что-нибудь достаточно дельное, то он таки писатель, увы и ах, даже если и не читал ничего.
Re[5]: как определить используемый код
От: rg45 СССР  
Дата: 17.04.20 06:06
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

R>>Тут невольно вспмонилось "чука — не читатель, чукча — писатель..."


ЕМ>Если чукча напишет что-нибудь достаточно дельное, то он таки писатель, увы и ах, даже если и не читал ничего.


А тут невольно вспоминается другой афоризм — про бабушку и бороду.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re: как определить используемый код
От: rg45 СССР  
Дата: 17.04.20 06:22
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>мне надо мигрировать приложение с win на linux

S>примерно несколько сот тыс строк
S>состоит из N самописных библиотек (те исходный код доступен) которые в итоге собираються в юинарник

S>уже понятно что часть кода реально не используеться

S>есть ли какая либо возможность определить какой код реально используеться в приложении

Я позволю себе слегка отклониться от прямого ответа на прямой вопрос. Нужно иметь в виду, что тот факт, что какой-либо библиотечный код не используется в каком-либо конкретном приложении, не обязательно означает, что данный код бесполезен. Ведь такова природа бибилиотек — служить хранилищем всякой всячины, более или мене полезной, которая когда-нибудь где-нибудь может пригодиться. Линкер сам разберется, что нужно взять из библиотеки для того или иного приложения. Если библиотека нормально структурирована (разбита на объектные модули), то никаких проблем с избыточным размером бинарей не возникает, как правило.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 17.04.2020 6:25 rg45 . Предыдущая версия . Еще …
Отредактировано 17.04.2020 6:23 rg45 . Предыдущая версия .
Re[2]: как определить используемый код
От: sergey2b ЮАР  
Дата: 17.04.20 06:26
Оценка:
Здравствуйте, rg45, Вы писали:


R>Я позволю себе слегка отклониться от прямого ответа на прямой вопрос. Нужно иметь в виду, что тот факт, что какой-либо библиотечный код не используется в каком-либо конкретном приложении, не обязательно означает, что данный код бесполезен. Ведь такова природа бибилиотек — служить хранилищем всякой всячины, более или мене полезной, которая когда-нибудь где-нибудь может пригодиться. Линкер сам разберется, что нужно взять из библиотеки для того или иного приложения. Если библиотека нормально структурирована (разбита на объектные модули), то никаких проблем с избыточным размером бинарей не возникает, как правило.



проблемма не в размере
а в том что я портирую приложение с win на linux
и уже понятно что если я буду портировать все в сроки я не уложусь
Re[3]: как определить используемый код
От: rg45 СССР  
Дата: 17.04.20 06:30
Оценка:
Здравствуйте, sergey2b, Вы писали:

S>проблемма не в размере

S>а в том что я портирую приложение с win на linux
S>и уже понятно что если я буду портировать все в сроки я не уложусь

Да, я понял задачу. Просто наскольно это будет правильно — сделать фильтрацию библиотечного кода на основании лишь использования/неиспользования в одном отдельно взятом приложении? Это набор библиотек создавался только для этого приложения?
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[4]: как определить используемый код
От: sergey2b ЮАР  
Дата: 17.04.20 06:33
Оценка:
Здравствуйте, rg45, Вы писали:

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


S>>проблемма не в размере

S>>а в том что я портирую приложение с win на linux
S>>и уже понятно что если я буду портировать все в сроки я не уложусь

R>Да, я понял задачу. Просто наскольно это будет правильно — сделать фильтрацию библиотечного кода на основании лишь использования/неиспользования в одном отдельно взятом приложении? Это набор библиотек создавался только для этого приложения?



нет 10+ приложений которые мне же придеться портировать
я понимаю вы правы, но реальная жизнь не идеальна

я и так завяз с переписыванием некоторых функций которые писались в расете на винду
Re[7]: как определить используемый код
От: rg45 СССР  
Дата: 17.04.20 09:15
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Ну давайте так: подпишетесь под утверждением, будто любой писатель, востребованный не самой маргинальной частью населения, способен быстро и грамотно анализировать чужие литературные произведения, независимо от их стиля и объема?


А зачем мне подписываться под твоими фантазиями? В метафоре про чукчу речь идет об умении читать и только. На то она и метафора.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 17.04.2020 9:15 rg45 . Предыдущая версия .
Re[8]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.04.20 09:18
Оценка:
Здравствуйте, rg45, Вы писали:

R>В метафоре про чукчу речь идет об умении читать и только. На то она и метафора.


Тогда и не стоило ее развивать с двусмысленными намеками.
Re[7]: как определить используемый код
От: reversecode google
Дата: 17.04.20 09:31
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Здравствуйте, rg45, Вы писали:


R>>А тут невольно вспоминается другой афоризм — про бабушку и бороду.


ЕМ>Ну давайте так: подпишетесь под утверждением, будто любой писатель, востребованный не самой маргинальной частью населения, способен быстро и грамотно анализировать чужие литературные произведения, независимо от их стиля и объема? То есть, сможет, бегло пробежавшись по тексту, выписать характеры персонажей, отметить возможные противоречия, нарисовать граф сюжетных линий, опять же выделив возможные нестыковки, очертить блоки повествования, классифицировать произведение по стилям и т.п.


у вас есть в друзьях такие проф писатели ?
уверен что нет
поэтому заниматься фантазированием не будем


ЕМ>Ну и до кучи: сможет ли любой успешный террорист без дополнительной подготовки столь же хорошо выполнять контртеррористическую работу?


у вас есть террорестический опыт ?

уверен что тоже нет
а то что делаете вы это уводите тему в сторону да еще и не удачными примерами

а теперь видимо вы готовы рассказать нам форумчанам какими же умениями и знаниями должен обладать программист с 10 лет опыта ?

ну и как вы говорите до кучи
git ls-files | xargs cat | wc -l
что бы каждый смог оценить свои и другие проекты что бы иметь представление сколько же это 100kloc
Re[10]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 17.04.20 09:56
Оценка:
Здравствуйте, rg45, Вы писали:

R>программист не умеющий анализировать чужой код, очень похож на чукчу из известного анектода.


Совсем не умеющий — похож. Так или иначе анализировать способен любой программист. Однако, делать это на уровне "как дышать" (ну, или как читать запоем тот же роман) — далеко не каждый. Для этого нужно иметь определенным образом устроенный мозг, а не только знания и опыт.
Re[3]: как определить используемый код
От: rg45 СССР  
Дата: 17.04.20 17:25
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Для программиста, независимо от стажа, способность анализировать чужой код, за пределами самого общего понимания, вообще не является профессиональной необходимостью. Профессиональная функция программиста — создавать код, а не "разматывать" его. То есть, если программист способен создать код в рамках заданных условий (задача, время, стоимость, надежность и т.п.) — он однозначно полностью профпригоден. Умение копаться в чужом коде и переделывать его — сугубо дополнительные способности.


А поддержка программного продукта это чья функция — не программиста? Кто должен разгребать баги с продакшена?
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 17.04.2020 17:26 rg45 . Предыдущая версия .
Re[4]: как определить используемый код
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 17.04.20 18:07
Оценка:
Здравствуйте, IID, Вы писали:


M>>За пару лет управится


IID>Отставить панику.





IID>Лично портировал 5,8мб исходников (плюс либы типа OpenSSL, Jpeg и т.д.) с Lin на Win. Точнее добавлял ещё одну платформу для запуска.

IID>ХЗ сколько там строк. Наверное раза в 2 побольше чем 100к.
IID>Приложение под Linux Box, с кучей UI на OpenGL.

Уже под Linux — +1

IID>Очень повезло что:


Да, повезло

IID>- приложение уже содержало 2 платформы: Desktop и Embedded Linux. И было поделено на слои. Для GL/GLES сущностей существовали обёртки. Пришлось только часть Posix вызовов проэмулировать с помощью Win32, причём для некритических я сильно не заморачивался.


Вооот, уже 1) платформозависимый код выделили в отдельные подсистемы до тебя; 2) Posix прост как валенок по сравнению с богатством виндовых API => порт Posix->Win32 на порядок проще, чем порт Win32->Posix


IID>- в консоль Win10 завезли флаг поддержки Escape последовательностей VT100 — логи в терминале раскрасились сами собой. А логирования там просто дохрена.


О, а это интересно. Я себе делал вывод сообщений в консоль, для вывода в виндовую консоль использовал виндовые функции работы с цветами консоли, а для MinGW-шного баша использовал Escape последовательности.
Хотя у меня под любой виндой работает, но пришлось поискать, из под какого процесса меня запускали.

А десяточная консоль вообще без приседаний понимает escape'ы?
Кстати, раз зашла речь про Escape последовательности — может в курсе, как там в линупсе, при перенаправлении в файл кто их стрипает? Я сделал проверкой, является ли консольный хэндл файловым, или как-то так, и в зависимости от этого раскрашиваю или нет. Так себе решение, но работает.
И призовой вопрос — почему под виндой если я в MinGW-баше запускаю гит, то он вывод раскрашивает, а если я из своей проги запускаю гит, и свою прогу запускаю под тем же башем, то вывод выдается унылый одноцветный?

IID>Справился где-то за неделю. Получил возможность собирать, запускать и отлаживать прямо из студии.


Обратная задача посложнее, на мой взгляд. Конечно, зависит от сложности системы в целом и от того, насколько Win API использовано по полной, но имхо раз в несколько будет посложнее
Маньяк Робокряк колесит по городу
Re[8]: как определить используемый код
От: sergey2b ЮАР  
Дата: 17.04.20 18:09
Оценка:
Здравствуйте, reversecode, Вы писали:

R>ну и как вы говорите до кучи

R>git ls-files | xargs cat | wc -l
R>что бы каждый смог оценить свои и другие проекты что бы иметь представление сколько же это 100kloc

я некогда не задумывался сколько там кода на самом деле, тк код на stl портируеться легко
порция на эту неделю которую я еще не завершил 2319182 строк (сколько то можно вычисть make files)
Re[4]: как определить используемый код
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 17.04.20 18:14
Оценка:
Здравствуйте, Bill Baklushi, Вы писали:

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


BB>Неумение читать код, это профнепригодность. Дали тебе задачу передвинуть кнопку на форме, и ты сядешь всё с нуля переписывать?


Есть код, который проще переписать, чем понять, что он делает. У нас чел уволился из другого отдела, полтора года прошивку писал, под линупсом, в эклипсе. А у нас в отделе все технологии под кейл заточены, и под винду все, включая кучу полезного технологического софта. Это гавно на меня скинули, ну и отправили меня в командировку в Феодосию по этой теме. Так вот я там, сидя в горящем танке и положив ноут на сапоги убитого друга, переписал всё за две недели, прошерстив схемоту и пообщавшись с наладчиками системы
Маньяк Робокряк колесит по городу
Re[13]: как определить используемый код
От: rg45 СССР  
Дата: 17.04.20 18:35
Оценка:
Здравствуйте, Marty, Вы писали:

M>Ну, сказал бы: "лапа, этот трэш я просто перепишу заново"


Это мы тоже проходили
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[5]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.20 00:49
Оценка:
Здравствуйте, Marty, Вы писали:

M>я там, сидя в горящем танке и положив ноут на сапоги убитого друга, переписал всё за две недели


Надежный танк, однако, коли за две недели дотла не сгорел.
Re[4]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.20 01:38
Оценка:
Здравствуйте, rg45, Вы писали:

R>А поддержка программного продукта это чья функция — не программиста?


Собственные творения обязан понимать и уметь чинить любой — хоть программист, хоть слесарь.
Re[5]: как определить используемый код
От: rg45 СССР  
Дата: 18.04.20 04:50
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

R>>А поддержка программного продукта это чья функция — не программиста?


ЕМ>Собственные творения обязан понимать и уметь чинить любой — хоть программист, хоть слесарь.


И когда программист уходит из конторы, поддержа продукта прекращается?
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[6]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.20 05:00
Оценка:
Здравствуйте, rg45, Вы писали:

R>И когда программист уходит из конторы, поддержа продукта прекращается?


Если оставшиеся программисты не в состоянии поддерживать продукт — да, примеров достаточно. Чтобы этого не происходило, одни конторы принимают меры, облегчающие программистам понимание и сопровождение чужого (а также и своего) кода, другие — нанимают программистов с развитыми аналитическими способностями.
Re[8]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.20 05:16
Оценка:
Здравствуйте, rg45, Вы писали:

R>А бывают еще и третьи конторы — где понимание "чужого" кода считается нормой. Для этого утверждается корпоративный стиль кодирования и на систематической основе проводятся code-review.


Маленькое уточнение: понимание считается нормой до введения указанных мер, или после того, как они возымели действие? То есть, в какой доле контор к каждому из программистов предъявляется требование быстро и правильно понимать любой код, независимо от того, кем, когда и для чего он был создан?
Re[9]: как определить используемый код
От: rg45 СССР  
Дата: 18.04.20 05:24
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

R>>А бывают еще и третьи конторы — где понимание "чужого" кода считается нормой. Для этого утверждается корпоративный стиль кодирования и на систематической основе проводятся code-review.


ЕМ>Маленькое уточнение: понимание считается нормой до введения указанных мер, или после того, как они возымели действие?


Странно ты вопрос ставишь. Указаныые меры введены потому что понимание считается нормой. А не "до" или "после".

R>То есть, в какой доле контор к каждому из программистов предъявляется требование быстро и правильно понимать любой код, независимо от того, кем, когда и для чего он был создан?


Во всех, которые я видел. Все коммерческие фирмы существуют ради получения прибыли от производимого продукта. А содержание гениев, творящих шедвры, это уже не коммерция, а что-то другое.
--
Не можешь достичь желаемого — пожелай достигнутого.
Re[10]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 18.04.20 07:30
Оценка:
Здравствуйте, rg45, Вы писали:

R>Указаныые меры введены потому что понимание считается нормой.


Если бы понимание (снова уточню: достаточно быстрое и точное, а не абы какое) чужого кода (который, прежде всего, основан на чужом мышлении, чужом подходе, чужом стиле, чужом формате и т.п.) считалось (и являлось) нормой, то не было бы явной нужды в унификации этих самых подходов, стилей, форматов и прочего. Нравится одному писать по три goto на странице — и ради бога, любому понятно. Нравится другому записывать по нескольку составных операторов в одну строку — и это ради бога, любой махом разберется. Однако ж, зачем-то всю эту унификацию и стандартизацию поддерживают. Так зачем?

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


То есть, с одной стороны, по-Вашему получается, что способности любого программиста к разгребанию и поддержке чужого кода, независимо от его качества, должны быть примерно равны его способностям к производству собственного. А с другой стороны, типовой программист, содержание которого экономически выгодно, с разгребанием произвольного кода, внезапно, справляется плохо, и почему-то нуждается в костылях вроде подробной документации, внятных комментариев, грамотного структурования, хорошего стиля и т.п. Мне в этом видится явное противоречие, а Вам?
Re[11]: как определить используемый код
От: rg45 СССР  
Дата: 18.04.20 07:50
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

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


"Примерно равны", "подробная документация", "внятные комментарии", "костыли" — это откуда все взялось? Я сказал только то, что сказал. И избавь меня, пожалуйста, от необходимости отстаивать твои домыслы.
--
Не можешь достичь желаемого — пожелай достигнутого.
Отредактировано 18.04.2020 8:00 rg45 . Предыдущая версия . Еще …
Отредактировано 18.04.2020 7:53 rg45 . Предыдущая версия .
Re[5]: как определить используемый код
От: IID Россия  
Дата: 18.04.20 21:02
Оценка:
Здравствуйте, Marty, Вы писали:

M>Уже под Linux — +1


Не знаю в чём ты увидел плюс.

M>Вооот, уже 1) платформозависимый код выделили в отдельные подсистемы до тебя;


далеко не весь

M>2) Posix прост как валенок по сравнению с богатством виндовых API => порт Posix->Win32 на порядок проще, чем порт Win32->Posix


ой не скажи...
как начнутся танцы с форками, сигналами, потоками и синхронизацией — простота тут же испарится.
а если tty-specific вещи то выключайте свет, кидайте бомбы.

M>А десяточная консоль вообще без приседаний понимает escape'ы?


Только флаг выставить.

M>Кстати, раз зашла речь про Escape последовательности — может в курсе, как там в линупсе, при перенаправлении в файл кто их стрипает?


Вот видишь! А это только самая верхушка TTY айсберга. Попробуй сделать полноценный remote shell, чтобы и ^ ввод работал, и ncurses приложения — и на..программируешься и напляшешься.
Я не разбирался, но считаю что они просто перестают генериться, если выходной файл их не поддерживает. Проверка: какой-нить посылкой ioctl в out-хендл.
Например dmesg имеет параметр -L/--color. Пайпинг приводит к пропаданию цвета. Смена auto на always ВНЕЗАПНО возвращает ESC последовательности на выходе из пайпа.

M>Я сделал проверкой, является ли консольный хэндл файловым, или как-то так, и в зависимости от этого раскрашиваю или нет. Так себе решение, но работает.


Параметр добавил ?

M>И призовой вопрос — почему под виндой если я в MinGW-баше запускаю гит, то он вывод раскрашивает, а если я из своей проги запускаю гит, и свою прогу запускаю под тем же башем, то вывод выдается унылый одноцветный?


Зачем нужен MinGW баш, когда есть WSL ?
kalsarikännit
Re[6]: как определить используемый код
От: Marty Пират https://www.youtube.com/channel/UChp5PpQ6T4-93HbNF-8vSYg
Дата: 18.04.20 22:11
Оценка:
Здравствуйте, IID, Вы писали:

M>>Уже под Linux — +1


IID>Не знаю в чём ты увидел плюс.


M>>Вооот, уже 1) платформозависимый код выделили в отдельные подсистемы до тебя;


IID>далеко не весь


Но это уже хоть что-то, по сравнению с портом нативного виндового в POSIX


M>>2) Posix прост как валенок по сравнению с богатством виндовых API => порт Posix->Win32 на порядок проще, чем порт Win32->Posix


IID>ой не скажи...

IID>как начнутся танцы с форками, сигналами, потоками и синхронизацией — простота тут же испарится.

POSIX таки проще сделать через WinAPI, чем WinAPI через POSIX. Даже с танцами


IID>а если tty-specific вещи то выключайте свет, кидайте бомбы.


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


M>>А десяточная консоль вообще без приседаний понимает escape'ы?


IID>Только флаг выставить.


Что за флаг?


M>>Кстати, раз зашла речь про Escape последовательности — может в курсе, как там в линупсе, при перенаправлении в файл кто их стрипает?


IID>Вот видишь! А это только самая верхушка TTY айсберга. Попробуй сделать полноценный remote shell, чтобы и ^ ввод работал, и ncurses приложения — и на..программируешься и напляшешься.


Ну, если полноценный remote shell — неотъемлемая и/или ключевая часть проекта — то да. Иначе — можно просто выкинуть всё вот это


IID>Я не разбирался, но считаю что они просто перестают генериться, если выходной файл их не поддерживает. Проверка: какой-нить посылкой ioctl в out-хендл.

IID>Например dmesg имеет параметр -L/--color. Пайпинг приводит к пропаданию цвета. Смена auto на always ВНЕЗАПНО возвращает ESC последовательности на выходе из пайпа.

M>>Я сделал проверкой, является ли консольный хэндл файловым, или как-то так, и в зависимости от этого раскрашиваю или нет. Так себе решение, но работает.


IID>Параметр добавил ?


Нет. Автодетект. В линупсовой версии isatty или как-то так, в виндовой — как-то аналогично над хэндлом stdio сделал.
Особых требований не было, просто для своих утилит решил вывод подраскрасить, если что-то пошло не так. Никаких пайпов и ничего какого-то сложного не предполагалось, кроме перенаправления в файл


M>>И призовой вопрос — почему под виндой если я в MinGW-баше запускаю гит, то он вывод раскрашивает, а если я из своей проги запускаю гит, и свою прогу запускаю под тем же башем, то вывод выдается унылый одноцветный?


IID>Зачем нужен MinGW баш, когда есть WSL ?


Семерка, сэр
Маньяк Робокряк колесит по городу
Re[7]: как определить используемый код
От: Privalov  
Дата: 19.04.20 08:56
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Если оставшиеся программисты не в состоянии поддерживать продукт — да, примеров достаточно. Чтобы этого не происходило, одни конторы принимают меры, облегчающие программистам понимание и сопровождение чужого (а также и своего) кода, другие — нанимают программистов с развитыми аналитическими способностями.


Не понимаю, о каких оставшихся программистах идет речь. Я видел проект, который начинался в середине 70-х. До сих пор активно пилится.
Это я в самом дечале карьеры хотел все, что видел, к чертям переписать.
Однажды поучастствал в таком переписывании.
Re[8]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 19.04.20 09:13
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Не понимаю, о каких оставшихся программистах идет речь. Я видел проект, который начинался в середине 70-х. До сих пор активно пилится.


Вот теми, кто не помер с тех времен, и пилится.
Re[9]: как определить используемый код
От: Privalov  
Дата: 19.04.20 09:27
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Вот теми, кто не помер с тех времен, и пилится.


В том-то и дело, что нет.

Мне, кстати, тоже довелось однажды участвтвать в проекте, начавшемся, по слухам, до моего рождения или около того. Вот в нем были фрагменты, с которыми я не разобрался. Суровый матан, минимизация довольно злобного функционала, ссылку на математику авторы почему-то не оставили. Плюс идентифиикаторы, читаемые только математиками.
Re[10]: как определить используемый код
От: Евгений Музыченко Франция https://software.muzychenko.net/ru
Дата: 19.04.20 10:34
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Вот в нем были фрагменты, с которыми я не разобрался. Суровый матан, минимизация довольно злобного функционала, ссылку на математику авторы почему-то не оставили. Плюс идентифиикаторы, читаемые только математиками.


По версии reversecode
Автор: reversecode
Дата: 10.04.20
выходит, что Вы профнепригодны. Ну и я, разумеется, тоже — бывает, что в упор не могу уяснить, как именно работает код всего из нескольких тысяч строк, чтобы в голове сформировалась цельная картинка. Банально уставал отслеживать переходы внутри мелких подпрограмм с неясным (для меня) смыслом. "Угадал все буквы, не смог прочитать слово". Взялся бы скрупулезно все выписывать, рисовать граф переходов и зависимостей, использовал бы какие-то технические средства анализа — скорее всего, преуспел бы. Но терпения и усидчивости, при отсутствии насущной потребности, не хватало. Не моё.
Отредактировано 19.04.2020 10:35 Евгений Музыченко . Предыдущая версия .
Re[11]: как определить используемый код
От: Privalov  
Дата: 19.04.20 10:59
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>По версии reversecode
Автор: reversecode
Дата: 10.04.20
выходит, что Вы профнепригодны. Ну и я, разумеется, тоже — бывает, что в упор не могу уяснить, как именно работает код всего из нескольких тысяч строк, чтобы в голове сформировалась цельная картинка. Банально уставал отслеживать переходы внутри мелких подпрограмм с неясным (для меня) смыслом. "Угадал все буквы, не смог прочитать слово". Взялся бы скрупулезно все выписывать, рисовать граф переходов и зависимостей, использовал бы какие-то технические средства анализа — скорее всего, преуспел бы. Но терпения и усидчивости, при отсутствии насущной потребности, не хватало. Не моё.


Опять же все сильно зависит от предметной области. Суровый матан — вещь специфическая. Там без бутылки первоисточников не разобраться. И даже если они есть, надо знать не только матан, но и принципы именования математиками функций и переменных.

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

Граф переходов и зависимостей мне в свое время тоже пришлось делать. Но там тема знакомая была: принять из сокета, записать в БД, выполнив по дороге какие-то проверки.

И раз участвовал в полном переписывании проекта с отстойных инструментов и языков 80-х на передовые. Ну там только некоторые структуры были нужны. Остальное делали по документации.
Re[7]: как определить используемый код
От: IID Россия  
Дата: 19.04.20 20:13
Оценка:
Здравствуйте, Marty, Вы писали:

M>>>2) Posix прост как валенок по сравнению с богатством виндовых API => порт Posix->Win32 на порядок проще, чем порт Win32->Posix


IID>>ой не скажи...

IID>>как начнутся танцы с форками, сигналами, потоками и синхронизацией — простота тут же испарится.

M>POSIX таки проще сделать через WinAPI, чем WinAPI через POSIX. Даже с танцами


Опять 25.
Нет, не проще.
fork ты через WinAPI не сделаешь никогда. Через NativeAPI — да, можно. Эту фичу винда поддерживала с рождения, т.к. подсистем там было изначально 3: WinAPI, posix, OS/2.


M>>>А десяточная консоль вообще без приседаний понимает escape'ы?

IID>>Только флаг выставить.
M>Что за флаг?

MSDN

M>Ну, если полноценный remote shell — неотъемлемая и/или ключевая часть проекта — то да. Иначе — можно просто выкинуть всё вот это


unixway


IID>>Например dmesg имеет параметр -L/--color. Пайпинг приводит к пропаданию цвета. Смена auto на always ВНЕЗАПНО возвращает ESC последовательности на выходе из пайпа.

M>>>Я сделал проверкой, является ли консольный хэндл файловым, или как-то так, и в зависимости от этого раскрашиваю или нет. Так себе решение, но работает.

IID>>Параметр добавил ?


M>Нет. Автодетект.


Пля.
Читай что я пишу!
Параметр — для НАСИЛЬНОГО отключения говно-детектов.

M>В линупсовой версии isatty или как-то так, в виндовой — как-то аналогично над хэндлом stdio сделал.


Ты даже не потрудился посмотреть как оно работает...
Два запроса в гугл:

isatty -> _tcgetattr -> ioctl.

Ровно то, о чём я выше говорил:

IID>>Я не разбирался, но считаю что они просто перестают генериться, если выходной файл их не поддерживает. Проверка: какой-нить посылкой ioctl в out-хендл.


Зри в корень блин!


M>Семерка, сэр

Ешьте кактусы сами.
kalsarikännit
Re[7]: как определить используемый код
От: IID Россия  
Дата: 20.04.20 06:12
Оценка:
Здравствуйте, Евгений Музыченко, Вы писали:

ЕМ>Ну давайте так: подпишетесь под утверждением, будто любой писатель, востребованный не самой маргинальной частью населения, способен быстро и грамотно анализировать чужие литературные произведения, независимо от их стиля и объема? То есть, сможет, бегло пробежавшись по тексту, выписать характеры персонажей, отметить возможные противоречия, нарисовать граф сюжетных линий, опять же выделив возможные нестыковки, очертить блоки повествования, классифицировать произведение по стилям и т.п.


Воу-Воу! Полегшэ!
Большинству достаточно что убийца дворецкий. Накрайняк сбоку припишут своё, что сосед-Мойша напел.
kalsarikännit
Re[2]: как определить используемый код
От: 3V Россия  
Дата: 20.04.20 16:51
Оценка:
Здравствуйте, flаt, Вы писали:

F>линкер выкинет лишнее.

^^^ это
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.