Pull to refresh
94
0
Mercury13 @Mercury13

Программист на «си с крестами» и не только

Send message
У меня мультимедийная клавиатура. А кнопки (у меня G5) — вперёд, назад, быстрая прокрутка вверх и быстрая прокрутка вниз.

Но всё равно классно, что сумел сделать то же в линуксе. А уж там, думаю, можно навесить что угодно.
Что за 47-м советом?
1. Принудительный вывод из коммерческой тайны. Джефферсон для этого придумал патенты. Мы это делаем полицейскими мерами.
2, 5. И всё равно: как будто государству делать нехрѣнъ, только бы поддерживать архив исходников! К тому же эксперт должен проверить, что это ЧЕЛОВЕКОЧИТАЕМЫЙ исходник, а не выход препроцессоров и обфускаторов, компилирующийся в ТОТ ЖЕ бинарник. Например, исходник SQLite — это почти сотня файлов, для удобства прикладного программиста автоматически объединяемая в 5-мегабайтного монстра.
6. Unreal и Another World целиком написаны на скриптовом языке. В Doom уровень состоит из 10 блоков; в Hexen добавился одиннадцатый, BEHAVIOR — байт-коды скриптов. Что это: код или данные?

По поводу компиляции в тот же бинарник далее. Вы знаете, что такое компиляция на основе профиля? Компилируем специальную версию, гоняем тестовые примеры, программа сохраняет простыню статистики. На основе этой простыни компилируем новую версию. Без этой «простыни» не будет того же бинарника. А если среда автоматически добавляет дату-время сборки? Тогда В ПРИНЦИПЕ две компиляции не дадут одного и того же exe’шника!
Страшненько. И смешно.
1. Но она защищается другим механизмом — коммерческой тайной. «Интеллектуальная собственность» — это не только копирайт, но и коммерческая тайна, патенты, промышленные образцы, товарные знаки. Вы ещё скажите: через 7 лет лишить Windows флага, BMW — пропеллера, а Mercedes — звезды.
2. Если отдавать исходники Windows XP (которые до момента принудительного открытия коммерческая тайна) госслужащему на ответственное хранение, кому-то да и выболтают.
5. Единственный способ подтвердить, получается ли из исходников данный файл,— откомпилировать и сравнить. Причём соответствующей версией компилятора. С чистой машины. И то нет гарантии, что будет байт в байт: а вот возьмёт сборщик и чуть в другом порядке соберёт, поскольку у проверяющего на машине другая файловая система. Компиляторы бывают дорогие. Intel C++ 1100$ на одну машину, Embarcadero Delphi столько же. А без них не продемонстрируешь, что исходники правильные. Ещё один пример — QIP. Одна из версий QIP’а вышла заражённая вирусом Induc. Повторно заражать комп как-то не хочется, а на чистой машине выйдет совсем другой бинарник.
6. Я клоню вот к чему. Исходники есть и для файлов данных. Какой-нибудь «эксперт» привяжется к какому-нибудь файлу данных, который вы писали в hex-редакторе, и скажет: «Это не человекочитаемая версия, где исходник?» Вот и будут требовать то, чего нет.

В общем, легко устроить «партию калькуляторов», которая на каждом углу будет выкрикивать лозунг: «Отнять и разделить!» Сложнее, придя к власти, построить работающую конструкцию.

Я думаю, единственный способ объединить короткий копирайт и длинные сроки поддержки таков. Пусть автор САМ определяет рамки «продукта». Новый продукт становится новым объектом копирайта с новым сроком. И, например, с 2013-го уже можно использовать Windows XP исходную, но SP1 остаётся под копирайтом.
1. А если среда и окружение — коммерческая тайна?
Пример из собственной жизни. На многих мобильниках есть особые требования к файлам JAD и Manifest. Например, не должно быть — или, наоборот, должен быть — символ CR. Или нужна какая-то хитрая строчка, например, для задания высокого разрешения экрана. Или старая версия zlib и, соответственно, kzip иногда даёт сбои. Чтобы портировщики не вдумывались в эти особенности, я придумал утилиту сборки — пишем, например, что мобильник «MotC650», и она вставляет файлы именно для него. Утилиту начальство, естестенно, объявило тайной. А ещё у нас был редактор спрайтов, автоматически экспортировавший константы.
2. Помните Вассермана? Любой, кто распоряжается крупными чужими ценностями,— мишень для коррупции. Windows XP — буквально миллиарды долларов.
3. «Взвод» имеется в виду «подразделение из трёх отделений, около 30 человек». Три взвода составляют роту.
4. А если исходники в буквальном смысле потерялись? В таком случае любой недоброжелатель будет готов съесть афтара несчастной забытой утилитки. Да устроить ему маски-шоу — просто чтобы он остался вообще без компьютера. А если это не «несчастная забытая утилитка», а glDoom — подававший надежды порт Doom’а, потерянный после полугода разработки?
5. А теперь, представьте себе, утёк Source Filmmaker. Прошло семь лет. Исходники надёжно хранятся, как в любой уважающей себя фирме. Сто тысяч версий. Но из-за того, что компиляторы прогрессируют, дело было давно и хрен его знает, какая версия из сотни тысяч утекла, не представляется возможным скомпилировать в тот же до байта код. Что с этим делать? Повторяю, адвокастию разводить не стоит и должен быть формальный способ проверить, тот исходник или нет.
6. А если какой-то файл (например, не исполняемый, а данных) строили вручную, двоичным редактором? Кто поверит, что он сам себе исходник? Или, например, испытываем поведение СУБД на поломанных файлах — создали файл, изменили вручную пару важных байт — получается, у файла тоже нет исходника.
По поводу принудительного открытия исходников есть вопросы.
1. Кто будет гарантировать, что открытые исходники компилируются ровно в те бинарники, которые были выпущены раньше, без всяких закладок?
2. …Что вообще компилируются?
3. А если исходники взяли и потерялись? Что, такого не бывает? Кто проверит, что они действительно потерялись?
4. Возьмём критическое ПО наподобие ОС и браузеров. Как только исходники выпустят, на ПО обрушатся такие атаки, что мало кто выдержит. Чтобы создать эксплойт, достаточно одного человека нужной квалификации. Чтобы «устаканить» проект, подготовить новый конвейер компиляции и т.д., нужно время. А во время переходного процесса придётся выискивать по сайтам одиночек никем не проверенные патчи наподобие «powder’s Winsock».
5. Кроме того, придётся что-то поделать с режимом коммерческой тайны. Вы никогда не подписывались под списком материалов, являющихся коммерческой тайной? Сами исходники. Утилиты для сборки. А что делать с утёкшей засекреченной программой? Например, Source Filmmaker до официального выхода в 2012-м?
6. Какова процедура принудительного открытия исходников? Взводом внутренних войск?
Хотя… может, и возникнут спецы, задача которых — именно каждый год готовить такие сборки, чтобы семь лет спустя они стали копирайтно-чистыми. Но и тут есть подвох: как доказать, что у меня «чистая» сборка за декабрь 2005-го, если ХРюня всё ещё не снята с поддержки?
Это только в нашем повальном пиратстве на рабочих местах «креативщиков» ПО служит недолго. В местах, где человек не вмешивается — по сроку службы оборудования (подчас десятилетиями). На рабочих местах в отлаженном процессе (например, в магазинных кассах) — пока вообще данная ОС поддерживается.

