четверг, 16 июля 2015 г.

Даже не знаю, прочтет ли кто-нибудь эти строки

Обычно я не пишу ничего про художественные книги, но не могу не поделиться впечатлениями о книге Марсианин, которую написал программист Энди Вейр (Andy Weir). В этом году по ней выходит фильм, но несомненно эту историю лучше прочитать, так как в фильме вряд ли смогут отразить все технические детали, а они довольно интересны. Тут можно увидеть сложности удаленной поддержки, с которыми некоторые разработчики сталкиваются и в реальной жизни. Так же кто-то сможет провести параллели со своими пользователями, которые вдруг начинают использовать ваш продукт не по назначению, а потом жалуются, что он не работает. Ну и куда же без дэдлайнов. Все это очень захватывает и читается на одном дыхании. Если посмотреть только фильм, то может получится такая же история как с фильмом Doom, который сам по себе, без ночей проведенных в игре, был бы никаким. Поэтому рекомендую читать. Я прочитал в переводе, но послушав советы коллег, хочу уже перечитать в оригинале.

UPD: Как я и писал, фильм не передает атмосферу книгу и в нем выкинуты все интересные мелочи, а сюжет упрощен. Ну и книгу в оригинале я тоже прочитал, это оказалось не сложнее чтения технических статей, поэтому рекомендую всем, кто без труда читает MSDN в оригинале.

четверг, 9 июля 2015 г.

Разбирая старые диски


Некоторое время назад начал разбирать старые диски от ZX Spectrum и от первых IBM PC. Удивительно, что гибкие диски, котором по 20-30 лет все еще хранят информацию в целости и ее можно прочитать. Диски от Спектрума и сегодня можно прочитать на PC и запустить в эмуляторе. О том как это происходило и что интересного там оказалось будет отдельный рассказ, если тема покажется интересной читателям. Забегая вперед скажу, что для этого нужен дисковод 5.25 дюймов (его видно на фотке) и он есть у меня на стареньком 286-м компе.

В старых архивах нашел несколько школьных проектов из середины 90-х, которые написаны на Turbo Pascal 7 фирмы Borland. Один из них — редактор матричных шрифтов, которые использовались в операционной системе MS-DOS.


Графических фреймворков тогда было не очень много. Это было время MS-DOS и текстовых программ. Windows 95 тогда еще только-только вышла и достать ее было сложно при том, что интернет был по модему и торрентов тогда еще не было. Гораздо позже я столкнулся с фреймворком Zinc, который повторял интерфейс Windows 3.11 (сейчас он существует как проект OpenZinc), и удивительно, но Zinc развивается до сих пор и существует его современная коммерческая версия. Но в середине 90-х мне был доступен только 286-й комп с одним мегабайтом памяти и без жесткого диска. Сначала надо было запустить операционную систему MS-DOS, а уже потом вставить другую дискету с Turbo Pascal и запустить среду разработки, конечно в текстовом режиме. В таких условиях и был разработан проект Font Editor, исходные коды которого теперь можно посмотреть.

Для того, чтобы программа работала со сносной скоростью на процессорах 80286, некоторые операции приходилось писать вставками на ассемблере. Это сейчас легко найти в интернете документацию по набору команд для любого процессора, а тогда основным источником для меня была книга Питера Абеля по ассемблеру для IBM PC.


Исходные коды имеют комментарии в кодировке CP866. Все это удалось скомпилировать и запустить в виртуалке с DOS в VirtualBox. Ну и, конечно, это собралось на компе с 286-м процессором и работает неплохо, без неприятных задержек.

Позже попробую выложить еще один редактор шрифтов, который был написан мной еще раньше и полностью на ассемблере процессора Z80 для компьютера ZX Spectrum 48K отечественной сборки (их собирали в Павловском Посаде). Вся программа умещалась в несколько килобайт.