Серия «Как мы программировали в 80-90х»

98

Как мы программировали в 80-е

- Чтоб я ещё хоть строку программы написал!
Это был ответ Паши на вопрос:
- Ну чё, как?
Вопрос относился к защите диплома, с которой Паша вышел на факультетское крыльцо. Здесь приходили в себя те, кто уже вышел с защиты и усиленно мандражили те, кому ещё предстояло зайти.
Это был тёплый июль 1988-го года.

- Воистину cancel! – ответил я тогда и был убеждён – больше никаких перфолент и распечаток. На свой самолётостроительный факультет я поступал с мечтой стать инженером-конструктором, а специальность, по недоразумению, выбрал самую расчётную – прочность летательных аппаратов.

И уже с первых дней первого курса (1982г!) в нашем расписании появились занятия «Основы программирования».

Слово «ЭВМ» - электронно-вычислительная машина - было в самом своём романтическом зените. Молодые учёные, разглядывающие на просвет перфоленты или задумчиво, сквозь очки всматривающиеся в дисплеи и распечатки, коллажи с двоичными кодами – были на плакатах, в газетах, в научно-популярных и художественных фильмах.

Плакаты более развитой цивилизации.

Это выглядело затягивающе-интересным, неизбежным символом ещё одного модного слова той эпохи – НТР, научно-техническая революция.

С первых занятий на факультетском вычислительном центре проявилась пресная рутина.

Оказалось, дисплеи с клавиатурами – это только начало удава, его хвост в виде кабелей вел в соседние помещения, именно там жила непосредственно сама ЭВМ. Большие шкафы с мигающими индикаторами, раскалёнными лампами, шумными вентиляторами. Когда, внезапно, заработал принтер – настоящий станок с прикрученными к полу чугунными опорами – девушки с криком «мама!» кинулись из помещения. Осатаневший принтер стремился сорваться со станин вслед за ними.

В самой дальней комнате жил Его Величество Жёсткий Диск, входить в неё могли только небожители - аспиранты и преподаватели.

От плакатов про НТР веяло лабораторной тишиной и свежестью, на деле ЭВМ шумела, вибрировала и воняла как... не всякая машина. От первобытных дисплеев и запаха греющихся лаков, пластиковых деталей и изоляции первое время побаливала голова. В целом обстановка больше напоминала заводской цех.

На нашем ВЦ было очень похоже.

Среди всего этого предстояло осваивать язык FORTRAN, создание алгоритмов, блок-схем и написание программ.
На самих занятиях происходили события самых драматических масштабов – всё зависело от настроения машины, популяций перелётных птиц и расписания трамваев.

За одну пару можно было успеть написать и просчитать простую задачу, а можно было набить полторы строки и ждать, пока небожители расколдуют положение туч и машина развиснет. Курсовики усложнялись, с ними вырастали и программы. Их нужно было ввести в ЭВМ, проверить и отладить – это иногда и семестровый объём предоставленного машинного времени. Программы начинали приобретать зримый вес вложенных трудозатрат. Иногда [часто!] в результате сбоя или чьей-то ошибки программы пропадали – все, кого охватывал масштаб события значительно расширяли как словарный запас, так и спектр эмоциональных переживаний – от алкогольной нирваны до философского дзена. Особенно – если коматоз накрывал машину накануне зачётов и сессий.

Конечно, нынешний юзер снисходительно укажет:
- Бэкапить надо было!

Я расскажу тебе, нынешний юзер, про бэкап во всех представленных тогда видах:
- бумажные перфоленты. Выглядели красиво, однако при считывании могли порваться или зажеваться. При считывании возникали ошибки, их надо было отловить и править;
- магнитные ленты. Выдавались только небожителям, под строгую отчётность, стоили валютных денег;
- бэкап на другой диск. Делали это только небожители и только если у них было время, а на «другом диске» было место. Диск, к слову - значительно отличался от нынешнего его вида - размерами, весом, ёмкостью - всем, поинтересуйтесь;
- распечатки текста на бумажные рулоны. Которые были в дефиците и получить распечатку можно было только при, снова, удачном положении туч и облаков. Поэтому распечатки берегли и в них постоянно вписывали карандашом исправления и дополнения. Если программа слетала – приходилось её по новой перенабивать с распечатки вручную – вместе с записанными исправлениями. А если «апдейт» не был записан - вспоминай или придумывай снова.