Почему я упомянул ХРюню? А потому, что у неё намечается около 14 лет поддержки. А потому, что ОСь на редкость удачная и только спустя 8 лет вышло что-то пристойное. Представьте себе, через семь лет пользователей ХРюни бросают на произвол судьбы, оставив с тормозной Вистой: плати за новую ОС, плати за новый парк компьютеров. А ещё где-то есть программа с путаными исходниками, написанная под 95-ю, которая на ХРюне чудом работает, а на Висте — отказывается. А ещё появился Conficker.

С одной стороны, если считать дату копирайта по последнему изменению, службы автоматического обновления могут продлить копирайт навечно — достаточно где-то поменять пару незначащих байт. А копирайтно-чистую версию системы (с обновлениями 7-летней давности) собрать будет очень трудно. Если считать дату копирайта по первому выходу — многое что из коммерческого опенсорса давно уже должно было стать всеобщим достоянием (и, снова-таки, для ПО с закрытым кодом обход очевиден, переименовать и перескиновать продукт, стерев всю преемственность).

Так что возникает вопрос: какие изменения в ПО продлевают копирайт, а какие — нет? Всё это должно быть предельно формально, чтобы в дополнение к копирастии не разводить адвокастию.
Я бы, конечно, поднял срок, как минимум для ПО. Ибо возникают вопросы с ПО, у которого иногда сроки поддержки 10 и более лет. Я бы не дробил крупный программный пакет (например, Windows XP) на части в зависимости от срока обновления — обходится элементарно и только мешает пользователю. По той же причине я бы не продлевал копирайт при обновлении Windows. Заявлять, например, что у программы 15 лет поддержки? А как определить, насколько поддержка добросовестна?

Но 25 лет бесплатно и автоматически — по-моему, край.
А, догадываюсь, как это получилось. PSD, созданным украинским фотошопом, открыли фотошопом русским.
Хороша локализация: названия слоёв украинские, названия эффектов русские. Потому и спросил: а может, локализованный не фотошоп, а PSD?
Что это за полуукраинский фотошоп?
Или художник ручками автоматические имена переводил с русского на украинский?
В статье пишут, что «уже при напряжении 1,4 В появляется водород, что маловато для разложения воды». И упоминается моча. Да и если положительное энергетическое сальдо есть — значит, не одной водой всё ограничивается. Впрочем, вам как химику лучше знать.
Как не так? По источнику, там используется электрохимическое окисление мочевины никелем.
Не спрашивайте у меня, что это такое, я просто перевёл то, что на самом деле в источнике.
Тут ошибка перевода. Если зайдёте на источник, увидите, в чём штука: водород-то добывают не из воды, а из мочевины.
С одной стороны, и правильно, что отличили двоичный мегабайт от десятичного. Но название  «мебибайт» — кошмар.

Да, если придумаете, где нужны именно 220 пикселей, а не 1 млн. — называйте это мебипиксель. Вы соврешенно правы.
А вдруг? Я лично не очень любил старкрафт и никем, кроме протосов, играть вообще не умел.
Почти что Protoss Dragoon! Кто играл, те знают: драгуны не поворачиваются, а просто идут, куда хотят.
Потому что настоящий веб-сервер — штука сложная. Пусть постановкой запросов в очередь, безопасностью и т.д. занимается профессионально написанный сервер, а генерацией страниц — простенькая программа, ненамного сложнее PHP-скрипта.

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity