Re[8]: [5]: Утренний постскриптум
От: Glоbus Украина  
Дата: 17.01.05 13:17
Оценка:
Здравствуйте, Sinclair, Вы писали:


S>Ну, некоторым дали. Вот, к примеру, была такая компания, iD Software. Или там Sierra Online. Как тебе результат?


А я после перого квака (кажется это ид-софтваре программулина) перестал как-то следить за тем че там ваще в игровой индустрии. Иногда смотрю в сторону всяких навороченных command & conquire с 3д графикой, но перестало захватывать. А вот в звездное старье порубиться люблю изредка.
Кстати, из "новых" игрулин классаня по играбельности еще Fallout 1 и 2. А всякие там гта и т.п. совсем че-то не подгребают...
Удачи тебе, браток!
Re[7]: Утренний постскриптум
От: VladD2 Российская Империя www.nemerle.org
Дата: 07.02.05 13:18
Оценка: 3 (1) :)
Здравствуйте, c-smile, Вы писали:

CS>А вы говорите .NET, ха! 64к и ОС от которой только драйвер клавиатуры и ЦПУ остались в памяти, слабо?


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

ЗЫ

... << RSDN@Home 1.1.4 beta 3 rev. 279>>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[6]: Утренний постскриптум
От: Pavel Dvorkin Россия  
Дата: 09.02.05 08:01
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:



ЗХ>Господа хорошие! Тут один наш общий знакомый носится с одной дурацкой идеей
Автор: Зверёк Харьковский
Дата: 16.12.04
.


ЗХ>Так вот, поскольку мне жутко интересно то, что вы все тут понаписывали, есть мысль использовать ваши откровения в качестве врезок в книжке (что-нибудь вроде "Истории из жизни" или как-то так). С сохранением, естественно, авторства и вообще — на ваших условиях .

ЗХ>Как на это смотрят авторы историй?

ЗХ>ЗЫ: кстати, убедительная просьба к старожилам, которые еще не отметились в этом топике и при этом чувствуют в себе эпическую силу — поделитесь с человечеством занимательной автобиографией, а?


Я на сегодня уже исчерпал лимит графоманства , но если на днях настроение будет, то попробую сочинить эссе под название "Путь химика в программирование" (я по образованию химик)

With best regards
Pavel Dvorkin
With best regards
Pavel Dvorkin
Re: Learning to fly - LaptevVV - part3
От: Pavel Dvorkin Россия  
Дата: 09.02.05 08:16
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Продолжим.


Да, кое что из моей биографии почти 1:1 повторяет это. Ну ничего, я найду что еще сказать

With best regards
Pavel Dvorkin
With best regards
Pavel Dvorkin
Re: Learning to fly - LaptevVV - part6
От: Pavel Dvorkin Россия  
Дата: 09.02.05 08:22
Оценка:
Здравствуйте, LaptevVV, Вы писали:

Оценивал Вашу статью. Ставил 3. Сначала 3 умножалось на мой рейтинг. Потом — только на 1. И наконец, выдано сообщение типа "Ваш лимит на оценку статей этого автора на сегодня исчерпан"

With best regards
Pavel Dvorkin
With best regards
Pavel Dvorkin
Путь химика в программирование
От: Pavel Dvorkin Россия  
Дата: 09.02.05 09:23
Оценка: 175 (20) +1
#Имя: FAQ.Learningtofly.PavelDvorkin.part1
Передумал и решил написать сегодня.

Закончив школу, я, как и собирался, поступил на химический факультет Томского Университета. Пришлось для этого уехать из дома (в Омске тогда университета не было). Благополучно проучился 3 года, занимаясь переливанием из колб в пробирки и обратно и ни о каких компьютерах не помышляя. Все, что я о них знал — это то, что они существуют. Так и прожил я до своих 20 лет.
Впрочем, нет. С расчетами я все же столкнулся. На 3 курсе у нас была вычислительная математика. Что нам читали на лекциях — хоть убей, не помню, а вот когда мы на практику пришли, то сразу почувствовали, что это дело серьезное. В учебном классе стояли штук 15 машин. Если думаете, что ПЭВМ — глубоко ошибаетесь. Дело было в 1975 году, и никаких ПЭВМ тогда в природе не было. А назывались эти штуки (как сейчас помню) "Полноклавишные полуавтоматические вычислительные машины".
Представьте себе кассовый аппарат, но не нынешний, а советских времен. Представили ? Теперь увеличьте число клавиш в каждом ряду до 20-30, добавьте кнопки плюс, минус, умножить , разделить и равно и получите полное представление. Надо было на одном ряду этих кнопок набрать первое число, на другом — второе, нажать плюс, к примеру, и машина тут же начинала тарахтеть. Тарахтела она с полминуты (а их 15 штук, так что шум стоял приличный), после чего начинали вращаться колесики с цифрами и, довращавшись до нужного положения, показывали результат. Это в лучшем случае. В худшем тарахтение было бесконечным, и единственным способом ее успокоить было выдернуть шнур из розетки. Потом вызывался мастер, он что-то в ней чинил, и можно было тарахтеть дальше.
Тем не менее все же считать можно было. Выдали каждому по задаче, мне досталось — рассчитать коэффициент корреляции линейной зависимости растворимости какой-то соли от температуры. В общем, 5 сумм подсчитать нужно, а потом несложные формулы. Потарахтела моя машина, подсчитала эти суммы, умножил я и разделил что на что полагается и получился у меня коэффициент корреляции 1.001.
Поскольку что это такое, я понимал весьма смутно, то результат этот меня никак не смутил, и, недолго думая, я пошел преподавателю эту работу сдавать. Естественно, он у меня ее не принял, несмотря на мои заверения, что машина тарахтела как полагается. Как я ни пытался доказать ему, что я все считал правильно — он даже и слушать не хотел. В общем, я на него сильно обиделся, но делать нечего — пришлось тарахтеть заново. На этот раз коэффициент получился равным 0.999 , и в таком виде работа была принята. Получил я зачет и вышел из этого "компьютерного класса" в твердой уверенности, что мне никогда больше этим заниматься не придется. Вернулся к своим колбам и пробиркам. Так прошло еще полгода.

Когда я заканчивал 3 курс, химическому факультету пришла в голову мысль купить ЭВМ. Купили, называлась она Мир-2, киевского производства. Довольно своеобразная по тем временам машина. Ну память, ладно, 8 КБайт , хотя слова "байт" тогда у нас не было. Быстродействие не помню, небольшое, конечно. Но что интересно — не имела ассемблера вообще. Внутренний язык был изоморфен внешнему и интерпретировался. Причем язык (Аналитик) был достаточно высокого уровня, позволял не только то, что обычно позволяют языки арифметического типа, но и применение алгебраических преобразований к формулам — т.е. можно было применит к формуле некоторые преобразования, а потом по ней посчитать. Можно было даже неопределенные интегралы вычислять. Конечно, сейчас, когда есть MathCad, этим никого не удивишь, но ведь это было в 1975 году! Говорили, что даже американцы купили у нас один экземпляр этой машины, можете себе представить!

В общем, поскольку факультет купил эту машину, возник вопрос, кто на ней считать будет. Решено было сделать отдельную группу студентов (а у нас как раз после 3 курса происходило перераспределение по специализациям) из 5 человек, куда пригласили и меня. Я, недолго думая, согласился, не понимая, что тем самым я определил весь свой жизненный путь

С отдельной группой все же не вышло, поэтому оставили нас на своих кафедрах (я попал на органику) и изменили нам учебные планы, убрав ряд курсов и добавив другие (программирование, выч. математика и кое-что еще). Потом ряд из этих добавленных курсов не состоялся, но и на свои мы тоже, конечно, не пошли. В общем, прожили мы 4 курс чудесно — на занятия ходили, если хотели, и зачеты тоже сдавали, если хотели. Один зачет, помню, все намеревались сдавать (надо было преподавателя найти, он был из другого института), но так и не собрались — никто и не вспомнил.
Все же прочитали нам Алгол-60, Фортран, этот самый Аналитик, выч. математику, пустили на Мир-2 и на ВЦ Томского ГУ, где тогда стояли 2 машины — М-220 и БЭСМ-4. На Мир-2 сразу же возник конфуз. Запустил я свою программу, должна была она считаться минуту или 2. Сижу, жду. 5 минут проходит, 10 минут проходит, все никак не заканчивается. Надоело мне это. Нажал я на пульте "Останов" (да, именно так это слово выглядело, почему-то в мужском роде), а потом "Вывод значений". После этого на пишущую машинку начали выводиться переменные. Не как-нибудь, а с именами, типа x = 1234, y[1] = 5678 и т.д. Я же говорил, что у системы не было ассемблера, а внутренний язык был высокого уровня. Посмотрел я на эти переменные — глаза на лоб полезли. Печатались они в формате с фиксированной запятой и знаков до этой запятой было примерно несколько сотен
Дело в том, что у машины не только внутренний язык был высокого уровня. У нее еще и не было фиксированного размера ячейки памяти. Иными словами (в современных терминах) число занимало 4 байта, пока ему этого хватало, а когда не хватало, то вместо нормального overflow числу давали 8 байт, потом 16 и т.д, пока оно всю память не займет. Итерационный процесс у меня разошелся, контроль я не поставил, ну вот и начали числа увеличиваться. Долго я еще мог ждать
Освоились мы понемногу с этой Мир-2 и решили выходить на большую дорогу. На М-220 и БЭСМ-4 то есть. У них как-никак было памяти побольше, 4096 45-битных ячеек (почему именно 45 бит — никто не знал), и даже еще 4096 таких же ячеек (это называлось КУБ 2, в отличие от КУБа 1), но с этим вторым кубом компилятор работать не умел (т.е. откомпилированные программы его не могли использовать), и я с этим КУБом 1 так и не научился работать.

Писали мы на Алголе, потом на Фортране-2. К машинному залу нас близко не подпускали, колоды перфокарт клались в ящик, а утром в ячейке шкафа можно было ее забрать вместе с распечаткой. После этого исправлялись синтаксические и прочие ошибки, колода клалась в ящик, и до следующего утра. Между прочим, в этом был и свой плюс — надо было как следует продумать, что собираешься делать, иначе день терялся из-за пустяков.

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

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

With best regards
Pavel Dvorkin
With best regards
Pavel Dvorkin
Re: Обидно что сами никак
От: vgrigor  
Дата: 09.02.05 09:33
Оценка: :))
"Товарищ, а ты помнишь ASP ?"
Или Java без J2ЕE ?

Говорят ASP.NET революционно сексуальнее чем ASP. Именно вглубь.
Чем же ты недоволен ?

Если следующий шаг будет таким же,
то нам всем будет приятнее.

Ведь придумали уже хитрого клиента (smart client),
для таких дел,
микрософт на уровне студии его не поддерживает,
есть что доделывать,
очередной шаг должен быть еще лучше.

Обидно что сами никак, никто инструмент доделать не хочет....
Винтовку добудешь в бою!
Путь химика в программирование - ч2
От: Pavel Dvorkin Россия  
Дата: 09.02.05 10:50
Оценка: 186 (18)
#Имя: FAQ.Learningtofly.PavelDvorkin.part2
Продолжаю.

Итак, есть программа для БЭСМ-6. Листинг то есть. Надо ее заставить работать на этой самой М-220. С чего начать — не знаю, да и вообще, откровенно, говоря, ничего я в этих ЭВМ с программированием вместе не понимаю. И спросить не у кого — реальное руководство нами, как я уже писал, фактически прекратилось. Интернета тоже нет
А программа, между прочим, большая, строк 800-1000 . Мне до сих пор программы длиной больше чем в 50 строк писать не приходилось.
Пошел в библиотеку, перерыл там все, что удалось найти, и обнаружил одну книгу по этой самой БЭСМ-6. Прочитал ее и волосы дыбом стали. Оказывается, у этой БЭСМ-6 аж 32768 48-битных ячеек — ровно в 8 раз больше, чем на моей несчастной М-220, да и ячейки чуть побольше (ну это ладно). М-даа...
Но делать что-то надо. Одно по крайней мере хоть ясно — массивы уменьшать надо, т.е размерность задачи (что такое массивы, я уже хорошо понимал . Но все же надо куда-то и код впихнуть, придется, значит, на части резать, а как — не понимаю, да и просто ничего не понимаю. Темный лес.
Тут меня надоумили — прочитай, говорят, документацию . Пошел в библиотеку опять, взял книгу (как сейчас ее помню), "Математическое обеспечение Вычислительного Центра ТГУ". В предисловии была примерно такая фраза

"Настоящая книга составлена по разным источникам, в том числе записям, сделанным неизвестными авторами".


Чтение книги мало что дало. Проще говоря, я там ничего не понял. Какой-то автокод (это ассемблер тогда так называли), какие-то адреса (а что это такое, в руководстве по Алголу ни о каких адресах не говорилось , какие-то системы ИС-2 и ИС-22, которые мне может, и нужны, да только непонятно, что с ними делать. В общем, темный лес опять.

Ну думаю, ничего не остается, как начать набирать программу, а там видно будет. Может, у кого-то проконсультироваться удастся. Тем более, что мой научный руководитель все же обещал организовать консультацию, если понадобится. Но на консультауию надо идти с какими-то вопросами, а не со словами "помогите, вообще не знаю, что делать".

Хорошо сказать — набирать. Сам я ее набирать не могу. В подвале стоит единственный перфоратор, и к нему всегда очередь в 5-6 человек, а поэтому время, отводимое каждому, не более 5 минут. Отперфорировал несколько карт — и в конец очереди. Так я и за месяцы ничего
не сделаю.

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

Наконец первая часть отперфорирована (как разделить на части, я все же догадался, и как организовать взаимодействие — тоже — то есть понял, какие массивы надо сохранить после i-той части и загрузить в i+1-ю, только вот где сохранять и как — пока что совершенно неясно). Ладно, авось кривая вывезет.

Тут и колода перфокарт подоспела. Обложил я ее с обеих сторон какими-то стандартными перфокартами, точного назначения которых никто не знал, но класть их надо. Положил я все это в ящик и стал с трепетом ждать следующего дня.

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

Останов в Эфиопе. КРА 1234.

Распечатка же содержала текст моей программы как он был, а в конце ее шел набор каких-то непонятных (как потом выяснилось, восьмеричных) чисел, довольно много.

Жаль, никого с фотоаппаратом тогда поблизости не было, запечатлеть бы этот момент для истории.

Ну и что мне с этим эфиопом делать прикажете ?

Нашел все же человека, которого попросил объяснить все это. Оказалось, что эфиоп — это просто начальный блок транслятора (компилятора), что всего таких блоков 24, и в каждом могут быть свои остановы. КРА — это командный регистр адреса (EIP, иными словами), а странные числа в конце — это не что иное, как текст моей программы, точнее, тот ее кусок, где и произошел несчастный останов в эфиопе из-за синтаксической ошибки. По КРА можно понять тип ошибки (для этого надо взять книгу и поискать в ней этот КРА, там будет объяснение), а чтобы найти место в программе, надо расшифровывать эти восьмеричные числа по специальной таблице.

И точно, помогло. Нашел я этот КРА, расшифровал восьмеричные числа, понял, где ошибка, заменил перфокарты и отдал обратно.

На следующее утро меня вновь ждала распечатка, но на колоде были написаны уже другие слова

Останов в первом блоке. КРА 4321.
Восьмеричные числа прилагались.

Тут я сразу почувствовал себя крупным специалистом. Все стало ясным. Эфиоп — это, оказывается, нулевой блок, значит, я уже его прошел, а теперь надо пройти первый блок. Впереди всего 22, и с трансляцией дело будет сделано .

Начинаю расшифровывать восьмеричные числа — что-то не то получается. То есть я, конечно, весь текст программы не помню, но такое я не писал. Такое я вообще не мог писать. Нельзя такое в здравом уме и твердой памяти писать. Бред это сивой кобылы.

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

Оптимизм мой резко поубавился, мне стало сразу ясно, что на крупного специалиста я пока не тяну, но все же расшифровать и исправить ошибки я смог.

Далее были остановы в 3 блоке, причем довольно упорные. Т.е. после того, как я исправлял ошибку, возникал новый остангов в 3 блоке, с другим КРА и другими восьмеричными числами. Надо ли объяснять, что при переходе к 3 блоку транслятор опять перекодировал текст!

Наконец и 3 блок был пройден. Но тут меня поджидал сильнейший удар. Очередное сообщение было таким

Останов в 17 блоке. КРА 2345.
Восьмеричные числа к этому КРА не полагались. В справочнике такого КРА не оказалось.

Конечно, хорошо, что не было остановов в 4,5 ... 16 блоке, но что теперь-то делать ?

Пришлось пойти в группу математического обеспечения ВЦ с просьбой помочь. Был там один специалист, звали его Володей. Объяснил я ему, что вот такой у меня КРА (это слово я уже научился говорить c видом специалиста), и что же мне с этим КРА делать ?

Володя достал из шкафа руководство и начал при мне листать. Я заглянул туда. Там были одни числа. Восьмеричные коды. Листал он долго. Распечатку моей программы он смотреть не стал. Наконец он листать прекратил и книгу захлопнул. Я посмотрел на ее название. "Транслятор Альфа". Это не было руководством по транслятору. Это был сам транслятор. Точнее, его машинные коды. Что там Володя хотел найти и как — не знаю. Но он так ничего и не нашел. После этого он дал мне бесподобный совет.

"В общем, поищи, посмотри сам. Если найдешь — обязательно запиши в книгу".

Тут я вспомнил насчет "по разным источникам, в том числе записям, сделанным неизвестными авторами", и все стало ясно.

Ошибку я в конце концов нашел. Оказывается, вместо СП0187 было отперфорировано СП1087. Скорее всего, девочки неправильно отперфорировали. СП, как выяснилось были функциями (Стандартными Процедурами) из этой самой ИС-22, и я, значит, вызывал, несуществующую процедуру. В общем, unresolved external образца 1975 года.

Продолжение следует (не сегодня)

With best regards
Pavel Dvorkin
With best regards
Pavel Dvorkin
Re[7]: Путь химика в программирование
От: LaptevVV Россия  
Дата: 09.02.05 17:09
Оценка: 3 (1)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Освоились мы понемногу с этой Мир-2 и решили выходить на большую дорогу. На М-220 и БЭСМ-4 то есть. У них как-никак было памяти побольше, 4096 45-битных ячеек (почему именно 45 бит — никто не знал), и даже еще 4096 таких же ячеек (это называлось КУБ 2, в отличие от КУБа 1), но с этим вторым кубом компилятор работать не умел (т.е. откомпилированные программы его не могли использовать), и я с этим КУБом 1 так и не научился работать.

45 = 3*12+6+3
Адрес 12-ти разрядный, код операции — 6 бит, три разряда — по одному на каждый адрес — для модификацмии адресов — сейчас не помню как... Какя-то величина добавлялас вроде из какого-то регистра... Для организации цикла по массиву.
А 2^12=4096 — как раз размер памяти... Так что все там было просчитано...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Learning to fly - LaptevVV - part9
От: Зверёк Харьковский  
Дата: 09.02.05 19:57
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Продолжим попозже...

Ну???
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
FAQ — це мiй ай-кью!
Re: Learning to fly - McSeem2 - part3
От: Зверёк Харьковский  
Дата: 09.02.05 19:57
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Окончания не получилось. Надо бы еще написать про становление C++ в моей жизни, но потом — боюсь, что только на следующих выходных...


Ну???
... << RSDN@Home 1.1.4 beta 4 rev. 303>>
FAQ — це мiй ай-кью!
Re[8]: Путь химика в программирование
От: Pavel Dvorkin Россия  
Дата: 10.02.05 06:19
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Здравствуйте, Pavel Dvorkin, Вы писали:


LVV>Адрес 12-ти разрядный, код операции — 6 бит, три разряда — по одному на каждый адрес — для модификацмии адресов — сейчас не помню как... Какя-то величина добавлялас вроде из какого-то регистра... Для организации цикла по массиву.


Немного не так

А числа кодировались так

Признак числа — 1 бит
Знак числа — 1 бит
Знак порядка — 1 бит
Порядок
Мантисса (распределение битов между порядком и мантиссой не помню)

Между прочим, признак числа — идея была неплохая. При занесении числа в ячейку он устанавливался в 0. Мусор содержал единицу. Так что отловить переменные, которым не было присвоено значение, было несложно.

LVV>А 2^12=4096 — как раз размер памяти... Так что все там было просчитано...


Да. А с кубом 2 там еще были какие-то дополнительные регистры, вот их Альфа и не умел использовать.

With best regards
Pavel Dvorkin
With best regards
Pavel Dvorkin
Путь химика в программирование - ч3
От: Pavel Dvorkin Россия  
Дата: 10.02.05 07:41
Оценка: 124 (16) +1
#Имя: FAQ.Learningtofly.PavelDvorkin.part3
Продолжаю.

Наконец, настал счастливый день, когда первая колода перфокарт оттранслировалоась без всяких остановов. Распечатка не содержала ничего, кроме текста моей программы, а на колоде было написано

Останов по чтению. КРА 3123.

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

Оказалось, что и колоду данных я сформировал неправильно. Надо было после каждой перфокарты подложить еще специальную перфокарту "контрольная сумма" (это еще что такое ? , а за ней — 2 чистых перфокарты.
Чтение "Математического обеспечения ВЦ ТГУ" внесло ясность насчет контрольной суммы. Правда, что это такое, я так и не понял, но там было сказано, что можно вместо нее подложить стандартную карту "контрольная сумма с блокировкой останова", которых на ВЦ было очень много

(В скобках. Контрольная сумма для кажой перфокарты (или массива их) — это просто сумма кодов. Использовалась для контроля, что ввод с читающего устройства прошел правильно. Если (как большинство и делало) Вы готовы были рассчитывать на авось, то можно было заменить ее "контрольной суммой с блокировкой останова", в этом случае контроль не производился)

Ладно, с контрольной суммой я вроде разобрался. Подложить 2 пустых карты после нее проблемы не составляло, но тут меня уже любопытство взяло — зачем ? Спросил кого-то. Оказывается, это подлое устройство ввода с перфокарт имеет привычку заглатывать после требуемой карты еще 1-2. Инерция у него такая, видите ли. Вот и подкладывают после контрольной суммы еще пару чистых — на тебе, подавись

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

Напечатать она напечатала, а вот что именно ? Дело в том, что выводить текст я не умел, а числа можно было печатать только в так называемом нормализованном виде. Примерно так это выглядело

++-0320000000 ++-043400000

и вот таких чисел несколько сот. Это и было то, что она напечатала.

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

Все совпало!!!

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

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

Отперфорировать другие куски, отразить нашествие эфиопов и побороться с восьмеричными кодами — для меня это уже было раз плюнуть. Наконец, все куски были отперфорированы и успешно оттранслированы. Пришла пора думать, что делать дальше.

Впрочем, что делать — в принципе я понимал. Внешнюю память использовать надо. Была она в то время двух видов — магнитные ленты и магнитные барабаны. Ну, магнитные ленты — ленты как ленты, похоже на бобину от советских магнитофонов (не кассетных), только раза в 2 больше. А вот магнитные барабаны — это видеть надо было. Этакий агрегат, одному человеку не поднять ни за что, снаружи — кожух, внутри — цилиндр, на боковой поверхности его нанесен магнитный слой, цилиндр вращается и неподвижные головки считывают/записывают информацию. Объем этого барабана в точности равен объему КУБа, т.е. 4096 45-битных ячеек.

(В скобках. Много позже прочитал я один рассказ И.Грековой. Там в некую лабораторию приводят журналиста и показывают ему ЭВМ. Сопровождающий журналиста человек мимоходом произносит фразу "А вот здесь у нас память на магнитных барабанах"

"Память — подумал журналист. На барабанах. С ума сойти можно " )

Вот этот барабан я и решил использовать. Было таких барабанов то ли 2, то ли 3. Как записывать данные на барабан, я довольно быстро разобрался. Разумеется, слова "файл" тогда у нас и в природе не существовало, как и самих файлов. Просто надо было вызвать некую СП из той самой ИС-22, указать ей номер барабана, что записывать или куда читать, и с какого адреса на этом самом барабане. В общем, распределение памяти полностью контролировалось программистом.

Все бы ничего, но оказалось, что этот проклятый транслятор Альфа умеет использовать только один барабан. Точнее, СП из ИС-22 может писать и на второй барабан, но в руководстве по Альфа сказано, что второй барабан использовать нельзя — на нем, мол, Альфа что-то свое хранит. А одного барабана мне не хватает.

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

И тут меня осенило. Если этот проклятый транслятор хранит что-то свое на втором барабане, значит, надо сделать, чтобы во время работы моей программы этого транслятора и близко не было. Оккупирую я барабаны полностью и транслятору ничего не дам. Правда, у меня нет уверенности, что после этого не перестанет работать эта самая ИС-22 и не выгонят ли меня с позором с ВЦ за дезорганизацию его работы, но выхода другого нет — придется рисковать.

Оттранслировал я все 4 части своей программы и записал их на магнитную ленту. Записал — это слишком громко сказано. Просто в инструкции, прилагаемой к программе, я написал — записать на ленту. Лента была, естественно, коллективного пользования, мне на ней выделили зону, размером в точности в КУБ, и туда мой машинный код (.EXE записали, после чего перфоратор отперфорировал "карту вызова". Вставляешь эту карту, лента начинает крутиться (машина при этом стоит), докручивается до нужной зоны, она считывается в память и начинает выполняться.

Вот так все 4 части я записал на ленту, и , наконец, в один прекрасный день положил в ящик совсем уже тощую колоду, в которой были 4 карты вызова и данные. В инструкции написал "связь между частями организуется через магнитные барабаны, поэтому между вызовами частей барабаны не затирать". Колода попалась на глаза начальнику ВЦ (потом мы с ним познакомились) и он эту фразу вычеркнул — никто эти барабаны никогда и не затирал, но мне откуда было знать ?

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

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

Что же касается самого метода первоначального обучения, как он был у меня — ну что же, это было не так уж плохо. В целом вся эта история не оставила у меня отрицательных воспоминаний, как видно из моего рассказа . Конечно, если бы рядом был кто-то, кто смог бы помочь мне по ходу действия — все могло пройти легче. Но и так — тоже неплохо. Бросить в воду и пусть плывет — может, и не самый лучший способ научиться плавать, но если человек потенциально готов к тому, чтобы плавать — выплывет. А "утонет" — ну что же, тоже не беда, займется чем-то другим. Так думал я лет 15-20 назад. Сейчас, после многих лет работы преподавателем, я уже так не думаю. Люди разные, и кому-то нужна на начальных стадиях поддержка, без нее он не выплывет, а потом уже сможет совершенствоваться сам и, быть может, даже станет чемпионом.

Дальнейшая судьба программы мне неизвестна. На следующий год я уехал в Москву делать дипломную работу, и она была уже по другой тематике (тоже химические расчеты). Потом были годы, в которых было много химии и немного программирования, потом больше программирования и меньше химии, а последние 20 лент — уже никакой химии и только программирование. Добрался я и до той самой БЭСМ-6 и посвятил ей несколько лет, были в моей жизни ЕС и СМ, ДВК и Ямаха, Алгол и Фортран, Паскаль и С/C++, и даже , должен признаться, Бейсик . Но все это уже было по-другому, а описывать все это — недель не хватит. Может, когда-нибудь и решусь еще один кусок мемуаров написать .

With best regards
Pavel Dvorkin
With best regards
Pavel Dvorkin
Re: Learning to fly, или О "новых" технологиях
От: Gaperton http://gaperton.livejournal.com
Дата: 11.02.05 00:30
Оценка: 14 (1) :))) :))) :))) :))) :)
Здравствуйте, SchweinDeBurg, Вы писали:

Прикольно. Это, наверное, самая прикольная ветка в Философии за все время ее существования. Собственно, выделить из других ее можно чисто механически — ненормально высокое количество баллов против количества постов, что само по себе интересно. Наиболее любопытны в ней, конечно же, развернутые Цуриккурум Вириккурум участников форума, то есть Curriculum Vitae, или по простому, жизнеописаний, т. е. CV. Резюме, короче Это правда очень интересно и необычно.

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

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

Счастье переполняло меня, когда я ехал по городу в трамвае, держа маму за руку. И вот, мы заходим в красивое желтое здание, проходим проходную, и мама ведет меня в комнату, где причудливой мозаикой стоит примерно 10 столов. За ними сидели программисты, т. е. взрослые дяди и тети.

— Ну вот, говорит мама, я сейчас отойду, а ты посиди здесь, за моим столом. Только смотри, никому не мешай!

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

Я стою от него в нескольких метрах, смотрю. Дядя программист вглядывается в ленту, я пристально смотрю на него.Проходит несколько минут.

— Дядя, а что ты делаешь?
— Ну вот смотри. Вот видишь — дырочки?
— Да.
— Вот здесь, нарисованы буковки. Я проверяю, правильные ли буквы здесь нарисованы, и если неправильные, я их исправляю. Вот видишь, здесь фигня какая-то нарисована. Вот я беру щипчики (щелк-щелк!), и делаю здесь дырочку! Вот теперь все в порядке!