Как вы поняли – с бэкапами были свои особенности.

Перфолента.

Перфолента.

Тогда же мы провели первый «хакинг». Был у нас одногруппник Серёга, взаимоотношения с ЭВМ давались ему особенно трудно и он регулярно «вешал» машину. Однажды он нам окончательно вскипел мозги, мы всей группой сочинили (ну, да, та самая картина про запорожских авторов мейла турецкому султану) самые изощрённые эпитеты, распечатали текст на перфоленте и подменили её Сергею. Когда он запустил перфоленту на просчёт и дисплей построчно начал выводить текст - на его лице мы видели великие эмоции, это было эстетское кино.

Зависимость от настроений машины мне давалась тяжело и дорого, поэтому на третьем курсе я вступил в авантюрные взаимоотношения с Электроникой БЗ-34, эту историю выкладывал ранее - Путь в тысячу ли начинается с первого шага программы. Были отдельные персонажи, которые называли её ожившим абортом кибернетики, я же ей и её создателям благодарен до сих пор.

К слову. на факультетском ВЦ проводились ещё и вычисления в интересах тех заведений, в которые распределялись наши выпускники. Например, завод им.Чкалова, на котором тогда производились Су-24.
Поэтому машинные ресурсы студентам доставались из остатков.

Подозреваю - я слишком сгустил краски. Сам ВЦ был достаточно современным, машина, если правильно помню, была - ЕС-100-45. Ещё была машина на факультете в Дзержинском.
Глядя из нынешнего времени - мы были очень круто упакованы - мои искренние восхищения всем причастным руководителям и преподавателям. Тот запас знаний, который нам тогда дали - он и сейчас позволяет вникнуть в IT-технологии, когда приходится с этим соприкасаться плотно.

А глюки большой машины - это же, некоторая неизбежность сложных систем, это опыт, который нам ещё только предстояло понять и обрести.

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

Словом, Паша имел множество поводов для своих слов, их было и у меня, и у всех одногруппников в тот прекрасный летний день начала нового этапа нашей жизни.

- Чтоб я ещё хоть строку программы написал!
- Воистину cancel!

Эх, думал – в один пост излить, да тут такая непечатной силы ностальгища полезла. Поэтому, простите, продолжение следует.

P.S. Надо же, на Пикабу даже есть подходящее сообщество - IT минувших дней! Надеюсь, выложил пост по адресу.

UPD:

Продолжение - Как мы программировали в 90-е. Часть #01

Показать полностью 7
250

Как мы программировали в 90-е. Часть #01

Вступление - тут: Как мы программировали в 80-е .

После института я распределился в КБ в Омске. Аббревиатура «КБ» в советские времена – это конструкторское бюро (какова эпоха – таково и КБ!), попасть в КБ было престижно, а в закрытое – т.е., секретное – особенно. Закрытые предприятия назывались ящиками – все отправления на него адресовались на почтовый ящик с определённым номером.

Заведение было авиакосмическим «ящиком», а моё появление в нём совпало с первыми поставками персоналок – IBM PC AT 286. Меня тут же, как молодого специалиста, привлекли к освоению новой техники.

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

Это была эпоха TurboC, Pascal, бэйсики разных вариантов, AutoCAD – каждый день кто-то приносил дискеты с новым софтом, каждый день были новые открытия.

Именно тогда я в полной мере понял название книги великих и зачитанных АБС:
— Понедельник начинается в субботу!
Да, было именно так – в пятницу я умотанный интенсивной неделей шёл домой, а уже утром в субботу в голове возникали решения рабочих задач и я с нетерпением ждал понедельника – сесть за комп и продолжить работу!
Мне поручили несколько расчётных задач и обучение олдов - я был по-настоящему счастлив!
Первые года три я не знал Омска – ездил исключительно с заводской общаги до проходной и обратно, мне очень нравилась моя работа.

Понедельник действительно начинался в субботу, а Александр Привалов был, будто, списан с меня.

Снаружи, между тем, происходил развал СССР, моя вполне достойная для молодого инженера зарплата - 160-180 рублей – быстро превратилась в труху, да ещё и с большими задержками. Госфинансирование наших тем довольно быстро исчезало, из КБ стали уходить люди, у меня же был повод задержаться.

