У каждого программиста есть личные проекты из разряда хобби. Со временем они теряют актуальность, перестают работать в новом окружении, начинают захламлять файловую систему. Но стереть или потерять их, тем не менее, жалко. Остается уделить им внимание в последний раз.
Мы должны их похоронить!
Прошло полгода после двух удачных проектов на Ардуино (декоративное освещение), а руки и
Ответ на вопрос «почему?» искал на различных форумах и выяснил, что, во-первых, DIP-корпусы неуклонно теряют популярность двадцать лет как; что сейчас, если очень нужно DIP, то проще и дешевле будет купить переходники SOIС-DIP к SMD-микроконтроллерам. И, во-вторых, что ситуация с дефицитом ATTiny всех утомила и что сейчас модно STM8.
В голове возник образ умирающей платформы ATMega/ATTiny. И тут я понял, что должен буду похоронить свои проекты. И понял, каким образом.
С золотом и слугами
Зачем столько пафоса? Потому что главная идея — сбросить их вместе с используемыми фреймворками, библиотеками, средами разработки, диаграммами и текстурами, с утилитами и серийными номерами к ним, если понадобится, то и с операционными системами.
А если проект использовал систему контроля версий, то следует сделать импорт в Mercurial, экспорт в bundle, и его туда же, на вынос. Вместе с дистрибутивом hg, разумеется.
Что еще понадобится… Скриншот программы при жизни. Если найдется. Тэги. Тэги организовал в виде имен файлов в корневой папке: наглядно и кросс-платформенно. И банальный README, похоже.
Место под кладбище
К сожалению, Google Drive, видимо самое надежное хранилище из доступных, не подошел для моих целей. Как раз от локальной копии старых проектов я хотел избавиться, хотел оставить старые файлы в покое, избавить их от синхронизаций и прикасаний, отделить от живых проектов и документов.
По тем же причинам решил отказаться от хранения в репозитариях. Более того, нельзя доверять репозитариям, я лично наблюдал за восходом и закатом трех систем: CVS, VSS и SVN.
Поэтому — CD-R и коробка из-под обуви под кроватью. Когда умрут и закончатся CD-R, перейду на DVD-R. Когда закончатся они, коробка будет пополняться флешками, SD-карточками, а затем и microSD, nanoSD и picoSD.
Кроме того, прожиг CD-R — довольно-таки символичен, а мультисессионность сделает их похожими на старые европейские кладбища.
От слов к делу
В качестве примера хотел бы привести свой небольшой проект на JavaME — таймер для игры "Есть контакт" — под мобильный телефон Motorola L2, но не нашел к нему даже исходников, одни лишь готовые файлы для установки на телефон. Нет и соответствующей JDK, нет и эмулятора с отладчиком от Motorola. Пример того, что будет с проектом, если его правильно не похоронить.
Чуть более везучий — проект Majordomo на Perl-е: ICQ-бот, ведущий учет предстоящих мероприятий для друзей и потерявший актуальность с приходом Фейсбука и дешевого интернета.
В папку на прожиг попадают ветки majordomo-dev и majordomo-production. Теги такие: _bot, _icq, _internet, _perl (в алфавитном порядке). В папку с дистрибутивами попадает ActivePerl-5.10.1.1006-MSWin32-x86-291086.msi и чудом найденный скомпиллированный под эту версию модуль OSCAR.pm. В качестве скриншота кладу историю общения с этим ботом из логов QIP. Записываю пару строчек в файле README.txt. И вот, один проект готов к погребению.
Три вечера потратил на упорядочивание старых проектов. Потом был финальный прожиг. Простенькая «Мои старые проекты» маркером на диске, бумажный конверт и место в коробке под кроватью. Среди аудиокассет для ZX Spectrum.
Автор: 0x3f00