Дорвался, стало быть, мой измученный Джавой организм до языка Цэ-пэ-пэ. Дорвался и написал самостоятельно и с нуля Программный Продукт (сокращенно - пи-пи).
Проверил, протестировал, еще раз перепроверил - в связи с нелегкими временами тестера на мой продукт нет, приходится самому. Работает мой пи-пи, любо-дорого посмотреть.
Послал заказчику. Работает и у заказчика. Ну, то есть они не сразу разобрались, потом наехали по причине того, что не поняли, получили пояснение, поняли, поставили, запустили... работает! Работает пи-пи, черт его побери!
А потом вдруг хлоп-шлеп, нет, больше не работает. С одними файлами работает, с другими - не-а, не работает. Полезли разбираться. Долго ли коротко ли сказка сказывается, но разобрались. Не работает с файлами больше 10 килобайт, если верить заказчику. Ну, так они тестировали - 1 килобайт, 10, 100... Последний - не работает. Глючит пи-пи, ерунду выдает на выходе.
Полез смотреть пи-пи. Нашел проблему. Так и есть, длина файла мною объявлена как uint16_t. 64 килобайта и не килобайтом больше.
Сижу. Думаю. С чего я такой идиот-то, черт меня побери?.. Еще подумал. Вспомнил! Вспомнил и понял!
На Спектруме, при его страничной памяти на 64 килобайта, шестнадцати бит хватало для описания максимальной длины файла. Угу, на Спектруме... Да-да 15 лет тому назад... uint16_t, он же dw на ассемблере... Нет-нет, совершенно честно, в 1994-м...
Свой пи-пи я, конечно, поправил. Но интересно, сколько еще подобных неосознанных флэш-бэков в моем коде?..
Проверил, протестировал, еще раз перепроверил - в связи с нелегкими временами тестера на мой продукт нет, приходится самому. Работает мой пи-пи, любо-дорого посмотреть.
Послал заказчику. Работает и у заказчика. Ну, то есть они не сразу разобрались, потом наехали по причине того, что не поняли, получили пояснение, поняли, поставили, запустили... работает! Работает пи-пи, черт его побери!
А потом вдруг хлоп-шлеп, нет, больше не работает. С одними файлами работает, с другими - не-а, не работает. Полезли разбираться. Долго ли коротко ли сказка сказывается, но разобрались. Не работает с файлами больше 10 килобайт, если верить заказчику. Ну, так они тестировали - 1 килобайт, 10, 100... Последний - не работает. Глючит пи-пи, ерунду выдает на выходе.
Полез смотреть пи-пи. Нашел проблему. Так и есть, длина файла мною объявлена как uint16_t. 64 килобайта и не килобайтом больше.
Сижу. Думаю. С чего я такой идиот-то, черт меня побери?.. Еще подумал. Вспомнил! Вспомнил и понял!
На Спектруме, при его страничной памяти на 64 килобайта, шестнадцати бит хватало для описания максимальной длины файла. Угу, на Спектруме... Да-да 15 лет тому назад... uint16_t, он же dw на ассемблере... Нет-нет, совершенно честно, в 1994-м...
Свой пи-пи я, конечно, поправил. Но интересно, сколько еще подобных неосознанных флэш-бэков в моем коде?..