Основной работы, повторюсь, почти не было, зато у меня появились леваки – обслуживание компьютеров коммерческих фирм. Вызовы были, примерно, одинаковые: натравить антивирус, прочистить мышь, продать расходники.
- HappyTalkie, мы тут компьютер купили, – встречает меня свежий, по виду, коммерс - малиновый пиджак, пейджер на поясе, толстая кожанная барсетка. За компом – юная секретарша в миниюбке и яростным макияжем. – посмотрите, это хороший комп?

- Нам нужно ввести в него... как её?
- ...информацию! – подсказывает из своего мейкапа секретарша.
- А, вот! Информацию!
- Какую?
В этот момент беседа повисала недоумённой паузой-укором:
-  Ну, это вы должны мне рассказать, какую? Вы же этот... компьютерщик?!

Первое время такой вопрос вызывал недоумение уже у меня:
- Какую информацию? Юридическую, бухгалтерию, договоры?..

— У меня дома есть видеомагнитофон и я видел в фильме – там в компьютере можно это...— тут коммерс в беспомощности оборачивался на секретаршу.
- ...базы данных...- сходу подсказывала она, видимо, они этот фильм смотрели вместе.
- Да, базы он на экране показывает. Мне точно так же нужно.

Примерно такие разговоры и уровень понимания тогда были.

Анекдот эпохи: Читал на ночь пейджер - много думал.

Потом я разобрался и предъявлял коммерсантам самый широкий спектр образовательных мероприятий – обучение офисным программам – Лексикон (олды помнят!), SuperCalc (позже – Excel), организация файлов и каталогов, установка бухгалтерских и юридических программ  и т.д.

Это было хлебное время! И фильм «Жмурки» для меня - документальный.

По канону того времени рядом с Михалычем обязательно должен был стоять компьютер. Как и большинство коммерсов, работать он на нём не умел, максимум - раскладывать пасьянс. Зато это был нормальный такой понт, даже круче четырёхглазого.

По канону того времени рядом с Михалычем обязательно должен был стоять компьютер. Как и большинство коммерсов, работать он на нём не умел, максимум - раскладывать пасьянс. Зато это был нормальный такой понт, даже круче четырёхглазого.

Тогда же у меня состоялся договор с моим непосредственным начальником на работе:
- Пока не уходи, я буду давать тебе любое количество отгулов, буду прикрывать твоё отсутствие, зарплату будешь получать в полном объёме, главное – приходи, когда нам нужно будет, работы сейчас немного.
- Спасибо, Александр Юльевич!
- Когда дело будет совсем безнадёжно – я сам тебя предупрежу, заявление об увольнении подпишу сразу.

Поэтому у меня была полная свобода действий и, практически в полном моём распоряжении, отличный компьютер и доступ к мощному коллективному разуму ещё не разбежавшихся сотрудников КБ а программисты у нас там были очень сильные.

И однажды меня пригласили в серьёзный офис и хозяином его был не малиновый коммерс, а стильно одетый денди – с заметным хорошим образованием и манерами. И доходом.

- Мы каждую неделю получаем с биржи файл с большой таблицей котируемых на ней товаров. Нужна программа, в которой мы сможем найти нужные товары, увидеть, где их можно дешевле купить и где их покупают дороже.

В то время любое предложение о работе означало автоматическое моё согласие с короткой остановкой на обсуждении сроков и оплаты.

Денди сходу предложил мне зарплату, которая заставила меня согласиться без раздумий.
А ведь подумать стоило и было над чем – если бы я понимал всю глубину вопроса...

Всё моё программирование было связано с расчётами – формулами и числами. Здесь предстояло работать с текстом, поиском и выборками.

Как-то же это делают? - думал я по дороге домой, и аванс прожигал мне карман.
- Нет таких задач, которые не может решить советский инженер! – говорил во мне советский инженер.
– Если кто-то это уже делает – значит и я смогу! – говорил мне внутренний советский программист.
Вот такие тогда у нас были внутренние скептики.

На следующий день я приставал ко всем в КБ, кто уже умел хотя бы какие-то азы на компьютере,

К вечеру у меня был необходимый минимум знаний по БД, установлен Clipper (в этом месте в сознании олдов должно сверкнуть слово Nuntucket!), а ещё была добыта дискета с документацией на него – я погрузился во Вселенную Баз Данных.

И уже к концу первой недели проступили контуры суровой реальности.

