нее нет вид? Или я не понимаю по-русску?
— Нет, все правильно, Шарль,- сказал Юрковский.- Вид у нее,
конечно, есть. Только разный, понимаете? Когда она на потолке,
она как потолок. Когда на диване — как диван…
— А когда на Грегуар, она как Грегуар,- сказал Моллар.- Ви
все шутите.
А. и Б. Стругацкие "Путь на Амальтею"
Я начал свою программистскую деятельность лет в десять. Возможно раньше, точно уже не помню. Помню только как «помогал» отцу программировать древние Искры, на бумажке высчитывая адреса условных и безусловных переходов в машинном коде и воодушевлённо загоняя латунные кольца в текстолитовые планшеты. Каждое кольцо несло в себе информацию ровно на один бит.
Потом, как-то сразу, появились восьмибитные компьютеры. Все журналы, которые я с упоением читал, в то время, от Радио до приложения ЮТ-а «Для умелых рук» (возможно, за исключением «Юного натуралиста») печатали всё новые и новые схемы персональных компьютеров! К сожалению, с паяльником я всегда обращался гораздо хуже, чем мой отец. Руки у меня были совсем не умелые.
С деталями проблем не было, ящики стола были ими забиты. Однажды, когда я просто заикнулся о том, что хочу сделать осциллограф, в качестве курсового проекта для УПК, отец молча сходил в кладовку и принёс оттуда электронно-лучевую трубку. До сих пор не понимаю, откуда он её взял и для чего она была нужна ему самому. Дело в том, что при всём этом домашнем изобилии, радиодетали были страшным дефицитом (как многое в то время). Иногда, по ночам, приходилось делать вылазки на известную всему городу радиосвалку, чтобы раскопать (буквально) что-то интересное.
В общем, свой компьютер я так и не собрал. Разумеется, это не означает, что у меня не было доступа к компьютерам! У моего друга (кстати, в отличии от меня, он штамповал Спектрумы и АОН-ы на Z80 как пирожки) был шикарный, по тем временам, Вектор 06Ц (Ц — означало цветной!), а мне самому, на выходные и под честное слово давали легендарную БК-шку! Причём, вместе с монитором. Я пёр всю эту тяжесть на своём горбу через весь район (да, времена были не спокойные), а к понедельнику возвращал обратно.
Я начал с Бейсика и Фокала. Впрочем, вопреки знаменитому высказыванию Дейкстры, я не считаю, что меня это сильно испортило. Возможно, потому, что перед ними, всё таки, были машинные коды Искр? Не знаю. Я читал Вирта и Липски и переводил алгоритмы на Бейсик. На Бейсике тех лет было чудовищно сложно выразить рекурсию (в основном потому, что вместо локальных аргументов функций приходилось использовать вполне себе глобальные массивы), но я этого добился.
Когда (на том самом Векторе) я написал на Бейсике свою версию "кривой Гильберта", мой друг не поверил, что это будет работать. По его словам, входов в подпрограммы там было гораздо больше чем выходов! Разумеется, он был не прав. Дело ведь не в количестве. Восемь ферзей заставили поволноваться уже меня. Вектор слишком долго не подавал признаков жизни! Впрочем, через пару минут он выдал первую позицию. Впоследствии, меня это часто поражало. Тот ужасный и абсолютно непонятный (мне непонятный!) код, который я писал, вопреки всем ожиданиям, всегда работал именно так, как я и планировал (ну, возможно, после пары исправлений глупейших опечаток).
Мы ещё долго мучали тот Вектор. Когда надоедали игры, писали на Бейсике (вид на тессеракт изнутри, пожалуй, навсегда изменил моё мировоззрение). Или пытались разобраться в Форте (да, он там тоже был!). Однажды, мы его даже «сломали». Мы просто не могли пройти мимо возможности установки основания системы счисления в ноль! На «дописках» к кассетам порой находились удивительные вещи. Именно тогда я впервые увидел «Китайские шахматы»! Разумеется, правила пришлось вычислять «на ощупь», поскольку все пояснения к игре были также на китайском.
Мои игры с компьютерами никак не влияли на выбор будущей профессии. Я собирался стать химиком! Всё изменилось после знаменательной поездки в Москву, в ходе которой, родители поддались моим уговорам и приобрели МК-61, подшивку старых номеров «Кванта» и головоломку «Кристалл». Пожалуй, это была моя самая результативная поездка в Москву! В первый же день, сделав все эти приобретения, я заперся на квартире у родственников, со своими сокровищами. На внешние раздражители я больше не реагировал.
У меня появился свой персональный компьютер! Со всеми его ЕГГОГ-ами, причудами 160-шагового цикла и «машинными» кодами. Я старался по максимуму использовать все возможности. Уменьшение программы на один байт приводило меня в экстаз. ПМК изменил всё. Он стал причиной, по которой я подал документы в Авиационный институт (на 4-ый факультет), а не на химфак Казанского государственного университета, как собирался. ПМК и тот факт, что в КАИ я проходил вне конкурса и без вступительных экзаменов (я был медалистом, да).
КАИ встретил меня 8000-ым Паскалем и IV-ым Фортраном. Ещё нам преподавали Лисп и Пролог. И очень много самой разной математики! Впрочем, наверное, недостаточно много (до сих пор не знаю, что такое тензор). Весь второй этаж седьмого дома занимал ВЦ. Одна машина! ЕС-1046 (цельнодраный IBM 370). И она была в моём полном распоряжении! Моём и еще двух десятков человек, работавших одновременно в "Системе Виртуальных Машин". PDP-11 (с третьего этажа) я запомнил гораздо хуже.
В КАИ я связался с «плохой компанией» и быстро стал грозой вычислительного центра. В отличии от админов, мы с удовольствием читали системную документацию (на русском языке!) и с не меньшим удовольствием применяли полученные знания на практике. Я умел делать удивительные вещи. Создавал приватные дисковые разделы, менял пароли виртуальных машин и писал канальные программы для анимации псевдографики на алфавитно-цифровом дисплее.
Всего парой команд с консоли я мог убрать свою виртуальную машину из списков контролируемых монитором виртуальных машин (машинное время ей продолжало выделяться). После этого, я становился полностью неуязвим. Такую виртуалку нельзя было даже увидеть, не то что остановить! Кроме того, я мог скрывать файлы со своими художествами, причём скрывать так, что их нельзя было восстановить, не зная имени. Разумеется, администраторы что-то подозревали. После некоторых наших шалостей приходилось перегружать реальную машину, и это их не радовало! Иногда нас пытались ловить, но как-то лениво и совсем не изобретательно. Я ни разу не попался.
Средства, обеспечивающие безопасность СВМ, по нынешним меркам, могут показаться смешными. Пароли шифровались двухбайтовым xor-ом, а системные привилегии задавались битовой маской. Да, эта маска находилась в реальной, а не виртуальной памяти, но две (из восьми, насколько я помню) привилегий обеспечивали к ней доступ (различными способами). И обе они были предоставлены всем пользователям ВЦ «по умолчанию»! Это было весёлое время.
Потом, в городе появились первые клоны IBM PC. XT-шки, а вслед за ними и AT с 286-ыми процессорами оказались и на нашей кафедре. К 3-ему курсу я был уже замечен преподавателями и привлечён к их индивидуальной трудовой деятельности. Я писал софт на Turbo Pascal-е и 2-ом FoxBase для Компрессорного завода. Так началась моя профессиональная деятельность.
Работа «на кафедре» приносила совсем немного денег. Её главным достоинством было то, что поработав таким образом примерно полгода я «примелькался» и мне стали доступны более интересные предложения. У одного из преподавателей кафедры ЭВМ (сам я был с кафедры Прикладной математики) была собственная фирма и мне предложили на ней поработать.
Компания производила и затем продавала самые разные вещи. В основном, ориентированные на безопасность. Видеоглазки, домофоны, кодовые замки с ИК-картами (поскольку камеры домофонов работали частично в ИК-диапазоне, с ними произошёл забавный казус на одной из выставок) и прочее. В числе прочего было несколько «криптоустройств», подключаемых к ISA-шине компьютера. Презентацию на одно из таких устройств мне и предложили сделать, в качестве вступительного задания. Я сделал её за одну ночь на кафедре. Поскольку с PowerPoint-ом, в те времена, я знаком не был, пришлось использовать всё тот же (уже Borland) Pascal. В графическом режиме и с EGA-видеоэффектами. Разумеется, работу я получил.
Это было время, когда я вплотную познакомился с Borland C++ и x86 ассемблером. Впоследствии, мне сильно повезло, поскольку всю нашу команду забрало под своё крыло РЦИ Национального банка. К набору моих игрушек добавились HP-UX сервер и 6-ой Oracle (правда, тогда поработать с ним не удалось). Поскольку я был очарован Turbo Vision, первым делом я засел за разработку аналогичной библиотеки под curses. Впрочем, нет. Действительно первым делом я написал вот это:
int main(int argc,char ** argv) {
for (;!fork(););
return 0;
}
К тому времени подоспел диплом. В университете (теперь уже университете!) я почти не показывался, пробив себе, через научрука индивидуальный график. Асимметричная криптография, транспьютеры и робастные методы в статистике. RSA и Диффи-Хелман — вот всё, что из этого осталось в памяти (да и то, не пригодилось).
Окончание ВУЗ-а и мой последующий уход в армию ознаменовались скандалом. РЦИ не хотело меня отпускать и, специально для меня, ввело должность (пробив её через руководство Центробанка), предусматривавшую бронь от армии (мимо аспирантуры я благополучно пролетел, в силу своей врождённой безалаберности). К сожалению, я узнал о брони уже в тот момент, когда вёл сепаратные переговоры с военкоматом, на предмет того, чтобы меня не высылали из Казани (профессия программиста имеет свои преимущества). Руководство Нацбанка пообещало, что в банках я больше работать не буду. Пока, так оно и есть.
Прослужив год, я вернулся в другую страну. Это было ужасное время. К счастью, один из моих сокурсников работал начальником отдела АСУ в Детской республиканской клинической больнице. Он меня и приютил. Зарплата была не бог весть какая, но и работа не шибко пыльная. Мы писали софт на FoxPro (знания FoxBase пригодились) для нужд больницы. Я отточил свою технику работы с FoxPro до совершенства! Например, научился открывать неограниченное число модальных окон, не взирая на дурацкие ограничения по количеству одновременно выполняемых read-ов (так вроде назывался тот вызов?).
Другим для меня ударом стало повсеместное воцарение Windows. Я много писал на C++ и ассемблере, в том числе, резидентные программы и драйвера, но делал это под MS DOS, в реальном режиме! К защищённому режиму и Windows я не знал как подступиться. Однажды, я пожаловался на этот факт своему знакомому (одному из той самой «плохой компании») и услышал от него замечательный ответ: «В чём дело? Просто берёшь Delphi и пишешь!». Так я и сделал.
Работа в одной из гос. организаций позволила мне освоить Delphi и, что самое главное Oracle. Седьмая версия, затем 8.0 и божественная 8.1.7. Я до сих пор считаю, что это лучшее, из того, что делал Oracle. Что там говорить, она включала в себя реализацию сервера БД в виде NLM-модуля для Novell Netware! Освоив Oracle, Delphi и его BDE (чтобы связать одно с другим) я был готов выйти на «вольные хлеба».
Подходящее предложение не заставило себя долго ждать. В городе собиралась появиться первая компания кабельного телевидения! Благодаря новому генеральному директору (снова обойдусь без имён), дело было «на мази». Не хватало самой малости — биллинговой системы. У меня спросили, смогу ли я написать биллинг и я честно ответил «Да», поскольку понятия не имел, что это такое. Биллинг кабельного телевидения я написал (и им долгое время пользовались). Первого абонента (в соседнем доме) поехали подключать зимой, «на саночках».
На этой работе, было много всего разного. Поддержка Internet-биллинга (на этот раз фирменного, а не самописного), внедрение карт оплаты, система голосового оповещения, цифровое телевидение… Не было главного, работа «придворным программистом» (в моих глазах) не шла ни в какое сравнение с местом захудалого юниора в компании, занимающейся разработкой ПО целенаправленно. Мне вновь пообещали, что я не смогу вернуться (на этот раз, в подразделения ТАИФ-а), но не сдержали обещания. В ТВТ я возвращался позже, на полставки, перед самым приобретением её МТС-ом.
На новой работе меня встретили Delphi (куда же без него), C++ (в этот раз, под Windows) и конечно же Oracle. Для начала, нашу команду (меня и ещё одного бывшего сотрудника ТВТ) заняли разработкой RADIUS сервера. Потом были Netflow, SNMP и маленькая (но очень гордая и специализированная) InMemory база данных. Всё это даже внедрялось (где-то в Чехии). Я был фанатом Рихтера и Александреску и писал разные Compile Time ужасы вроде вот этого.
Затем (другая жизнь, другой проект) был .Net и XSLT для системы массовой и полностью автоматической генерации разнообразных платёжек в форматах Word, Excel и PDF. В этот раз, я был уже тимлидом. В следующем проекте, пришлось программировать циски при помощи JavaScript, но это было уже не важно. В моей группе насчитывалось около 10 человек из трёх городов и 90% времени занимала организационная работа.
После этого годичного кошмара, я вновь вернулся к самостоятельной разработке, найдя свою нишу в компании (почему-то, никто кроме меня не согласился разбираться с АТС-ками). Между делом освоив Perl, пишу я, в основном, на Java. Фронтенд пишется на ней же, при помощи GWT. Потихоньку осваиваем Postgres. JavaScript я изучаю уже «для души», для одного своего маленького pet-проекта. Недавно поступило предложение попробовать свои силы в Golang, но я пока отказываюсь. Наверное, дело в недостаточной мотивации.
Мы то, чем мы пишем. Сегодня это Java и JavaScript. Я стараюсь по максимуму использовать их возможности, но не собираюсь на них останавливаться. Я не знаю на чём буду писать завтра. Мне (почти) 45 лет и я открыт для всего нового.
Комментарии (34)
Squoworode
27.03.2017 11:18А что произошло с камерами для домофонов?
GlukKazan
27.03.2017 11:19На выставке, от нечего делать, я поднёс карточку к глазку домофона.
На ней, очень отчётливо, был виден штрих-код.
safari2012
27.03.2017 12:32+1Я всего на пару лет вас моложе, но в наше время 4й факультет КАИ назывался ТКИ. А ВМК был только в КГУ…
GlukKazan
27.03.2017 12:43Да, вы правы. У меня всё немного перемешалось в голове со всеми этими переименованиями.
К тому же с ВМК у меня тоже много связано. «Плохая компания» обитала именно там. Я там был частым гостем.
Плюс химфак, на котором я весьма серьёзно поработал около года в последних классах школы.
Я часто бывал в универе.safari2012
27.03.2017 13:01+1Я так сразу и подумал, про тех чуваков из КГУ, которые постоянно зависали в машзале и ВЦ на наших ЕС-ках и делали в т.ч. интересные игрушки, которые работали автономно (без участия ЕС) прямо на терминалах :)
ber_viking
04.04.2017 18:35«Плохие парни» с ВМК? :)
СВМ в ВМК появилась в 1988/1989 году, до мая 1988-го (мой уход в армию) ее еще не было, а осенью 1989-го (мое возвращение) первый кабинет в 713-й уже был открыт. Тогда за ресурсы СВМ и между собой рубились две команды.
Одна — это AKA Inc. (по именам участников, и скорее всего, Валентин, вы знаете всех троих: один до недавнего времени работал главным инженером в АБАКе, второй до сих трудится в РКЦ НБ, третий, работающий ныне в Редмонде, учился как раз на 4-м факе КАИ), До сих помню такие разработки, как BlackBoy и программу в 80 байт, передаваемую через буфер ридера (размер буфера как раз 80 байт, как на перфокарте), наглухо вешающую систему.
Во второй команде тоже было три участника, она была разгромлена, двое выбыли из просторов СВМ, а третий вместе с AKA, мною и Берией, который будучи системным надзирателем (не помню название его должности, оператор звучит мелко) имел доступ к классу B, который и позволял закрывать глаза системным ВМ. Чуть позже к нам присоединилось еще трое камрадов. Вот эти восемь человек были костяком этой так сказать банды, странное дело, но какого-либо названия у нее не было.
Через год в конце 90-го или начале 91-го открыли второй кабинет в 814-й, и мы перебрались туда, а в 713-й обосновалась новая команда (на год-два нас младше). Автономные терминалы стояли в 713-й, а наверху таких уже не было. Да, эти пацаны что-то там писали, прикладники видимо…
Все это кончилось к 93-му, когда AKA, будучи на последних курсах, перебралась на работу в МО, с которым ранее, так сказать, боролась. Да и остальные, как я, например, где-то работали и появлялись в универе во время сессий и получения стипендий.
О тех славных временах сохранились так называемые «Хроники» за авторством Берии и моим.
Читать здесь:
Да, Валентин, это я, мы работали в 2007-2011 в одной компании.
P.S. to safari2012. КАИ переименовали в КТУ (или КГТУ) в 1992-м. А что это за ТКИ? Первый раз слышу.ber_viking
04.04.2017 19:50+1«Читать здесь». Ага, счас, не проставилась ссылка.
http://tokinov.livejournal.com/711.html
AKA Inc — правильнее читать так: Three Masters A.C.A. Inc.
Подводит, память, сцуко.
safari2012
05.04.2017 13:164й факультет так назывался вроде. Факультет Технической кибернетики и информатики.
waverunner
27.03.2017 12:40Весьма интересная история, вдохновляет! Родной КАИ… Жаль, что я сам поздновато осознал, что будущее мое связано с программированием, хотя в школе уже ваял на БКшках.
Degun
27.03.2017 12:41Хорошие времена были. Сам начинал программировать в школе на бэйсике. Также был калькулятор МК-61. В институте ассемблер, C, С++. В НИИ, куда пришёл работать после, поначалу была одна 286 машина на коллектив из 10 человек. Так вот по очереди и работали.
morgreek
27.03.2017 13:20Спасибо за то, что поделились воспоминаниями!
А что притягивало или притягивает до сих пор в химии?GlukKazan
27.03.2017 13:30Ну, начиналось всё, как обычно, с пиротехники. А потом, в рамках «малого химфака» я довольно долго занимался синтезом фосфороганики в одной из лабораторий химфака. Всё было очень серьёзно. В первый же день, была взрывная полимеризация (прямо в процессе собеседования, за спиной), взрывы забытой пятиокиси фосфора в мойке, облака трифторуксусного ангидрида. Однажды весь химфак бегал в противогазах, когда в эфирной нечаянно бухнули колбу с метиловым спиртом. Почему нравилось? Не знаю. Видимо сыграли свою роль «Химия и жизнь» и школьный химический кружок. Преподавательница у нас была хорошая. Возлагала на меня большие надежды. Подарила на выпуске двухтомник «Неорганической химии» Менделеева.
morgreek
27.03.2017 13:53В первый же день, была взрывная полимеризация (прямо в процессе собеседования, за спиной),
Ого, даже как-то символично. В остальном звучит весело, но жутковато. Даже чем-то напомнило Пратчеттовскую «Гильдию Алхимиков».
Мне школьная химия нравилась только неорганическая, та, что до 9го класса была у нас. Больше всего любил окислительно-восстановительные реакции, тогда решал задачи с ними лучше всех из параллели. Но потом с 10го класса началась органическая, и скатился с отл до удовл.
А подарок преподавательницы хороший, памятный.
ber_viking
04.04.2017 20:02Во второй половине 80-х (мои ровесники, плюс минус год) среди олимпиадских команд Татарской АССР (математики, физики, химики) самой сильной (по местам на Всероссийской и Всесоюзной) были химики.
Если я правильно помню (из студенческих слухов), впоследствии они синтезировали вещество, которое синтезировать было не надо, вследствие чего познакомились с некоторыми статьями УК. Дальнейшее покрыто еще более мраком (из-за отсутствия слухов), типа их все же вытащили оттуда и привлекли к работе на государство. Но тут внезапно начались криминальные войны середины 90-х, и чем закончилась эта история, я вообще не в курсе.
NexOtaku
27.03.2017 13:54Программирование и химия очень похожи. И там и там изучаются процессы и алгоритмы.
Есть распространённое заблуждение, что к программированию из наук ближе всего математика. На самом деле лучшие программисты получаются из химиков.immaculate
27.03.2017 17:50Странно, именно эту фразу прочитал в каком-то выпуске PC Magazine первой половины 90-х. В статье восторгались какой-то утилитой, написанной химиком. Никак не вспомню, что это была за утилита, но слова автора статьи, что из химиков получаются отличные программисты, почему-то врезалась в память.
ber_viking
04.04.2017 20:05Сисадмином геологического НИИ, в котором я работал, был химик по специальности :)
Помню, как мыли заглючивший CD-привод (мыло, спирт, смазка), который проработал еще полгода.
Но за программированием он замечен не был.
XXXXPro
28.03.2017 13:09Из всей этой истории больше всего впечатляет вот это: «У меня спросили, смогу ли я написать биллинг и я честно ответил «Да», поскольку понятия не имел, что это такое. » Вот это я понимаю, уровень веры в себя! Интересно, от чего он зависит, почему при прочих равных условиях у одних людей он есть, а у других — нет?
GlukKazan
28.03.2017 13:22В статье я немного сгустил краски. Разумеется, мне объяснили, в общих чертах, чего от меня хотят. Другое дело, что в тот момент я не до конца себе представлял во что всё это реально выльется, но «дорогу осилит идущий».
Optimus_990
30.03.2017 09:15Да, все верно, один знакомый оч хороший программист, по образованию талантливый химик.
Leia_Rukkola
30.03.2017 21:34+1Спасибо за вдохновляющую и искреннюю историю! Автор, успехов Вам в покорении всего нового. И интересно, все таки, что будет в Вашем «завтра», о чем, надеюсь, Вы напишете с таким же вдохновением. )
HKA
02.04.2017 15:24Спасибо за ностальгию. Прочел — как будто жизнь пронеслась перед глазами. Волшебный МК-61 без кнопки "=" и непривычным ПОЛИЗ, самопаянный "Синклер" с гордым пояснением "Пентагон", то бишь с НГМД. Затем болгарский "Правец" и толстые тетради с самописным кодом и отладкой там же. Далее "Искры", женщина-заведующая машзалом, которой бежать за ребенком в садик, уговоры и бдения по ночам, ключи от машзала, которые забыл сдать вахтеру, нагоняй и великодушие от заведующей. Наконец, цветные немецкие "Амстрады" и первые 286-е. Романтика и творчество, плавно переросшие в ремесло :)
Raidar
05.04.2017 09:20+2ТКИ — факультет Технической кибернетики и информатики в КАИ, сейчас уже институт.
ik62
Да, время было весёлое! А для меня вычислительная техника началась с волшебной машины МИР-1 и программируемого калькулятора Б3-34, на котором я быстро считал курсовики для всего курса.
GlukKazan
«Мир» отец тоже вроде обслуживал. Или «Минск», не помню. Бегущая строка на нём в нашем ЦУМ-е работала.
У отца с тамошней стоянки угнали два подряд мотороллера, а я с той машинкой играл в «Ним».
ik62
У МИР-а был алголоподобный по синтаксису язык, с произвольной точностью плавающей точки и возможностью не особо сложных аналитических вычислений (производные точно можно было брать, насчет интегралов не вспомню точно).
Программа выглядела примерно так
ТОЧНОСТЬ 5
СУМ=0
ДЛЯ I=0 ШАГ 1 ДО 10 ВЫП СУМ=СУМ+I
ВЫВ СУМ
Всё это большими красивыми буквами на пишущей машинке роботрон на рулоне желтой оберточной бумаги из продуктового магазина.
Вообще это была первая «персоналка» — компактная, без разделения времени, с возможностью через пишущую машинку взаимодействовать с процессом. И тумблеры и лампочки были в полном распоряжении. Я помню долго потом на персоналках нервничал и не понимал как можно следить за процессом если лампы не моргают и ты по характеру моргания не понимаешь на каком этапе сейчас находится вычисление.
GlukKazan
А тогда точно нет. Та машинка была размером со стенной шкаф. Никак не персональная. Видимо всё таки Минск, но точно не скажу.