Я был образованным ребенком, и в то время уже умел читать. И могу точно вам сказать, что никаких буковок там нарисовано не было. Дядя явно меня обманывал. Нагло и беззастенчиво, глядя в глаза. Я нахмурился.

— Где буковки?
— Ну вот, видишь, эти дырочки означают буковки!
— Но здесь нет никаких буковок!
— Ну вот, видишь, вот эти дырочки обозначают букву А...

Я нахмурился еще больше, обиделся, и отошел обратно за мамин стол. С детства не люблю, когда меня обманывают.
Re[10]: Утренний постскриптум
От: AlexTarvo  
Дата: 13.02.05 00:12
Оценка: +1
Здравствуйте, AndrewVK, Вы писали:

AVK>Здравствуйте, LaptevVV, Вы писали:


LVV>>Не, имеется ввиду — ассемблерные вставки в С++ — формулы всякие вычислять...


AVK>Ну и кому оно нынче надо?


А никому.
1. Это ухудшает портабельность программы.
2. Выигрыш по быстродействию небольшой получается. Я однажды эксперимента для переписал преобразование Фурье (не быстрое, а обычное) на asm. Там 2 вложенных цикла были, а в них что-то считалось. Ну и я это что-то написал на 32-битном ассемблере. Промежуточные результаты хранил в ММХ-регистрах. В результате это все стало работать на треть быстрее.
Ну и я подумал: вот столько мучений из-за 33%-го прироста быстродействия?
Learning to fly - LaptevVV - part10
От: LaptevVV Россия  
Дата: 14.02.05 10:34
Оценка: 31 (7) +1 :))) :)
#Имя: FAQ.Learningtofly.LaptevVV.part10
Кроме замечательного дисплея был еще телетайп — для печати... Было совершенно замечательное бегущее табло размером примерно 25х5 см... И, конечно, масса сигнализирующих лампочек...

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