В этом месте уместно сделать перерыв для понимания – какие подробности нужны для дальнейшего повествования, а какие – для избавления от перегруза и сохранения ясности истории - перенести в другой раздел мемуаров.
А олдовых пикабушников приглашаю добавить в комменты своих историй, новым поколениям, модема и дискет не нюхавшим, в поучительное назидание.

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

Продолжение следует.

UPD:

Продолжение - Как мы программировали в 90-е. Часть #02

Показать полностью 7
72

Как мы программировали в 90-е. Часть #02

Предыдущие главы:
Как мы программировали в 80-е .
Как мы программировали в 90-е. Часть #01

Пояснение перед продолжением.
Всего-то хотел рассказать парой постов об особенностях национального охоты программирования в переходный период. Стоило же тронуть пласты памяти о тех временах - как стали проступать события и персонажи, рассказывающие об эпохе достовернее любых мемуаров. Поэтому эта глава - мой внутренний компромисс между желанием бережно, в подробностях, сохранить ту атмосферу и уважением к вашему вниманию к моим историям.


С документацией по Клипперу было приключение.

Читать колоссальный мануал с дискеты, и даже с диска было очень неудобно, к тому же на компьютере была установлена MS DOS 3.5. Олды понимают, а поколениям Windows нужно объяснить – ДОС была однозадачной системой. Какую программу запустил – в той и работаешь, никаких других окон – нет. Поэтому – если запущен редактор с текстом описания, то компиляцию программы уже не запустить, нужно закрыть редактор и уже после этого запускать компилятор с нужными параметрами. И всё это происходит медленно, мееедлеееенннннооооо.

Поэтому описание Клиппера нужно было иметь в распечатанном виде. Девчонки с большого машинного зала за шоколадку «Вдохновение» (это была самая авторитетная валюта в таких делах, попробуй её купи тогда) распечатали мне мануал – больше 500 страниц А4.

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

Таких книг у нас, разумеется, не было, кто-то добрый перевёл их и распространял на дискетах. В распечатанном виде описание языка было объёмнее.

Ещё со студенческих времён у меня был свой фирменный способ сшивания стопки листов.

На 3м курсе один из наших преподов решительно предупредил на первой же лекции по своей дисциплине:
- Кто принесёт мне курсовик, скреплённый скоросшивателем – сразу снижаю на балл. Если скрепкой – на два балла.

Мой третий курс приходился на середину 80-х, степлеры и сшивающие стопку бумаг пружинки существовали в исключительно в зарубежном кино – там, где лимузины, боинги и офис на Манхэттене. Наша реальность содержала в себе счастливое детство с велосипедами «Орлёнок», хлеб с корочкой за 20 коп и даже ракету Р-7. При всём этом отечественный хайтек изобретение брошюраторов начисто игнорировал.

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

Когда я положил курсовик преподу на стол – прямо перед его носом, на кафедре повисла тишина:
- Как? - прозвучал сдавленный в бессильной попытке отгадки голос препода.
- Плюс один балл? – спросил я.
Вокруг собралась кафедра, на столе лежал мой идеально выглядящий курсовик.
- Как?

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

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

Для понимания: это мои хэндмэйдные органайзеры, которые скоро поедут к моим друзьям на новогодние столы. Разумеется, у курсовиков были полагающиеся титульные листы. Подсказываю: торцы, просто промазанные клеем - разваливаются, мой метод крепче и надёжнее.)

И вот, я решил таким же способом сшить и мануал по Клипперу. Для этого нужно было увесистую стопку пронести через проходную. я даже и не шифровался особенно – ведь распечатка не имела отношения к секретам.
- Чего это у тебя там? – хозяйски заглянула в пакет тётка из проходной будки.
- Распечатка языка Клиппер... – попытался объяснить я.
- ЧЕЁООО? – моментально мобилизовалась тётка, не поняв ни буквы моего ответа, и нажала на кнопку вызова охраны. Вразвалочку пришли ещё две тётки – такие же безразмерные, как первая.

Сцена повторилась:
- ЧЕЁООО? – заорали они в два голоса. – А ну, пошли с нами!
И, подхватив меня под руки, как пушинку, поволокли (понесли?) мимо обалдевающих от зрелища коллег в комнату начальника охраны. В комнате был длинный стол во главе которого сидел непосредственно начальник – когда-то ретивый, а теперь пожилой вальяжный служака в потёртой, мятой форме.
— Вот! Доставили несуна! – так же победным хором доложили тётки.

