Последние почести старым проектам

в 19:32, , рубрики: backup, diy или сделай сам, история, Песочница, метки: ,

У каждого программиста есть личные проекты из разряда хобби. Со временем они теряют актуальность, перестают работать в новом окружении, начинают захламлять файловую систему. Но стереть или потерять их, тем не менее, жалко. Остается уделить им внимание в последний раз.

Мы должны их похоронить!

Прошло полгода после двух удачных проектов на Ардуино (декоративное освещение), а руки и мозг требовали продолжения возни с паяльником. Я долго держался, но в итоге поддался на третий проект (считыватель ключей-таблеток к домашней сигнализации) и решил использовать в нем ATTiny85 с восемью ножками в качестве микроконтроллера. Этого чипа не было в радиомагазинах моего города. Не было его и на eBay. Прождал два месяца, ситуация не изменилась. Пустился в авантюру и завел счет у посредника торговой площадки Taobao, но этих чипов не было и в Китае! Были только ATTiny25v-10PU, да и те втридорога.

Ответ на вопрос «почему?» искал на различных форумах и выяснил, что, во-первых, 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


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js