Ну, поначалу-то как малоопытные, стали делать универсальную... Как положено — очередь задач, дисциплина Round-Robin... Очередь — двусвязный список общего вида...
Нас быстро остудили, сообщив, что ось будет прошиваться, поэтому список задач — фиксированный, простой массив дескрипторов...Все — циклический обход массива...

В общем, если б машина успевала... А так пришлось делать цикл раз в 2 секунды... Машина не тянула...

И вот на этой самой работе мы впервые познакомились с играми... Тетрис — это классика... Резались — часами, хотя вроде и некогда было... Однакож, находили время
А еще — "Марсиане прилетели" — это мы так называли эту игрушку... Внизу — человечество... Сверху летают марсианские корабли и сыпят бомбочками, а ты внизу управляешь единственным защитником-кораблем, который стреляет вверх по гадам-марсианам...


Еще из того времени у меня осталось чувство, что я семь лет работал в лучшей команде — другой такой не найти... Все с одного факультета — прикладной математики и механики... Даже с одной кафедры — системного программирования...Только закончили в разные года... 4 подряд выпуска... Отдел был довольно большой — человек за 30... Делали разные договора...Все с Питером... А по моему договору у нас сложилась команда из 5 примерно человек — основных программистов во главе с начальником отдела (это мой друг, сейчас живет в Питере), начальником сектора- ответственным исполнителем (это я), и еще 2 или 3 постоянных, остальные — по мере необходимости...Понимали, естественно, с получлова... Помнится, сидим с начальником вечером на компьютере — отлаживаемся... Написал я процедурку (на ассемблере, естественно) в 22 команды длиной... НЕ РАБОТАЕТ!!!!! Блин! Ошибиться НЕГДЕ! А не работает... Я говорю: Лев, не работает... Он, не поворачивая головы: Сколько команд? Я: 22! Он: ищи 2 ошибки!
Блин, и ведь нашел я именно 2 ошибки!!!!
С тех пор — железное правило: любой код содержит 10% ошибок!
Запомните!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[2]: Learning to fly, или О "новых" технологиях
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 19.02.05 20:02
Оценка: 60 (2) :))
Здравствуйте, IT, Вы писали:

IT>Фух, наконец-то дочитал. Ну вы и нафлудили


Ну, по сравнению с Win vs Lin это жалкий ручеек.

IT>Интересный пост,


Дзенькуе!

IT>прикольное обсуждение, правда, почему-то съехавшее на тему "Я стар, я очень стар, Я — СУПЕР-СТАР!!!"


Я сам не ожидал, что оно примет такой уклон.

IT>А когда дочитал до "Turbo Vision", так вообще, пошёл налил себе стакан водки и вот так прямо без закуски...


Эх-х-х... будем!

IT>хныканья вашего, господа, не разделяю и по своей первой оконной библиотеке не тоскую.


Лично я — не хныкал. "И не дождетесь!"

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


Ты стар, ты очень стар, ТЫ — СУПЕР-СТАР!!!

Теперь — главное. "Мир держится на четырёх силах: знании мудрых, справедливости великих, молитвах праведных и доблести храбрых." (с) Фрэнк Герберт, "Дюна"

Так вот...

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

"Но всё это ничто без правителя, который знает искусство правления..." (с) Фрэнк Герберт, "Дюна" — то есть, без грамотного во всех отношениях PM.

[ posted via RSDN@Home 1.1.4 beta 4 r329, accompanied by Motorhead — Sex and Outrage ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[3]: Learning to fly, или О "новых" технологиях
От: IT Россия linq2db.com
Дата: 24.02.05 19:47
Оценка: +1
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>"Но всё это ничто без правителя, который знает искусство правления..." (с) Фрэнк Герберт, "Дюна" — то есть, без грамотного во всех отношениях PM.


SDB>


К сожалению, я вынужден с тобой согласится. Отсутствие грамотных, квалифицированных ПМ становится бичём всей индустрии. И ситуация с каждым годом только катастрофически ухудшается
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Если нам не помогут, то мы тоже никого не пощадим.
Re: Learning to fly, или О "новых" технологиях
От: mister-AK Россия  
Дата: 24.02.05 22:54
Оценка:
Копал, копал, летать научился, не помогло... (А ведь Дед эту репку зарыл!)

Где Дед??!! где Колобок??!! Почему я невкурил это пост раньше??!! Что это за партия??!!
Re[3]: Learning to fly, или О "новых" технологиях
От: vdimas Россия  
Дата: 25.02.05 03:21
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>Здравствуйте, IT, Вы писали:


IT>>Я учился летать — это пять!


SDB>


IT>>Над OLE DB.


SDB>Каюсь, облажался. Меня AlexEagle в привате как раз пару часов назад разубеждал. Разубедил. А я-то грешный всю жизнь был уверен, что в конце концов все эти ADO/OLE DB/Jet/DAO банально дергают ODBC-драйвер... так дураком и помру...


Недалек от истины

Первые OLEDB-дрова были лишь КОМ-обертками над существующими ODBC-дровами, даже сейчас еще некоторые таковыми и остались..
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.