Начальник приподнялся из-за стола:
— Чего это у тебя там? – диалог стартовал по третьему кругу, я уже привычно ответил.
— ЧЕЁООО? – удивлённо протянул начальник охраны.
Так я впервые оказался в ситуации, когда должен был объяснить объект, все составляющие которого отсутствовали в мире реципиентов: язык программирования, операторы, базы данных.... Сшить вручную листы в книгу...
— А зачем?... Для чего? – и снова - ЧЕЁООО?. И, наконец, классическое в классических же интонациях: – Да нахрена?
В голосе отображалась вся гамма от «Расстрелять к чёртовой матери!» до «пшшшел вон, дурак!». Я уже начинал мешать ему мирно дослуживать до пенсии.

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

Пояснение – была литература закрытая, т.е., секретная, запрещённая к выносу, и открытая – для свободного доступа.

Когда наутро сослуживцы в курилке стребовали с меня пояснений за вчерашнее эпическое зрелище, в КБ эта фраза «Не дослужился, значит, до книжки-то!» моментально стала, как сейчас сказали бы — мемом.
— Ребята, поделитесь заваркой?...
— Не дослужился ты до заварки-то...
— Займи трояк до получки?
— Не дослужился ты...

А ещё один старший коллега рассказал мне в ответ, как он впервые носил регистрировать пятидюймовую дискету.
— Оказывается, они впервые её увидели, я даже пожалел,мне все говорили – не нужно им дискеты показывать, хлопот наберём. Так и вышло! Представляешь, начальник  долго разглядывал её со всех сторон, увидел прорезь, через которую магнитная головка дискету читает. Вопросы задавал, вникал. На следующий день радостный пришёл, говорит – Я придумал! надо сургучом заливать и печать ставить. Зачем? - спрашиваю. А чтобы они (видимо, имелись в виду шпионы) прочесть не смогли, а если печать отковыряют – мы сразу увидим!

Такие времена были, такие времена. Новая эпоха стремительно сметала прежнюю, мы начинали жить в новом жанре – на стыке драмы и абсурда.

Сшитый мануал произвёл нужное впечатление в КБ - диковинка, на внушительный том приходили посмотреть из других отделов, рукастых у нас ценили, я выслушал много хорошего.

Самое главное - его было сложно заныкать, все знали - это мой мануал и если просили погонять - обязательно возвращали.

Продолжение следует.

UPD:

Продолжение - Как мы программировали в 90-е. Часть #03

Показать полностью 5
77

Как мы программировали в 90-е. Часть #03

Предыдущие главы:
Как мы программировали в 80-е .
Как мы программировали в 90-е. Часть #01
Как мы программировали в 90-е. Часть #02

Итак, у меня появился мануал по Клипперу – увесистый том, настоящая библия, внушавшая и шок – методом своего изготовления, и трепет – объёмом полезных, бесценных знаний и ответственностью за утрату.

Вкус того времени.

Вкус того времени.

Первая же задача – загрузка (импорт) текстового файла в базу – сам по себе был интересной задачей.

Файл с котировками  приходил с биржи по итогам еженедельных торгов, внутри была текстовая таблица с повторяющимися каждые 50 строк заголовками – в этом угадывался след и дух большого ВЦ с большой машиной, большим принтером и перфорированной по обеим сторонам бумаги согласно ГОСТу.
Таблица состояла из столбцов в следующем порядке (это важнецки важно!):
| № | Наименование товара | Артикул | Цена единицы| Количество | Расположение |

Были ещё какие-то поля – общим числом около 10-12. Каждый столбец таблицы нужно записать в соответствующий столбец таблицы – и с этим я справился довольно быстро.

Следующая задача – поиск и выборки по БД принёсла множество открытий.

К примеру – насколько я был самонадеян в тех сроках, о которых мы договорились с Денди. А ещё открытия были самые чудесные:
- города Николаев и Новосибирск при сортировке оказывались выше Алапаевска и Барнаула;
- поиск упускал все слова, в которых была прописная кириллическая «р». Какие-нибудь шины он находил, а, скажем, перфоратор – игнорировал, хотя в файле котировок он был.

