История одного байта

    Предисловие.
    Этот рассказ имеет свою длинную историю. Для многих это, возможно, будет махровый баян, но мне кажется он стоит того, что бы его прочитали новые люди.
    Во всех источниках, где я встречал его сведения об авторе были просты и незатейливы: Dmitry Galuscenko. Если кто-то может указать сайт или e-mail — напишите в комментариях, я с удовольствием добавлю.
    Итак, начнем.


    Мне не хватало байта. Всего одного. Да, да. Того самого, что из восьми бит состоит. Что? Hет, я не псих, хотя одному богу известно, сколь тонкой была граница отделявшая меня от этого состояния. Hо все по порядку.

    Я программер. Но не просто программер. Я принадлежу к касте, которую иногда называют системщиками, иногда кристальщиками. Вы знаете, что это такое? Я объясню, если потерпите. Мне никак не обойтись без специфики, но иначе вы не сможете понять дальнейшее.

    Мы программируем чипы однокристаллки, грубо говоря, это когда весь комп в одном кристалле. Программная память и память данных разделены и не взаимодействуют между собой. Программа не может быть запущена в оперативке. Глубина программного стека ограничена. Максимум на что я могу рассчитывать, это восемь уровней вложения, причем я не могу изменять предельную глубину стека. О, вы не подумайте чего! У меня бездна ресурсов. Оперативки аж 128 байт! Это на все про все. Переменные, там то да се… Представили, да? С программной памятью тоже неплохо. Аж восемь килобайт. И пользоваться ей совсем несложно. Сначала нужно программно врубить нужный банк памяти, запустить в нем нужную процедуру, а по выходе из нее не забыть вернуться где был. Да еще надо иметь в виду, что в пределах банка я могу перемещаться только джампами и вызовами процедур, а переходы по условиям возможны только в пределах одной страницы, т.е. 256 байт.

    Это значит, если я сравниваю два байта и надо ветвиться, но если метка не находится в пределах 256 байт, то это письмо на деревню дедушке, причем компилятор только в половине случаев предупредит, мол, широко шагаешь парень, штаны бы поберег. И это только цветочки! Ягодки я вам сейчас выложу, что б вы ими в полной мере могли насладиться. У меня нет команды вычитания. Вообще! только add. Уж про такую роскошь, как умножение или деление я вообще молчу, это для лентяев. Зато мне нужно обеспечить десятичную математику. Вы проникаетесь потихоньку? Коды таких игрушек вылизываются так, что вам и не снилось, особенно если приходиться решать задачи на пределе оперативной и программной памяти. Исходники переписываются далеко не один раз. Мне мало просто решить задачу. Я должен впихнуть ее в этот чертов кристалл! Ограничение по переменным, по размеру кода в целом, по размеру каждой процедуры и по числу вызовов. Малейший недосмотр и… стек продавлен, и тебя вышвыривает черт знает куда. И компилятор не поможет. Такое он не ловит… Вы думаете это все? ;-) H-е-ет, дорогие мои. Моя игрушка работает в реалтайме… Это когда, напротив каждой крохотной процедурки моего кода нужно подсчитать и проставить время ее исполнения в миллисекундах. Мои модули не должны работать более жестко фиксированного времени, потому, что мне надо еще сканировать киборду и дисплей, поспевать за датчиками и выдавать управляющие сигналы, а все остальное должно работать никак не мешая сканнингу, иначе я прозеваю нажатие кнопки, или дисплей станет неприятно мерцать, меняя яркость. Но и это еще не все! У меня есть интерфейс.

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

    Если я накатал код решающий задание, но он не влезает в память — задача не решена. Если при этом я создал большее число переменных, и они не помещаются в оперативку — задача не решена.

    Если все Оки-доки, но процедуры слишком длинны, разрушается диаграмма реалтайма — задача не решена. Если процедур слишком коротки, их много, исчерпывается стек — задача не решена.

    Любой средней руки программер, поставь его в подобные условия, застрелится на второй день. Вообще, по моему убеждению, парни, работающие в этой области, имеют стальные нервы и неукротимую волю к победе. Мы редко общаемся с обычными программерами — нам в общем не чем разговаривать. И не потому, что мы снобы или гордецы. Совсем необязательно. Нам трудно представить себе программирование под неисчерпаемыми ресурсами на языках высокого уровня. Мало винта? Купи другой, в чем проблема? Мало рамы? Купи еще, толкни в слот. Меги кодов? А я причем? Это компилятор виноват. Купите машину побольше. Это как разные планеты и я надеюсь, вы поняли почему.

    Это как красивый белый океанский круизер в бескрайних океанских просторах, плыви куда хочешь. А вы попробуйте на нем в финских шхерах порулить. ;-) Или вдевать нитку в иголку среди ночи. Причем, черную нитку.

    Конечно, мы тоже имеем наборы кристаллов и выбираем их перед разработкой с большей дотошностью, чем жених невесту, и гадаем на кофейной гуще и прочих подручных средствах, а хватит ли? Но, если выбор сделан… Назад ходу, как правило нет.

    Hу что ж. Я ввел вас в предметную область и могу продолжить свой рассказ.

    Кристалл не понравился мне сразу. Я сразу понял — тесноват. Все на пределе. Законных 20% запаса по ресурсу, на возможные ошибки — не соблюсти. Однако остальные кандидаты были сильно избыточны, и потому дороги и нерациональны. Себестоимость решила все, я, наконец, выдал свое согласие и мощные и гордые красавцы Intelы и Mотороллы последних моделей остались за бортом.

    Поначалу все шло как надо. Пару месяцев работы и кристаллы были нафаршированы кодом, испытания прошли нормально, платы разведены и отработаны, медленно провернулись шестерни и, набирая ход, закрутились, приводя в действие сложную и громоздкую машину производства. И только у меня изредка екало сердечко, ведь все сделано впритирку! Три от силы пять процентов ресурсов осталось свободными. А это чертовски мало, поверьте мне на слово.

    Хотя работа была сделана весьма неплохо, и я получил свое законное вознаграждение в виде порции удовольствия от сделанного. Конечно, пара мест довольно авантюрно, местами рыхловато, но зато и несколько изюминок получилось.

    И тут… Тут все и началось. Недостает очень важной функции прибора, которую проморгали постановщики. Причем даже не они, а заказчик. Это он вдруг вспомнил, что вот, мол, ребята, тут еще вот такая мелочь должна быть. Ну, сущая ерунда, чесслово, но без нее никак. Ну, забыли при постановке про нее, с кем не бывает? Но это ж несложно совсем добавить, по сравнению с остальными вашими наворотами? Опять же, слава богу, что не датчик забыли. Это всего лишь программа!

    Эти постановщики!!! Их карма понять, что надо заказчику! Даже если для этого надо распилить ему черепушку и просеять через сито все ее содержимое!

    Hо криком делу не поможешь. И я на две недели засел дома, запретив меня беспокоить. В мозгу завелись маленькая сирена и светофорчик. Биип! Вспышка красного! Первый программный банк исчерпан! Репакинг. Оптимизация размещения кода по страницам и банкам памяти. Биип! Оперативная память исчерпана! Пересмотр функциональности процедур. Эту переменную нафиг. И без этих можно обойтись, если тут по другому пути пойти.

    Биип! Провал стека! Прям мордой в дно. Как это!? Я уже на восьмом уровне!?
    Биип! Выход меток за пределы видимости внутристраничных переходов!
    Биип! Нарушение условий реалтайма, процедуры жрут слишком много времени!
    Биип! Исчерпан второй банк памяти!

    И так много, много раз. Кропотливо, байт за байтом я вдвигал тело этой
    Проклятой новой функции, непрерывно переупаковывая размещение кода по страницам, банкам, оптимизируя размер кода, график реалтайма, использование оперативной памяти,
    а то, и попросту переписывая модули с нуля.
    Может, вы думаете, восемь килограмм бинарного кода это мало? Ха! Инструкции то одно и двухбайтовые. Это вам не трехбайтовый зайлог или даже интеловский восьмидесятник. Временами ко мне забегал приятель, как, мол, и что, но я был мало расположен к трепу «за жизнь».

    Через полторы недели я понял, что дело худо. Я располагал более чем полудюжиной решений и уже стоял на месте. Я знал каждую процедуру и функцию наизусть, а каждый байт в лицо! Все было впустую. Картинка замерла… Она не хотела оживать!
    Мне не хватало одного байта. Это показывали все варианты решений. Всего одного байта!

    Забежав к другу, я сбросил ему все варианты решений с временными диаграммами и планами банков и вновь вернулся в свою берлогу. Спать. Во что бы то ни стало — спать. Нужна ясная голова. Нужна новая идея. Я опустошен. Следующие несколько дней не дали ничего. Я собирал и разбирал код, нанизывая его как сверкающие бусины, и упаковывал его в разнообразной формы фигурки, пытаясь найти форму, в которой все эти элементы головоломки сложатся в одно целое без единого зазора и также без зазора войдут в заготовленное для них место.
    Места не хватало… Одного байта… Я мял код, как глину, я выделывал с ним все что угодно, но… один, всего один байт!
    Наверное нечто похожее испытывает музыкант написав симфонию, пытаясь найти одну единственную ноту, что бы заставить звучать свое произведение. Или художник ищет тот самый, неповторимый мазок, который оживит картину. А без этого все мертво и весь труд годится только на помойку…

    Как-то в полусне я оделся и вышел на улицу. Под ногами мерзко визжал снег. Кругом все было серо и как-то тускло. Мне больше не нужен был ни комьютер, ни распечатки. Вся схема была во мне… Или вне меня? Она помигивала разноцветными просвирками, имея форму причудливых и чем-то даже красивых трехмерных фигур или это какие-то ажурные конструкции?
    Тоненько попискивали контрольные маркеры временных отметок висящие впритирку к этим кристаллам странных, каких-то завораживающих форм. И все это летело, куда-то перемещаясь и вращаясь, в каком то странно меняющем форму канале? Трубе? Оно проноситься вплотную ко всем его стенкам, как по команде невидимого штурмана, в нужный момент, разворачиваясь по непонятно какому наитию, чтобы выступающая грань не зацепилась за препятствие. Но каков его капитан или кто там? Штурман? Ведь не пройдет же! Там нельзя пройти! Hо нет! Чудесным образом все сооружение как-то грациозно изворачивается, ровно в нужное мгновенье и беззвучно проскакивает… нет!
    Величаво минует препятствие… А впереди следующее… И вдруг, край ажурного сооружения своим крохотным выступом цепляется. Визг и грохот! Лопаются и сминаются сверкающие нити, и все дробится на миллионы осколков…

    Господи! Это же стек! Оно обходит стек! Вот значит, как это выглядит!
    Когда я исчерпываю глубину, она видимо с треском цепляется и разрушается, ломая свои ажурные конструкции…

    В каком то месте я замечаю скамейку с какой-то одинокой старушкой на ней. Мне нужно тоже посидеть… Напротив стоит продавщица цветов, приплясывая от холода. Не люблю старух… И эта… Какая-то неприятная, чуть не мерзкая. Hу что она уставилась на меня? Кто она? Чего сидит здесь? Небось, от нечего делать. Это они вечно толпятся в магазине, и из-за них ничего не успеваешь купить. И визжат в троллейбусе, что б им уступили место. Небось, смотрит эти идиотские новомодные сериалы, как их там? Мария? И еще кто там плачет?
    Да что они все понимают!? Кто это может понять, сколько знаний и труда надо что бы выстроить такое? Сколько бессонных ночей надо провести? Сколько читать? Причем ежедневно и вовсе не идиотский роман о любви и дружбе?

    Да кто вообще в состоянии это понять!? Эти новоявленные пижоны, называющие себя программистами? Коряво пишущими на фокспрах, клипперах и бейсиках? И везде задающих вопросы: а скажите, какую команду мне надо набрать? А какой хелп почитать? А когда мануал на русский переведут? А этот их, так называемый «софт»? Великие стотысячевариантные вечноживые склады и бухгалтерии? Нетленные творения. Все на одно лицо. Если там и есть различия, так в корявости и глючности кода. Глюк на глюке сидит и багом погоняет…
    Вот заставить бы их высекать их коды в камне, как древние камнетесы, что б хоть немного задумались о том, чего пишут… Или эти технокрысы? Это ж надо, вирусы писать, что б значит гадостью людям сделанной прославиться! Тьфу!

    Hет. Hе хочу я сидеть на этой скамейке, в компании с этой… Куда же я шел? Вспомнил. К другу я иду. Может подскажет чего? Проклятый байт! Чего я взъелся то так? Все своим делом занимаются, с чего бы худшим, чем я? Талантливых людей хватает везде. Что-то сильно меня видать припекло…
    Приятель, открыв дверь, молча смотрит на меня. «Ну?» «Что ну?»
    " Скажи мне только одно" мрачно говорю я, проходя в квартиру. «Ты можешь дать мне один байт? Всего один. Я готов отдать тебе за него все что угодно. Мне байта не хватает, понимаешь? Ну не влезаю я в кристалл!»

    Друг какое-то время молчит. «Я смотрел твои коды.»

    «И что? Нашел, что-нибудь?»

    " Hет." тихо говорит он, и, помолчав, продолжил: «Безукоризненно связанное кружево. Ни единой петли. Стыков не видно. Филигранная работа. Штучная. Прям лепота. На каждую строчку можно поставить знак качества. И высечь в мраморе. И однородно все, ни уплотнений, ни пустот. Монолит, но эластичный. Hо..»

    «Что 'но'?.. Да не тяни ты кота за хвост! Не мотай душу! И без тебя тошно!» взрываюсь я.

    «Большинство мест я не могу понять… Не понимаю… Только вижу, как это… красиво. Неосязаемо как-то. Не ухватить сознанием… Вроде вот вот, но оно улетает… Это как снежинка, когда пытаешься взять ее в руку. Или как звуки еще непонятой, но уже осознаваемой музыки..»

    «Что за чушь ты несешь!? Какая к черту снежинка?! Какая музыка!? Ты можешь мне помочь или нет!?» грохочу я. «Ты же друг мне. Помоги, а? Ты только скажи, куда мне втиснуть этот байт..» я с надеждой смотрю на него. «Ведь свежий, незамыленый глаз. Ведь один, всего один оператор, без которого можно обойтись и все! ВСЕ! Проблема решена, понимаешь? И я тебе по гроб жизни… навсегда..» шепчу я ухватив его за рукав, «Ведь там же до черта строк, а я же просто человек, ошибся, пропустил, не заметил… а? А мне ничего не надо. Hи славы, ни похвал. Я только хочу, что б оно улетело… Что б отпустило меня… а? Hу нет у меня сил больше. Hу пойдем, давай ты еще коды посмотришь..»
    «Откажись», говорит он. «Отказаться? От чего?» не понимаю я. «Возьми другой кристалл».
    «Ты сошел с ума!!?? Как это — другой!!?? Кучи наделанных плат, монтажники, наладчики, зарплаты, детали!? Это что, шуточки!!?? Ты думаешь это на компе, хочу, пару строк добавил, и никто не заметит!!?? Затрат ноль, а добавляй хоть мегабайты кода!? А люди? Они ведь верят мне! Я ведь сказал -»Да!" Я ведь согласился, хотя и видел, что запаса ресурса почти по нулям будет! А у них уже готово все! Корпуса, металл, питание. Они ждут только кода! Ты знаешь к чему может привести смена кристалла? Ты знаешь сколько будет стоить этот байт! Один байт!!"
    Я сам оглох от своего крика…
    «Дурак.» слово шлепком падает на землю, как тюк мокрого белья. «Отступись! Забудь! Мы с ребятами уже три дня, как смотрим эти коды. Я собрал всех кого мог. Я сразу понял, что с тобой неладное. У тебя НЕТ ошибок! Ни одной. Более того, мы не понимаем, как тебе вообще удалось это запихнуть.»
    Колени мои подогнулись и я то ли сел, то ли сполз на стул.
    Я глубине души я знал это. А потом я стал говорить… Это был странный монолог…
    Как будто кто-то кричал, шептал и снова орал моим голосом:

    "… думал все это время. Я понял, что не так уж важен этот проект, как мерило моей ответственности. Ну не решится он, ну переделается там как-то все. Черт с ним! Не так уж это важно. Позор там мой… Дело в другом. Во мне. Ты знаешь, что я уже очень давно не раб, который делает, то что скажут, оправдывая это зарабатываем денег для семьи. Очень долгое время я наемник. Мои услуги, мои программы стоят очень дорого. Ты же знаешь, я не берусь за простые вещи. Пусть хоть озолотят. Я на себя и для себя работаю. Да мне уже давно плевать на деньги! Они практически не имеют надо мной власти! Мне другое надо! И я тщательно скрываю это. Потому, что интересную задачу я готов делать бесплатно, а то еще и приплачу за нее. Ты же сам знаешь, каково это!? Ну?! Ты ведь тоже не для денег это делаешь! Есть только одна вещь, которую я никогда и никому не говорил. Я когда делаю — лечу… И не ври мне, что не знаешь что это! Все знают это! Только предпочитают не помнить или не верить! Тебе тоже знакомо это! Это как в детских снах. Помнишь? Мы взмываем высоко, высоко и несемся, визжа от переполняющего восторга! А под нами проносятся леса, горы и моря! Ты думаешь, это был сон!? Нет! И я давно понял это! Только сказать боялся. Стыдился, дурак! Но теперь мне все равно! Это душа наша летит! По настоящему! А разум говорит, что мы спим. Понимаешь? А почему, когда мы взрослеем, перестаем летать? А!? Почему?! Почему нам перестает сниться этот сон? Не знаешь? А я знаю! Потому, что душа наша тяжелеет, потому, что ценности, деньги, условности этого общества захватывают над нами власть и душа наша больше не в силах поднять этот груз! Как же! Мы ж прям, распластываемся, что б стать ковриком, о который вытрут ноги! О, какие веские причины, такие аргументированные объяснения, почему это было необходимо именно так прогнуться, и как мы это ради кого-то это делаем.
    Мы врем сами себе каждый день, убеждая сами себя, что живем правильно. А я не хочу, не могу больше врать! Ты не понимаешь, как это относится к этому дьявольскому байту!? Все очень просто. Я уже давно могу летать! И работа помогает мне в этом. Да-да! В пики высшего напряжения при решении своих задач я взлетаю. Это невозможно описать!
    Но я не могу лететь постоянно. Я снова опускаюсь… И так до нового кода в который надо что-то вложить. Я не знаю что. Какой то кусок себя, что ли. Но в этот раз я попался. Меня сгубила гордыня. Ну, как же! Я ведь гуру, умеющий снисходительно тыкать чайников носом и походя разрешать их проблемы! Мне так нравятся их взгляды на меня, как на божество. Ведь мы тщеславны и я не исключение.
    Но сейчас все не так! Ты думаешь, проблема в этом одном байте и как его засунуть? Нет! Я не могу его запихнуть! Но это может сделать не я! Понимаешь?

    Решение есть! Я это чувствую! Только я не способен его найти! Для этого я должен стать другим! Не собой! И кто-то или что-то четко поймал меня, на этот один байт!
    Ты же отлично знаешь, что я умный и хитрый! Если бы задача не решалась, я бы ушел, ускользнул, сорвался с крючка! Но я считал, что она решается, и меня подсекли! Поймали на этот байт, как в сеть. И байт этот, это размер ячейки сетки, через который я не могу улизнуть. Слишком далеко я зашел… И я не смогу уйти и снова быть свободным, если не изменю что-то в себе! Полностью изменить себя, понимаешь? Стать другим человеком! И тогда может быть, передо мной откроется дверь… Я не знаю куда… Я не знаю что за ней… И я не знаю, как и что я должен сделать для этого… Да… И еще цена… Я и это понял… Я не смогу быть как прежде… Я не смогу летать больше… Все будет кончено… "
    Я медленно поднялся и, ссутулившись, пошел к двери… «Прощай..» глухо сказал я в пустоту…
    "… Кретин!" неслось мне вслед, "

    «Ты же сдохнешь над этой программой! Сдохнешь! Ты в зеркало на себя посмотри! Психушка для тебя — милость! Делай что-нибудь! Иди к бабам, напейся вдребезги...»
    Hо я уже ничего не слышу. «Господи, если ты есть — помоги..» Только на улице я спохватываюсь, что забыл перчатки и шапку. А зачем они мне? Разве это главное? А что главное? Зачем все? Кому все это нужно? Людям? Да наплевать им! Это мне нужно! Лично мне! Я сам загнал себя в ловушку и сам же не могу из нее выбраться. Что это? Наказание? Урок, что б впредь не задавался? Да уж, скорее так. Гонору у меня хоть отбавляй. Стоп, стоп… Как он сказал? «К бабам?»

    В офисе тепло и уютно. Калорифер. Чистенько. Жужжат компы. Папочки, стоечки. Девочки поят меня кофе, подкладывают булочки, которые я пожираю с жадностью, перемазавшись в шоколаде. Они подливают и подкладывают, сердобольно глядя на своего опустившегося коллегу. Девочки тоже программистки, чего-то там офисное набивают, на радость кадрам и бухгалтерии. Они аккуратны, при макияжах, отлично, словом выглядят, особенно по контрасту с моей многодневной щетиной, а может уже и бородой? Я кратко и с неохотой отвечаю на вопросы, что, мол меня до жизни такой довело. «Не решается. Ассемблер. Со стеком проблемы. Байта не хватает». Одна из них, Оксана, кажется, ее зовут, говорит с украинским приятно-округлым выговором: «Який такий стек? Зачем он тебе нужен? Мы с Олей, она на клиппере, я на фоксе никакого стека у нас нет. Может и тебе не надо? Вечно вы мужики себе пакость, какую выдумаете. Сами же и мучаетесь, да нас мучаете, скажи Оля?»
    «Что?!» Только кресло мешает мне свалиться на пол. Какой-то противный, каркающий клекот рвется из меня… «Вы пишете без стека!?»

    А вот это уже истерика…

    Я снова на улице. Милые, милые наши дамы. Как вы приятны в вашем неведении. И как это здорово, что вы этого не знаете. Вам и не нужно это знать. Сходить с ума от нерешенных задач, как и философских вопросов, это привилегия мужчин. Конечно, бывают и исключения. Но они скорее подтверждают правила. Если в верхнеуровневых языках дамы еще попадаются, к сям и ассемблерам практически исчезают, то в нашей области я не слышал о них вообще. И это правильно! Нечего валить на женщин еще и эти проблемы.

    А ноги несут меня куда-то, мысли текут сами по себе. Мне они неинтересны, я человек конченый. Я не смогу с этим жить. Буду влачить существование, все равно кем, но уж к компьютерам этим, на пушечный выстрел не подойду, это уж точно. Поделом. Нечего было строить из себя крутого. А эта моя снисходительность сноба? Мол, все знаю, все мне по плечу… Мда. Доигрался… козел? Я бреду в этом абсолютно чужом для меня мире, в котором ни одна живая душа не в состоянии меня понять. Друг и тот не смог… И никому нет до меня дела…

    Hо что это? Я здесь вроде был? Цветы. Скамейка. И бабушка на ней. Как будто и не уходила. Ведь мороз же? В нерешительности я присаживаюсь на край скамейки. Ого! руки то замерзли и ухи тоже. И тут, как будто что-то толкнуло меня, я встал, подошел к продавщице цветов и на последнюю трешку, (а зачем она мне?) купил розы и подошел к бабушке. В голове у меня судорожно билась мысль: что я делаю? Зачем? Она ждала, подняв ко мне лицо. И я выдавил из себя: «Извините. Я могу подарить Вам цветы? Я… плохо подумал о Вас… тогда..»

    Она нисколько не удивилась. И сказала… «Где же ты был так долго, сынок? Я замерзла ждать тебя..» !!!??? Сказать, что я удивился, значит не сказать ничего… Я был потрясен, ошеломлен, раздавлен! А она продолжала: «Тебе ведь плохо, сынок?» Она смотрела на меня с участием. В ее глазах светилась мудрость, доброта и… любовь. Вы понимаете!? Ко мне любовь… И тогда я сказал: «Да! Мне плохо. Мне очень плохо..» Я не боялся и не стыдился. Что-то как будто упало с меня, отскочив, как шелуха. И я стал рассказывать… Сбивчиво, торопясь и захлебываясь.

    Я рассказывал бабушке, как я программирую однокристальные микропроцессоры…

    Она внимательно, не перебивая, слушала меня. Она все понимала! Каждое мое слово! Это я видел по ее глазам. Я говорил и говорил. А она вела меня куда-то и я ел, что-то очень вкусное, а потом мы пили чай, с каким-то необыкновенным вареньем, на крохотной, но такой уютной кухне.
    Наверное, это была очень странная картина. Полусумасшедший программист и старушка, его внимательно слушающая… А потом говорила она. Я не помню о чем. Я только помню, что это было очень важное и нужное мне, что я черпал из этой кладези мудрости, которую можно обрести, только потеряв столь много, но обретя любовь…

    И вдруг… Снова стала разворачиваться внутри меня странная, невесомая и в то же время прочная конструкция. Она разворачивалась мощно и грациозно, окруженная великолепием огней. Каждая ее грань, каждый элемент были совершенны и неповторимы! И легонько вибрируя, она порождала музыку. И все это вместе наполняло меня необычайным трепетом и восторгом! Это я! Я создал ее! Это мной отшлифованы все ее грани! Ну почему этого никто не видит!? Ну посмотрите же! Разделите со мной мое счастье! Теперь я не боялся. Я знал, что она полетит! И она поможет и мне оторваться от земли. С ней и я полечу к звездам!


    И я снова шел по улице. Но совсем по другой. А точнее просто в другом мире. Потому что этот был прекрасен! Снег брызгал разноцветными искрами тысяч неповторимых красок и такой неповторимой музыкой звучал под ногами. Это как будто ваш старенький компьютер с CGA монитором, вдруг стал показывать миллионы цветов. Впрочем, что за чушь я несу? Это много, много лучше.

    Создавайте свои корабли. И пусть они путешествуют в необычайных мирах. Я был неправ. Каждый из нас может путешествовать и жить в этих мирах. И это неважно, как и где вы их создаете. Мы создаем программы в той же мере, в какой они создают нас. И настоящие программы создают не хитростью и для этого мало разума знаний и смекалки. Они должны пройти через сердце, потому, что являются порождением нашей любви.

    Потому, что программы, которые мы создаем, чистый продукт творчества. Именно поэтому они столь привлекательны. Не нужно ни молотка, ни зубила, ни кистей и красок, что бы выразить в ней главное — себя! И это неважно, что может быть понять красоту ваших кодов сможет не так уж и много людей. Если написав свою программу мы стали лучше, то это правильная и хорошая программа! Но если вы думаете, что нужно меньше труда, то вы ошибаетесь. И если вы не готовы, или не хотите в своем творении оставить часть своей души и любви, не готовы к тому что б изменить себя, то лучше… не пишите программ. Поищите себя, в чем-нибудь другом…

    Dmitry Galuscenko, ank@mail.ank-sia.com, 2:5100/13.4

    UPD. Спасибо DileSoft
    Поделиться публикацией
    Комментарии 117
      –11
      Публикуя настолько древний баян, можно было хотя бы типографику подправить.
        0
        Ну то что это ретро - знают те кто в теме, а другим может быть интересно для прочтения. Я вот, например вспоминаю, как меня учили думать о расходе памяти, оптимизации кода - чтобы всё было продуманно уже сразу в процессе разработки. Ведь тогда еще не было Core2 и мегагерцы с мегабайтами считались везде.
        • НЛО прилетело и опубликовало эту надпись здесь
            +2
            Почему мне? автор статьи - tasman.
            +3
            Иногда я думаю чтобы уйти с этих высоких языков и окунуться в самый низ... где будут проблемы размещения ресурсов а не времени на их размещение :)
            +2
            сам напиши что-то, а потом обхаивай. :)
              +2
              Вы хотели сказать «сам запости какой-нибудь жутко древний текст»?
                +13
                Как вы за№(;ли со своими баянами. Такое ощущение, что для Вас Хабр, да и весь интернет - это шоу какое то. Подавай Вам каждый день новую информацию. А Вы её скушаете, спасибо не скажете. Сколько сайтов - столько мнений. Да научитесь уважению к другим. Станьте вежливым.
                  +3
                  Да, я читаю Хабр именно для того, чтобы каждый день получать новую информацию, чтобы расти и развиваться. При этом моё «спасибо» заключается в том, что я сам публикую полезную информацию в Интернете.
                  И не надо учить вежливости, послав перед этим. Это глупо и пошло.
                    +2
                    А для меня эта статья была в новинку, и прочитал я ее с большим удовольствием. Если вы видите на хабре статью, которую вы когда-то уже давно читали, зачем сразу всем об этом показывать? Прошли бы мимо.
                    –3
                    вобще-то не это имеется ввиду, просто зачем из одного источника тащить в другой? этот рассказ далеко не новый и довольно известный, поэтому нет смылса постить его тут
                      0
                      Я очень надеюсь, что Вы сможете мне простить то, что мне не посчастливилось прочитать этот "баян" ранее и, с превеликим удовольствием прочитав его только сейчас, я выражу автору поста свою благодарность.
                      –5
                      Давайте скопипастим сюда рассказ про маршрутку еще.
                        +2
                        Про какую маршрутку? :)
                          0
                          А ещё анекдот про тёщу и картинку про узи матки. Я давно этого жду.
                            0
                            и про курочку, про курочку с дедушкой не забудьте!

                            *всплакнул в припадке ностальгии*
                        +1
                        Не все в один день с тобой родились и прочитали этот текст.
                        Для кого древний, а для кого открытие классики.
                        Вам уебанам с биографией на показ "Вот посмотрите я это уже читал, раньше Вас" надо просто пиздовать дальше и не омрачать своим унылым говном.
                          –6
                          Это тебе, как ты говоришь, "уебану" нужно "пиздовать". И не омрачай своим матом, еблан.
                            –6
                            Слышь хуесосина если тебе мат расшатывает твои хлипкие нервы, то съебалка на хуй пидр с хабра на мурзилку.
                          +7
                          Дело в том, что не у всех есть куча времени посещать сотни сайтов и выискиать интересные новости, истории, в целом информацию. Любая информация, которую ты видишь первый раз ценна для тебя. Давайте уважать мнения других, а не только свое собственное. Я первый раз читаю это, и мне было действительно интересно. Вы это читали? Вам не интересна эта тема? Зачем комментировать? - чтобы отметится словом "баян" в комментах, показывая свою информированность? Оставьте людям место для того, чтобы они действительно могли пообщаться по теме поста - в этом случае будет действительное интересное обсуждение в теме, а не выяснение отношений и борьба за карму!
                            +3
                            Просто для многих именно карма и является фетишем.
                            PS для тех, кто проникся советую http://www.wasm.ru - imho лучший сайт данной тематики.
                              0
                              Спасибо за конструктив.
                              Если я считаю, что какая-то тема лишняя, и её не стоило бы публиковать, то я что могу сделать? 1) Оценить тему, 2) минуснуть карму автора, 3) оставить комментарий.
                              1 — хорошо, но среди массы конкретного мнения не видно.
                              2 — плохо, ибо если человек не прав (с моей точки зрения), это повод обсудить, подискутировать, найти решение. И только если его топики/сообщения действительно осложняют жизнь, стоит минусовать (я вот этими комментариями осложнил жизнь восьми хабравчанам).
                              3 — вариант как раз выразить позицию нелинейно, чтобы автор мог услышать.

                              Я уважаю ваше мнение и мнение автора, но при этом выражаю своё. Воспринимайте это как дополнение. Критика полезна. Если же моя мысль или форма подачи неконструктивны, нажмите минус и забудьте.
                              А вот то, что одни считают правильным писать личные оскорбления, а десятки других их плюсуют, говорит о деградации сообщества, о его неспособности к конструктивному общению. И это очень огорчает.
                          –1
                          Слышь мразь это не баян. Я это только сегодня прочитал.
                            0
                            Почитайте Достоевского. Подозреваю, что для вас он тоже «не баян», ибо не читали. Зато будет прекрасная возможность расширить лексикон. ;)
                              0
                              Хороший писатель.
                              Спасибо школе прочитал.
                            –1
                            Баян? Ну и вали от сюда, если тебе ненравится, что- то и кажется, что баян. Зачем гадить непонятно.
                              +1
                              надо учиться отличать бояны от классики
                                0
                                Достали уже со своей типографикой
                                +4
                                Первый раз прочитал этот расказ на wasm.ru
                                Очень сильно впечатлил.
                                Сейчас прочитаю ещё раз :) Спасибо.
                                  +11
                                  Нет слов... Читал просто на одном дыхании...
                                    +3
                                    Боян, конечно, но рассказ просто офигенный. :)
                                      +2
                                      Потрясающий рассказ, с удовольствием перечитал во второй раз.
                                        0
                                        Спасибо что запостили!
                                        Впервые в FIDO читал, у нас босс был программером под однокристаллки :-)
                                        Потом сам три года микроконтроллерами занимался, но все на настолько жестко было...
                                        • НЛО прилетело и опубликовало эту надпись здесь
                                            +1
                                            Просто молчу. Нет слов. Спасибо.
                                              +2
                                              Он нашел тот байт?
                                                +5
                                                он нашел кое-что важнее
                                                  0
                                                  Судя по тому, как его понесло - он дозу ЛСД нашёл... :)
                                                –9
                                                жуткое, пафосное, довольно далекое от реальности говно!

                                                > "Я принадлежу к касте, которую иногда называют системщиками, иногда кристальщиками..."
                                                сколько пафоса и гонора в одной этой фразе! далее еще хуже. что-то в стиле голивуда, рассказ для 12-летних американских подростков.

                                                программирование микроконтроллеров-это одно из направлений моей деятельности, но от этого рассказа меня чуть не вытошнило, когда читал его (давно еще было) бррррр
                                                  0
                                                  да не, рассказ хороший-то, как и идея. но да, местами превращается в такой пафосный лытдыбр - есть такое. раньше так все инетчики писали, да.
                                                    0
                                                    Ну не скажите, просто для многих эта область темна и неизвестна, что само по себе становится таким вот отождествлением кристальщиков с программерскими полубогами, которые и между собой общаются машинными кодами ;)
                                                    Это только мое мнение. Мне самому хотелось бы поковырять, но как то всегда получается не с руки, увы...
                                                      0
                                                      не согласен, хотя это тоже было моей деятельностью не так давно. У меня был случай когда не хватало 6 байт для конфетки, и это было ужасно. Согласен с автором рассказа на почти 100%
                                                        –1
                                                        вообще я всегда думал что контроллер подбирается под задачу. если скажем выбран 8килобайтный кристалл, разведены и заказаны на производстве платы... а идеально-отпидореная программа занимает на два-три байта больше, чем контроллер может принять-это просчет. если нету НИКАКИХ варантов дальнейшей оптимизации по размеру кода остается только менять кристалл. и я не пойму почему на почве этого надо высасывать из пальца такой душещепательный расскаж)))
                                                          0
                                                          все причины сказаны в тексте, вы же читали по-диагонали мне кажется. забыли дописать еще одну функцию, а котроллеры уже в производство пошли, в этом и причина.
                                                            0
                                                            Рассказ можно было бы назвать "История одного просчёта" =)
                                                        0
                                                        Cпасибо. Просто спасибо
                                                          0
                                                          Офигенно! Прочитал на одном дыхании. Хотя один абзац какой-то странный.
                                                            +1
                                                            не могу прочитать более абзаца
                                                            стиль изложения отвратен
                                                              +2
                                                              Это напомнило мне, как писал крестики-нолики на калькуляторе. Там было 400 шагов под программу. Я смог сделать, чтобы калькулятор не проигрывал игроку. Но чтобы выигрывал - не хватало нескольких шагов буквально.
                                                                0
                                                                Может я что-то не так понимаю... Но разве есть стратегия игры в крестики-нолики, которая позволит выиграть вне зависимости от стратегии оппонента? Не проиграть - это понятно, можно. Но гарантированно выиграть по-моему не возможно, помню из теории игр.
                                                                  0
                                                                  Совершенно верно, выиграть в крестики-нолики невозможно, если только соперник не дурак. Мне как раз хватило ячеек памяти, чтобы сделать калькулятор недураком. Но вот даже если оппонент играл глупо или поддавался, калькулятор не выигрывал. Потому что все ресурсы ушли на алгоритм защиты, а на алгоритм победы - не хватило.

                                                                  Вот думаю: может, достать из далёкого ящика это чудо техники и оптимизировать программу, вдохновившись рассказом.
                                                                    0
                                                                    Однозначно стоит! Вы почувствуете такое удовлетворение от оптимизации) Тоже когда-то пытался написать крестики-нолики на калькуляторе)
                                                                      0
                                                                      Вы ошибаетесь, выиграть можно с достаточной долей вероятности, но в случае если первый ход за вами.
                                                                        0
                                                                        Вы, должно быть, шутите? Или просто невнимательно прочли предыдущие сообщения?

                                                                        Выиграть в крестики-нолики можно только если противник допустит ошибку. Если противник отвечает правильно, то никто и никогда не выиграет.
                                                                          0
                                                                          Да, признаю прочитал только «выиграть в принципе не возможно». Выиграть возможно, если ваш первый ход в центр, а последующий ход противника будет любой, кроме угловой клетки.
                                                                            0
                                                                            А поскольку мы рассматриваем случай, когда соперник не дурак или вовсе компьютер, знающий всё наперёд, то последующий ход противника будет как раз такой, чтобы выиграть не дать.

                                                                            Как я уже написал, даже калькулятор с 400 шагами программирования удалось научить не проигрывать никогда.
                                                                              0
                                                                              Все верно. Самому что ли попробовать написать такую игрушку. =)
                                                                  +2
                                                                  Спасибо большое. Первый раз читал - прям задело, как точно описано...
                                                                    0
                                                                    отличный рассказ,читал давно,чё wasm начали копипастить?
                                                                      0
                                                                      Вы не поверите, но тут копипастится не только wasm :)
                                                                      0
                                                                      отличный рассказ
                                                                        +3
                                                                        Очень понравилось! Для меня ничуть не баян.
                                                                          +1
                                                                          Это - классика.
                                                                            +2
                                                                            Читаю впервые. Человек пишет просто великолепно, при том, что он программист, а не гуманитарий. Очень порадовало, спасибо.
                                                                              0
                                                                              Согласен, только... ну нет этого деления на технарей и гумманитариев, он же всё написал. Есть люди, есть задачи, есть развитие, творчество, любовь. Какая разница какова форма!?
                                                                              +2
                                                                              Блин, некоторые на хабре уже ведут себя так же как этот программист, но в области типографики. Ну не пофиг вам тире там написано или дефис? Неужели от этого теряется смысл?

                                                                              Рассказ раньше читал, но все равно, спасибо.
                                                                                0
                                                                                так он нашел байт или нет?! просто ответьте, да или нет?
                                                                                  0
                                                                                  Нет.
                                                                                    0
                                                                                    Да какая разница?
                                                                                      +1
                                                                                      Теперь я не боялся. Я знал, что она полетит!

                                                                                      нашел, конечно :)
                                                                                        0
                                                                                        в стэке? :)
                                                                                      0
                                                                                      Потрясающе.
                                                                                        0
                                                                                        Рассказ конечно древний, но он того стоит. Перечитал его еще раз...
                                                                                          0
                                                                                          Классно! Прочитал так же в первый раз и кажется проникся
                                                                                          • НЛО прилетело и опубликовало эту надпись здесь
                                                                                              +1
                                                                                              Смешно смотреть. Армия левых антибаянистов против армии консерватов. Если бы посты на тему "баян/не баян/баян, но мне пох" автоматически не отображались в дереве комментариев, то приходилось бы тратить на 20-60% времени для выуживания полезной информации.

                                                                                              Все, молчу-молчу...
                                                                                              • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                  –2
                                                                                                  Это не программрование. Это, как говорит одна моя знакомая, "программизм" - болезнь.
                                                                                                    0
                                                                                                    Это не болезнь, это философия жизни.
                                                                                                    0
                                                                                                    Очень душевно. Зацепило. Большое спасибо...
                                                                                                      0
                                                                                                      Очень понравилось. Большое спасибо
                                                                                                      • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                          0
                                                                                                          CIA?
                                                                                                            0
                                                                                                            Судя по всему, они еще работают, по крайней мере числятся в каталоге: http://www.zl.lv/portal/search2.php?comp=sia+ank&address=&meklet2=Mekl%E7t&prod=

                                                                                                            И сайт есть: http://www.ank-sia.com/

                                                                                                            Похоже, речь шла о программировании для медицинского оборудования =)
                                                                                                            0
                                                                                                            В избранное.
                                                                                                              0
                                                                                                              Спасибо! Отличный рассказ!
                                                                                                                0
                                                                                                                Это очень ретровое ретро.. Хабр уже не тот (с) :lol:
                                                                                                                  +2
                                                                                                                  Ретро уже не то ;)
                                                                                                                    +1
                                                                                                                    „Уже не то“ уже не то)
                                                                                                                  +1
                                                                                                                  Ох, сколько я не был на wasm.ru... Надо зайти, спасибо. Хабр все чаще вгоняет меня в печаль по былым временам. Произведение отличное, хоть и многие смогут придраться к стилю изложения или тех стороне. Важно другое, важна суть — программирование, а особенно системное есть процесс глубоко творческий. Можно, конечно, решать задачу влом, использовать современные микропроцессоры и крутые атмеловские контроллеры, да и интел сейчас вполне недорогие решения представляет. Но, что если вести себя как воин, сталкиваться с проблемой лицом к лицу, стараться сделать оптимальнее, лучше, быстрее, меньше. Иногда я готов заплатить за хорошую задачу. О да! Черт побери, так оно и есть! В этом и суть. Много сейчас просто "программистов" но мало тех, кого раньше звали хакерами, а еще меньше тех, кто способен делать все что угодно с таким подходом, сильным и правильным. Преодоление себя, преодоление обстоятельств, решение, познание...

                                                                                                                  p.s. Чувствую, что на хабре появилось несколько системщиков. То дизассемблированные трои появляются, то еще что-то было... Отлично. Вперед. Стараемся. Асм должен жить, как и культура реального программирования для реальных специалистов.
                                                                                                                    0
                                                                                                                    Чтобы эффективно решать задачи на современных ("больших") микропроцессорах нужно знать гораздо больше чем "полубог-кристальщик" в вышеописанном рассказе. Сейчас идёт оптимизация на других уровнях, хотя и проблема вменяемой кодогенерации всё ещё находится в таком же состоянии, как и 10 лет назад.
                                                                                                                    0
                                                                                                                    хорошо пошло вечером под пиво, хоть и копипаста. а что в комментах говно льют - так это ж школьники, каникулы и все дела... первая часть текста, всё же, понравилась больше. держите плюс в пост (в карму не дам, поскольку авторство не ваше - уж извините).
                                                                                                                      0
                                                                                                                      Я вот например впервые в жизни читаю сие произведение. Очень цепляет, хотя на себя такое состояние и примерить-то не получается.....действительно, сейчас байт информации - это исчезающе малая величина.
                                                                                                                        +1
                                                                                                                        Очень понравилось. Только я не понял в чем мораль, которую автор пытался донести на последних абзацах... :(
                                                                                                                          0
                                                                                                                          Я в шоке... Хоть я и далековат о программирования, но как будущий врач истину понял: надо быть ювелиром во всем.
                                                                                                                            +1
                                                                                                                            Такое все таки только во времена Фидо погли писать
                                                                                                                              +1
                                                                                                                              Когда винты были маленькие, а модемы большие... (с)
                                                                                                                              (Какая я то древняя фидошная сказка)
                                                                                                                              0
                                                                                                                              Перечитал с громадным удовольствием, большое спасибо!

                                                                                                                              Что касается баянов, то есть тривиальное решение этого вопроса:
                                                                                                                              1. Создать новый коллективный блог «Баян» или «Классика» или «Классический баян».
                                                                                                                              2. Написать в описании блога, что все топики в нём должны быть подзамочными (и модераторам блога за этим следить).
                                                                                                                              3. В результате все довольны — кто не имеет ничего против «баянов на хабре» — подключится к этом блогу, а остальные больше не будут видеть столь раздражающих их баянов.
                                                                                                                                –1
                                                                                                                                красиво!

                                                                                                                                прогнал этот текст через анализ писем

                                                                                                                                КАЧЕСТВА ПСИХОЛОГИЧЕСКОГО СОСТОЯНИЯ АВТОРА ПИСЬМА (ТЕКСТА):
                                                                                                                                * Если автор этих строк начнёт действовать, то остановить его будет трудно.
                                                                                                                                * Сейчас больше полагается на судьбу.
                                                                                                                                * В этих строках чувствуется *внутренний стержень*, который не так уж и просто согнуть.
                                                                                                                                * Избегает повышенного внимания к своей персоне.
                                                                                                                                * Что же автор делает по ночам? Он явно недосыпает.
                                                                                                                                * Настроение снижено.
                                                                                                                                * В момент написания сообщения у автора были противоречивые чувства, сомнения.
                                                                                                                                * Это письмо писалось явно не в спешке.
                                                                                                                                * Автор отстаивает свои позиции и интересы.
                                                                                                                                * То ли автор грустит, то ли ностальгирует, то ли вспоминает прошлые романы - кто же поймёт этих лириков.
                                                                                                                                * Любит простор.
                                                                                                                                0
                                                                                                                                Чем больше ограничений, тем больше свободы для творчества...
                                                                                                                                • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                                                    0
                                                                                                                                    Так было не всегда. Даже 2 года назад еще в полном ходу были SoC троечки 40MHz с 4M памяти. Вот никогда бы не подумал что 2006 году мне придется вспоминать TurboVision. Оттянулся по полной :)
                                                                                                                                    0
                                                                                                                                    огромное спасибо!!!
                                                                                                                                    раньше не читал...
                                                                                                                                      +1
                                                                                                                                      ненавижу слово "Боян". Точнее возненавидил его с появлением соц. сетей в интенете. Спасибо за статью, раньше не читал, очень понравилось.
                                                                                                                                        0
                                                                                                                                        Шедеврально!
                                                                                                                                          0
                                                                                                                                          Я чуть не заплакал, блин (
                                                                                                                                            0
                                                                                                                                            Пелевин "Компилейшен Си" ;)
                                                                                                                                            Ну это я так, прикалываюсь.

                                                                                                                                            А вообще текст понравился. Даже при чтении постоянно приходилось отгонять от себя мысль
                                                                                                                                            что концовка может все испортить. Рад что этого не произошло.
                                                                                                                                            • НЛО прилетело и опубликовало эту надпись здесь
                                                                                                                                                0
                                                                                                                                                супер.
                                                                                                                                                  0
                                                                                                                                                  имхо, переписать бы немного стиль изложения на более спокойный =)
                                                                                                                                                  а так — интересно было прочитать, что-то для себя вынес
                                                                                                                                                  а то, понимаешь, привыкли все к оперативке в 2 гига и хорошим процессорам =))
                                                                                                                                                    0
                                                                                                                                                    Великолепно!
                                                                                                                                                    Читал на одном дыхании!
                                                                                                                                                    Спасибо!
                                                                                                                                                      0
                                                                                                                                                      потрясающий текст. слёзы наворачиваются
                                                                                                                                                        0
                                                                                                                                                        А потом начальство почесало репу, и вместо MCU со 128 байтами RAM / 8Kb Program ROM или FLASH или что там у них было, вздохнуло, и разрешило поставить такой же по футпринту микроконтроллер, но 512/16Kb, который обошелся на десять центов дороже.
                                                                                                                                                          0
                                                                                                                                                          Речь в статье скорее всего о чипе наподобие PIC16F724. Редкостное палево для программиста-эмбеддера…
                                                                                                                                                            0
                                                                                                                                                            Красиво, спасибо.

                                                                                                                                                            Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                                                                                                            Самое читаемое