При выводе выборки на экран «р» так же отсутствовала. Если у Остапа Ибрагимовича машинка печатала с турецким акцентом, то у меня появлялись целые новые лингвистические сущности - «тубы» вместо «труб», «ейки» вместо реек и прочие «каны», «убильники», «писсуаы» и даже «отоы».
Пояснение. В машинке, купленной героем книги «Золотой телёнок» Шурой Балагановым отсутствовала буква «е», поэтому Остап Бендер был вынужден заменять её на «э»:
— Вот послал бог дурака уполномоченного по копытам! — сердился Остап. — Ничего поручить нельзя. Купил машинку с турецким акцентом. Значит, я начальник отдэлэния? Свинья вы, Шура, после этого!

Это была загадка, об которую мы сломали всю нашу коллективную логику. Тут, на удачу  у одного из наших программистов случилась короткая командировка в Москву. Он-то и привёз ценные знания.

Пояснение. Времена были доинтернетные. Уже появились на досках BBS и форумы в FIDO – мы же были от них отрезаны секретностью, был строгий запрет на модемы. Лавки с литературой на тему компьютеров и ПО только появлялись, книги в них были в категории «Как включить компьютер в розетку для чайников». Поэтому главный канал информации – это командировки в центры вычислительной жизни – Москву, Новосибирский Академгородок и т.д.

В первую же свободную минуту вокруг вернувшихся из командировок всегда собирался круг особоприближённых — услышать новости из первых рук первыми:
— Поговорил я там с знающими людьми за чашкой чая... — примерно так начинался «доклад» просветлённого возвращенца.

В этот раз знающие люди передали весть персонально мне:
— Заглавная кириллическая «Н» в первых версиях файлов формата СУБД dBase была служебным символом – знаком окончания строки в мемо-полях. Ушлые люди хитрят и меняют её на латинскую «Н» – на заглавную эйч. В таблице кодов ASCII латиница выше региональных (относительно США) алфавитов, поэтому в кириллических базах Николаев оказывался выше Артамонова.

А прописная кириллическая «р» была служебным символом в теле языка Си. Поэтому большинство программ, написанных на Си эту букву «не видели». Norton Commander, например.  

Клиппер, как дальний родственник СУБД dBase, написанный на Си, хромал на обе буквы.

Коллективный кириллический разум уже придумал костыли и даже их с разным успехом их использовал – именно с разным.

Дальше – больше. Самые важные поисковые функции с региональными алфавитами либо работали ограниченно, либо отказывались работать совсем. Опции поиска «все заглавные», «все прописные» и «игнорировать регистр букв» – работали только в латинице.

Поэтому приходилось писать аналоги этих функций на языке Клиппера, и это страшно замедляло всё — и разработку программы, и её работу с базами. Там, где операция легко выполнялась штатной функцией за доли секунд, рукописная занимала иногда десятки строк и поиск на тестовой базе в 1000 записей происходил в течении нескольких минут.

Аванс, полученный от Денди, я уже значительно подъел, ещё больше её подъела, сгрызла, гопнически отожрала инфляция. Спасали небольшие леваки, в том числе – и по написанию небольших баз данных. Котировочная же программа заполнила все мои мысли – и на тему её написания, и на тему – какими могут быть последствия, если я нарушу условия договора.

Я созвонился с Денди о встрече.
— Вот эта часть уже работает, — показал я на офисном компьютере работу импорта.
— Прекрасно! — удовлетворённо откинулся в кресле Денди. — А поиск?
— Тут такое дело... — и я честно изложил весь список случившихся откровений.
Мы договорились о продлении договора ещё на месяц, я выдохнул – Денди принял ситуацию спокойно. К тому времени я уже знали истории, когда малиновые заказчики оперировали в подобных ситуациях другими аргументами, некоторые мои коллеги изрядно настрадались.

— Будь проклят тот день, когда я сел за баранку этого пылесоса! — всё чаще звучало в голове.

И тут из очередной командировки кто-то привёз дистрибутив FoxPro! Это был совершеннейший прорыв – это и среда программирования, и возможность строить архитектуру баз данных и работать с ними из командной строки – с моментальным отображением результатов в окне отладчика! Самое главное – Фокс понимал кириллическую «р»! Решение о миграции с Клиппера на Фокс было моментальным и неоспоримым, работа над программой значительно ускорилась.

Пояснение. За давностью лет какие-то подробности уже прочно забыты. Припоминаю – был какой-то хак от наших умельцев – программа, которая меняла какие-то значения внутри Фокса – и он начинал нормально работать с «р» или даже и с Эйч тоже. Ещё была резидентная программа, которая подменивала их «на лету». Потом, вроде, это решилось на версии 1.2, когда компания Fox Software обзавелась дистрибуторами в России? Если вы знаете этот нюанс лучше – прошу поправить, а готов проапдейтить свою историю, самому стало любопытно!

В тот период случился ещё один забавный момент.

У меня было ощущение – алгоритм поиска и выборки можно значительно упростить и сделать быстрее. Я уже сделал две БД – одна была заполнена кириллическими записями, вторая – латиницей, так я имел возможность сравнивать время работы поисковых операций. Из-за всех вышеописанных подлостей от отцов-разработчиков и моих трюков по их преодолению кириллический поиск занимал минуты там, где «родной» пролетал в секундах, в долях секунд. Я перепробовал несколько методов – поиск немного ускорился, порядки отставания во времени остались. И чем дальше – тем больше я концентрировался на этой задаче.

И однажды решение мне - приснилось! Такое уже было у меня на третьем курсе – во сне я увидел свою ошибку, которую я повторял в своём курсовике, выложу эту историю позже, она великолепная!
В этот раз мне приснилась стандартная функция Фокса, только её использование было необычным - «с приподвывертом». Утром я в нетерпении ворвался в кабинет, заменил огромный блок текста программы на эту функцию и две дополнительные текстовые переменные. И произошло прекрасное – таймер поиска по кириллической базе показал почти равное время с эталонным значением по нативной базе!

Я позвал коллег – это был один из великолепнейших моментов в жизни!

Сам тот период вспоминается как время огромных прорывов и открытий – новый софт, новые знания, каждый день, каждую минуту.

Однажды мы с приятелем-коллегой, изрядно задержавшись у компов, каждый за своими задачами, шли от КБ к заводской проходной. У меня заработали нужные связи между базами, он запустил процесс, над которым работал несколько месяцев.

— Знаешь, — сказал он мне тогда, я до сих пор помню эту фразу, сказанную на каком-то очень возвышенном выдохе, — по-моему, это, примерно так же, как в первый раз залезать в трусики девушке...
Где-то так, да...

Аванс закончился, писал я программу уже на сухарях – тем понятнее моё нетерпение, с которым я доделывал завершающие пункты в ней – и ехал в офис Денди!

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

...И тут...

...многократно проверенный импорт – слетел!!!

СЛЕТЕЛ!!!

Преодолевая шум в голове, пытаюсь понять – почему? Наверное, изменился формат файла? Лезу в него – а там!!! Всё по-другому, всё! Другая структура заголовка и, самое главное, другой порядок столбцов! Мало того – цена записана с десятичными пробелами (у меня - без!), вместо точки – запятая и так – во всём!

В изумлении поворачиваюсь к Денди:
- Это же совсем другая таблица?
- Да они все, примерно, одинаковые – товар, количество, цена...
- Все? Примерно?

Оказалось, Денди получает котировки не с одной биржи, а с разных. У каждой – свой формат таблиц. В некоторых (опять ощущается дух большого ВЦ!) все наименования написаны КАПСЛОКОМ, в некоторых – и вовсе CYRLAT – это когда кириллический текст написан латиницей! У кого-то артикул был после количества, у других он шёл до наименования товара, у третьих он отсутствовал. И так далее!!!

У меня просто потемнело в глазах. Я делал импорт под один формат – а их тут уже с десяток, а брокеры, как оказалось, постоянно заключают договоры с новыми биржами! И везде – везде! – программисты писали базы в своих форматах!

Продолжение следует.

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

UPD:

Продолжение:

Как мы программировали в 90-е. Часть #04

Показать полностью 3
62

Как мы программировали в 90-е. Часть #04

Предыдущие главы:
Как мы программировали в 80-е .
Как мы программировали в 90-е. Часть #01
Как мы программировали в 90-е. Часть #02
Как мы программировали в 90-е. Часть #03

Разумеется Денди, не знал об этих тонкостях, поэтому и отдал мне тогда – на первой беседе – один файл.
Мой ор я слышу до сих пор.

Денди, видя моё потрясение – и, надо отдать ему должное! – признав такой фейл – немного добавил денег. Немного.

В течении нескольких недель я сделал модуль универсального распознавания формата таблиц. Для его проверки я даже сделал генератор таблиц – он произвольно собирал столбцы из разных файлов и делал таблицы совершенно произвольных комбинаций столбцов, форматов чисел, написания текстов. Импорт сперва сканировал файл и, отметая служебные строки и заголовки, сравнивал наиболее частые строки с библиотекой уже существующих шаблонов. Если ни один шаблон не совпадал – собирался новый шаблон таблицы, в котором определял типы полей – название товара, артикул, количество, цену, в каком городе расположен. После этого происходил импорт таблицы с одновременным вычищением подменных букв «Н» и «р», переносом текста из CAPSLOCK в нормальный, распознаванием полей и их записью в соответствующие разделы товарной базы данных.

Сейчас, возможно, я сто раз подумал бы – браться ли за такое? Тогда у меня был вагон неофитского энтузиазма и... голод. На свою инженерную зарплату я мог купить полтора американского шоколадного батончика.

Конвертацию CyrLat-а в нормальный текст отложил на потом – там были тонкости и их надо было делать вдумчиво. Например «шины» могли быть записаны как SHYNY, SHINI со всеми промежуточными вариантами. Т.е., у задачи начала отрастать внушительная такая, увесистая и раскидистая ветвь создания словаря – она решаемая, только границы у неё в загоризонтной перспективе, а у меня уже и сухари стали кончаться. Денди мои аргументы принял, к тому же оказалось – это единственная биржа с такой кодировкой, у неё на каком-то этапе передачи данных использовался канал телетайпа и они собирались от него отказываться и переходить на модемы.

— Будь проклят тот день, когда я сел за баранку этого пылесоса! — всё чаще звучало в голове.

И вот – настал этот день, я принёс заказчику окончательный вариант программы. Денди скормил ей сразу несколько файлов – по нескольку тысяч строк в каждом, ввёл несколько товаров для поиска, получил выборки и азартно хлопнул ладонью об ладонь:
— Отлично! Поработаем пока так, там видно будет, — и выдал мне вторую половину суммы.

В общей сложности я прозанимался этой работой около полугода. И если в начале оговорённые деньги выглядели весомо и на них можно было шикануть, то окончательно расчёта хватало лишь на бутылку самого дешёвого шампанского и шоколадку, вот и весь шик-пшик.
Это было крупное разочарование.
Была идея продаж этой программы и мы с Денди всерьёз обсуждали эту перспективу. Время опередило нас – деятельность бирж стала снижаться, брокерские конторы теряли своих клиентов – в стране начали налаживаться прямые связи между предприятиями.

Зато я приобрёл колоссальный и абсолютно новый опыт – работа с базами данных и с текстами! Тексты – особенно важный опыт, он пригождается мне до сих пор.

В период работы над программой текст, слова, смыслы стали главным объектом моего внимания. И если заказ завершился, то интерес к тексту – только увеличился. Уже тогда у меня появились гипотезы – через письменный текст, через речь мы транслируем бОльше «информаций» о себе, чем рассказываем буквально. Когда в результате череды смен профессий настало время погрузиться в психологию – это моя нынешняя деятельность – я выбрал когнитивно-поведенческое направление, оно мне было ближе – именно с ракурса анализа текста и речи. А тот опыт 30-летней давности пригождается мне и сейчас в исследовании эмоциональных состояний (подробнее - Приглашение к Анкетированию 4.0!).

После того заказа я ещё несколько лет работал программистом, потом, неожиданно для себя – да и для всех окружающих – оказался директором фирмы. И уже в этой деятельности внимание к невербальным слоям текста, речи  ощутимо помогало понять – с кем я имею дело, хочет ли меня сидящий напротив улыбчивый и обаятельный бизнесмен, или, наоборот, откровенный бандос – кинуть или с ним можно честно работать. Всё-таки, это была середина 90-х. Я уже выкладывал на Пикабу несколько историй с того периода:
Колбасный авиатор.
Платежка.
Плюс компьютеризация всей страны!
Сияющие 90-е. Афера с китайцами.
Плюс компьютеризация всей страны!

Думаю, на этом можно завершить цикл программерских историй – хотя, вертится ещё пара сюжетов со свят-свят-свят 90-х, возможно, выложу их позже.
Благодарю читателей и новых подписчиков за такое ободряющее внимание!

Показать полностью
Отличная работа, все прочитано!