Learning to fly, или О "новых" технологиях
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 06.01.05 23:28
Оценка: 299 (38) +4 -1
#Имя: FAQ.Learningtofly.SchweinDeBurg.part1
A soul in tension that's learning to fly
Condition grounded but determined to try
Can't keep my eyes from the circling skies
Tongue-tied and twisted just an earth-bound misfit, I...

(с) Pink Floyd, "Learning to fly"

В разговоре с женщиной есть один болезненный момент. Ты приводишь факты, доводы, аргументы. Ты взываешь к логике и здравому смыслу. И неожиданно обнаруживаешь, что ей противен сам звук твоего голоса...
(c) Сергей Довлатов, "Заповедник"

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

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

Я учился летать... на смену Fortran-IV и Algol-60/68 на "Искра-1256" пришли IBM PC и MS DOS. Больше не нужно было читать данные с магнитофонных кассет (импортные, на 90 минут, не подходили — нужны были наши, на 60). Это было здорово, я мог видеть файловую систему, мог даже создавать файлы, которые можно было копировать. Борландовский Turbo Basic казался райской обителью, ведь там даже было undo!

Я учился летать... AMD разогнали свои четверки (ну-ка, кто еще помнит время, когда "четверка" была 486-м, а не P4?) аж до 133-х мегагерц — а Борландовский Turbo Vision подарил нам "стандартный" интерфейс для DOS-приложений. "Красота (ООП, подкрепленная практикой) — это страшная сила..." (с) Фаина Раневская + я.

Я учился летать... Windows 3.1 навсегда вышиб с рынка DesqView — и мне больше не нужно было напрямую писать в видеопамять и на ASM-е программировать видеоконтроллер VGA/SVGA, пытаясь "поставить точку" (на экран) еще на пару тактов процессора быстрее. Я искренне хотел бы воздвигнуть рукотворный памятник человеку, придумавшему HDC и абстрагировавшему "рисование" от конкретного устройства и даже его типа! (Забавно, что именно в это время мне выпало решать задачи "имитационного моделирования боевых действий морской авиации"... "интересная жизнь" набирала обороты...)

Я учился летать... Дэйв Кэттлер и его собраться по VMS создали полноценный Win32 API, ставший сердцем Windows NT 3.1+ (я не буду отвлекаться на мертворожденное дитя по фамилии девять-хэ). У меня отобрали сегментные регистры, а взамен подарили "плоскую" модель памяти, добавив к ней многопоточность вкупе с твердыми нога... э-э-э... крыльми. Запуская на выполнение длительную операцию больше не нужно было балансировать на шаткой веревке приходящих от пользователя и операционной системы сообщений — все свелось к банальной синхронизации обращения моих потоков к общим данным. (Вот три реки, впадающие в семь морей — ты должен уравновесить их воды, используя не больше пяти ковшей...)

Я учился летать... оказалось, что кроме *Base (для тех, кто моложе и "чище", я возьму на себя смелость "расшифровать" — dBase-IV, Fox-Base, R-Base) есть еще Paradox, Access... потом MSSQL... а совсем потом Oracle... и читать/писать "руками" уже неудобно, очень неудобно, а то и совсем никак. Но тут появилась ODBC — и "источник данных" перестал иметь особое практическое значение. Достаточно было все-лишь правильно сформулировать SQL-запрос, да "забайндить" обычные C++-ные переменные к полям выборки.

Я учился летать... я почти взлетел... но Microsoft уравнял всех в правах, дав нам COM. "Бог создал людей, а полковник Кольт сделал их равными..." Теперь каждый из нас мог писать на чем угодно — и каждый из нас мог прочесть написанное "соседом". Достаточно просто знать интерфейс "очков". Клянусь, я был рад этому! — потому что мне больше не надо было спрашивать коллегу: "а на чем делать собираешься?"

Теперь иные времена —
Тебя то нет, то лжешь не морщась...

(с) песня из к/ф "Жестокий романс"

Я все еще учился летать... но в небе было что-то странное. Появилась ADO — COM-атозная надстройка над ODBC. "Зачем эстонцу медаль? — долго раздумывал Пахапиль..." (с) Сергей Довлатов, "Зона". Действительно — зачем? Испокон веку речь шла об "уменьшении" прослоек (не в ущерб здравому смыслу, конечно) с целью повышения эффективности... а тут вдруг... Говорили, что с ней быстрее писать... но я до сих пор не верю, что 5-10-15 минут (разработки!) что-то определяют в реальном коммерческом проекте.

Потом появился .NET... (ох, как мне сейчас Влад с Андреем пятки-то поджарят... ). И я вижу очередную "надстройку". Удобную — да. Сокращающую "производственный цикл" — ДА! При наличии соответствующей среды разработки. (Это такой по-доброму ехидный подмиг был...)

<встамши в позу Маяковского>
Вот что,
    дот-нетчики,
        больше меня смущает,
Больше всего,
    что было на свете -
Cafe
    не видно за чаем
Вам.
    Мы приходящи -
        этим...


Краткие обобщения и выводы:
[ posted via RSDN@Home 1.1.4 beta 3 r241, accompanied by Judas Priest — One Shot At Glory ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Утренний постскриптум
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 07.01.05 08:14
Оценка: 4 (1) +2
"Заблудившись в собственном флуде" (с) Alex Reyst , забыл сказать — меня очень смущает тот факт, что в последнее время "новые" технологии вырастают из шагов не вглубь, а вширь. Написание программ перестает быть искусством и становится ремеслом — а мы потом возмущенно удивляемся тысяча первому вопросу "почему MFC-шный диалог закрывается при нажатии на Enter и Esc?" ИМХО причина именно в том, что под многочисленными надстройками над надстройками уже не видно китов, на которых покоится мир. Я рад, что моя (наша) профессия становится доступной все большему количеству людей — но мне горько, что она уже не требует разбивания головы о многочисленные подводные камни (или требует этого в гораздо меньшей степени, чем раньше). И я с огромным нетерпением жду очередного качественного "рывка", который выбьет из-под моих ног привычную табуретку и подарит свежую порцию "открытий чудных"...
[ posted via RSDN@Home 1.1.4 beta 3 r241, accompanied by Mad Sin — Senseless Species ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re: Утренний постскриптум
От: McSeem2 США http://www.antigrain.com
Дата: 07.01.05 16:09
Оценка: 136 (15) +1 :)))
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>меня очень смущает тот факт, что в последнее время "новые" технологии вырастают из шагов не вглубь, а вширь. Написание программ перестает быть искусством и становится ремеслом — а мы потом возмущенно удивляемся тысяча первому вопросу "почему MFC-шный диалог закрывается при нажатии на Enter и Esc?" ИМХО причина именно в том, что под многочисленными надстройками над надстройками уже не видно китов, на которых покоится мир.


Просто-таки "Хищные вещи века"
Это, и еще высказывание уважаемого Vlad2 здесь
Автор: VladD2
Дата: 28.12.04

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

навеяло мне цитату из Стругацких:
     Я швырнул эту груду макулатуры  в  угол.  Ну что у них
здесь   за  тоска!..   Дурака  лелеют,   дурака   заботливо
взращивают,  дурака  удобряют...  Дурак  стал  нормой,  еще
немного  -  и  дурак  станет  идеалом,  и доктора философии
заведут вокруг него восторженные  хороводы.  А газеты водят
хороводы уже сейчас. Ах, какой ты у нас славный, дурак! Ах,
какой  ты  бодрый  и  здоровый,   дурак!   Ах,   какой   ты
оптимистический,  дурак,  и какой ты, дурак, умный, какое у
тебя   тонкое  чувство  юмора,   и  как  ты  ловко  решаешь
кроссворды!..  Ты,  главное, только не волнуйся, дурак, все
так хорошо,  все  так  отлично,  и  наука  к твоим услугам,
дурак,  и литература, чтобы тебе было весело, дурак, и ни о
чем  не  надо  думать...   А  всяких  там  вредно  влияющих
хулиганов и скептиков мы с тобой, дурак, разнесем (с тобой,
да не разнести!).   Чего они в самом деле! Больше других им
надо,  что ли?.. Тоска, тоска...
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[2]: Утренний постскриптум
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 07.01.05 23:46
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Просто-таки "Хищные вещи века"


На самом деле, Максим, я имел ввиду несколько другую сторону медали. Хоть меня и учили, что "пример — не доказательство", позволю себе опереться именно на пример.

Программируя под DOS, что я делал, когда нужно было избавиться от мерцания при выводе на экран? — писал напрямую в видеопамять. Пересев под винду, я уже никак не мог воспользоваться этим приемом — потребовалось изучить и применить механизм двойной буферизации, который строился исключительно на Win API. Теперь представим себе, что я сейчас пересаживаюсь на .NET и не знаю, как ме удалить какую-то команду из системного меню, пользуясь средствами Framework-а. Что я сделаю (особенно, если время поджимает)? — правильно, вызову соответствующие функции старого доброго Win API.

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

P.S.
Сейчас придет Влад и скажет, что я опять "симптоматично напал на .NET"...
[ posted via RSDN@Home 1.1.4 beta 3 r241, accompanied by Motorhead — Out Of The Sun ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Learning to fly - McSeem2 - part1
От: McSeem2 США http://www.antigrain.com
Дата: 08.01.05 06:49
Оценка: 235 (41) +3 :))) :)))
#Имя: FAQ.Learningtofly.McSeem2.part1
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>На самом деле, Максим, я имел ввиду несколько другую сторону медали. Хоть меня и учили, что "пример — не доказательство", позволю себе опереться именно на пример.


[. . .]

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

Сначала я был яростным радиолюбителем и просто тащился от качественного воспроизведения звука. Широким полем для экспериментов у меня был советский социалистический магнитофон Маяк-205, который я заставил записывать и воспроизводить как Олимп-003. Народ брал его в аренду за небольшую плату для перезаписи с нулёвого винила на боббины на 19-й скорости (38-я была мало популярна в силу дороговизны). Замечание для нового поколения: 19 означает скорость движения магнитной ленты 19-чем-то-там сантиметров в секунду. В кассете — 4-с-чем-то. Забыл уже конкретные цифры. Я был представителем чисто транзисторного поколения, на лампах я так ничего так и не соорудил (было не модно), а сегодняшняя ламповая паранойя вернулась слишком поздно и проходит мимо меня, хотя было бы интересно поучаствовать и чего-нибудь там спаять (утирая пьяную слезу...).

Тем не менее, главная фишка заключается вот в чем (она будет дальше проходить красной нитью). Функциональность, которая обеспечивалась тремя ламповыми триодами, в полупроводниковом исполении требовала примерно десятка транзисторов. На трех транзиторах теоретически было можно сделать то же самое, но получался полный отстой.

Второй момент — меня (оглядываяь ретроспективно) никогда не интересовал конечный результат. Меня всегда интересовал сам процесс (поручики, молчать!). Конечный результат — это как горизонт, до которого нельзя дойти. Но, конечно же, на каждом этапе я всегда интересовался (и интересуюсь) именно прагматическим конечным результатом. Здесь нет никакого противоречия. Обобщая опыт, можно сказать, что я всегда имел и имею недостижимую цель и всегда имею некий промежуточный результат, реально полезный другим и позволяющий мне "выпивать-закусывать". Эта философия, кстати, очень созвучна с философией eXtreme Programming.

Ну это так, лирика. Перелом произошел на втором курсе института (1984), когда нам читали курс по Фортрану и языку JCL. Я на этот курс полностью забил, поскольку не мог понять элементарных вещей, например, почему оператор WRITE чего-то делает, а оператор FORMAT не делает ни чего, а существует лишь как приложение к операторам WRITE/READ (впоследствии я с этим смирился). В общем, курс был сдан кое-как, на тройку. Меня это все не интересовало, я был увлечен конструированием усилителей. Но во втором семестре понадобилось сдавать курсовую работу по теории цепей и расчитать чего-то там по схеме из пары RLC-контуров. Для этого предоставлялось машинное время на институтской ЕС-ЭВМ и надо было официально сдавать работы на бланках, которые барышни-операторы (...ночью, на стуле, около перфоратора... Ыыххх... — коленки потом были в синяках. Сейчас тоже в синяках, но по другой причине). В общем, там была некая подпрограмма на Фортране с примерно 20 параметрами, которую надо было правильно вызвать. Все это навевало на меня страшную тоску (кроме барышень), и после трех итераций я на это дело забил. Моя программа дошла только до трансляции, до этого были ошибки в JCL. Так и не странслировалось. Что самое интересное, все это можно было рассчитать на калькуляторе примерно за полдня, а цикл отладки на ЕС-ЭВМ занимал в среднем месяц. Но в требованиях было — использование ЭВМ (!). Без ЭВМ работы не принимались.

И тут на помощь пришел Друг,с погонялом Шура Балаганов. Оказалось, что в конце курса по Фортрану были две лекции по Бэйсику, на которые я забил, а Шура доблестно посетил их. И вот мы (он, если быть честным), сочинили программу на бэйсике из примерно 15 строк для расчета этой, блин, цепи. Он мне в кратце объяснил что к чему, и я пошел в компьютперный класс на Персональную ЭВМ Электроника Д-3-28. С загрузкой Бэйсика с магнитной кассеты. В результате, примерно за час я вбил эти 15 строк, умудрился все это отладить (не зная собственно языка, но имея общие представления о формальной логике) и получить распечатку с вполне правдоподобными результатами.

И я решил, что компьютеры вообще — рулез (по сравнению с калькулятором), но IBM (ЕС-ЭВМ, там была еще такая аббревиатура ЕБCДИК — EBCDIC) со своими перфокартами и распечатками — полный мазай (потратить месяц или потратить час).

Следующим этапом просветления был курсовик по трассировке печантых плат, тоже на Бейске и на ДВК-какой-то-там с перфолентой. Надо было сочинить и вбить алгоритм. Тогда я уже ориентировался и сочинил правильно. Программа с тремя вложенными циклами работала минут 10. А потом, преподаватьель включил дисковод с 12-дюймовыми дискетами, загрузил RT-11 с компилятором с Фортрана и показал всем, как этот алгоритм на самом деле должен работать. Это была какая-то фантастика. Программа на бейсике работала минут 10-15, на Фортране — баз какой-либо видимой задержки сразу выдавала результат. Со стороны преподавателя это был очень грамотный психологический трюк. Все поняли что Фортран (и вообще, компилятор) реально крут. А бейсик — так, заместо калькулятора.

Потом я устроился на работу (точнее говоря, мама меня-разгильдяя вытурила) в ВЦ ВВУГКС. Расшифровывался как Вычислительный Центр Верхне-Волжского Управления по Гидрометеорологии и Контролю Природной Среды. Конечно, до НИИХУЯ он не дотягивал (реально был такой — Научно-Исследовательский Институт Химических Удобрений и Ядов, но я в него не попал). Должность моя сначала называлась "помощник оператора ЭВМ", потом, через пару масяцев я уже был настоящим "оператором ЭВМ" (почти как "Водитель Кобылы"). Там я в свободное (ночное) время поближе познакомился с Фортраном (на девочек забил) и потом — с PL/I, причем по собственной инициативе. Все было на перфокартах! Ни какого механизма, все вручную! Но это было круто и задачи решались реально крутые по сравнению с бейсиком. Там можно было выполнять циклы из 10000 итераций за какие-то десятые доли секунды! А еще там был Дигиграф! Это чешский графопостроитель, с зеркальным полем 1x1.5 метра для рисования карт (типа изолиний давления). Карты "приклеивались" электростатикой, а приводные моторы были мощностью ватт по 300 каждый (всего три). При этом обеспечивалась точность позиционирования в 0.05мм и скорость порядка 2м/сек. Это был ураган, когда работает — земля дрожит. А компьютеры и все остальное хозяйство питалось не просто так, а через мотор-генератор для полной развязки от сети (трансформатора считалось недостаточно). И Дигиграф меня покорил! Я откопал библиотеку, которая позволяла рисовать из Фортрана линии, сплайны и текст. Чего я там только не рисовал! Но при этом и остальная, рутинная работа не вызывала во мне ни малейшего раздражения и я успевал все в срок и считался одним из лучших операторов и эта простая работа доставляла мне удовольствие. Чтобы сейчас достичь подобной нирваны, мне уже требуется гораздо более сильный "наркотик".

Первый звонок из серии "The grass was greener / The light was brighter / The taste was sweeter" прозучал именно тогда. В ВЦ ВВУГКС был еще советский компьютер Минск-32 (транзисторный!) аж со 100K памяти на борту на ферритовых кольцах. Никаких жестких дисков! Только магнитные ленты, перфоленты и перфокарты. И еще два дигиграфа в качестве периферии. И пара "Консулов" для операторов. И на нем была такая задача — обсчет метеопостов и метеостанций. Очень трудоемкая. Этот Минск-32 справлялся в 100K памяти плюс три магнитные ленты для Merge Sort. И в параллель умел рисовать одновременно на двух графопостроителях карты, наиболее критичные по времени. Потом, Минск-32 демонтировали, а софту переписали на PL/I и пустили на ЕС-1045. Для этого пришлось апгрейдить комп (и сооружать пристройку для этого!) с 256 аж до целого мегабайта памяти! Это было круто, но программа, ранее работавшая в 100K стала занимать почти весь мегабайт. При этом в ее распоряжении были жестские 100-мегабайтные диски с до сих пор непревзойденным средним временем доступа к дорожке в 5ms. Я недоумевал — что за фигня?! — и по своей наивной детской сущности спрашивал у начальства, а нафига это все? Начальство бодренько удыбалось, снисходительно гладило меня по головке с явным подтекстом "молодооой еще", а на самом деле прятало от стыда глаза. Ну типа, политика партии (ты что, не в курсе решений NN-съезда КПСС?!), надо быть в струе современности, и все такое (ничего не навевает?)...

В те времена профессия Ситемный Программист — было неимоверно круто. Инсталляция операционной системы ОС-ЕС (на самом деле IBM OS/360) занимала пару недель (!) напряженной работы (в то время, как для Минск-32 ничего не требовалось). И этим занимался Системный Программист! Не какой-то там жалкий админ, а именно Программист! Системный! А просто программисты — они чего-то там на своем PL/I (или Фортране) пишут, пускают распечатки на барабанный принтер... Типа тоже нужные люди, но имя им — легион. А системный программист был всегда один — и от него все зависело (как там в Формуле Любви, "Здесь все от Мэне Зависэть..." (вытирая лом пучком соломы)).


Если интересно дальше, завтра расскажу про PDP-11, Фортран с MACRO-11, Си на DEC, первые ПиСи, C++, и т.д. Ну, разумеется, в свете своего воспаленного восприятия и извращенного бреда... Если не интересно — просьба модераторам — удалить. Или не стесняйтесь ставить минусы — я не обижусь
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[4]: Утренний постскриптум
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 08.01.05 09:41
Оценка: +1 -2
Здравствуйте, McSeem2, Вы писали:

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


ИМХО для общения в подобном тоне предназначены места, отличные от форумов RSDN.
[ posted via RSDN@Home 1.1.4 beta 3 r241, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[5]: Утренний постскриптум
От: McSeem2 США http://www.antigrain.com
Дата: 08.01.05 15:48
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>ИМХО для общения в подобном тоне предназначены места, отличные от форумов RSDN.


Прошу прощения, если это показалось неуместным. Это просто была попытка выразить самоиронию. Я, конечно, всегда стараюсь думать, что писать, но иногда — тоже промахиваюсь.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Learning to fly - McSeem2 - part2
От: McSeem2 США http://www.antigrain.com
Дата: 09.01.05 01:42
Оценка: 179 (25) +2 :))
#Имя: FAQ.Learningtofly.McSeem2.part2
Продолжение постскриптума.

Вообще, забавные были времена в гидрометцентре. Устройство под названием "модем" представляло собой здоровенный шкаф и работало с жуткой скоростью 1200 бит в секунду, причем только на прием (передающая часть — это другой шкаф и он нам был не нужен). Информация принималась со спутника, через тарелки на крыше и послать retry было невозможно. Информация поступала из Москвы и из Washington DC (в рамках какого-то там советско-американского соглашения об обмене метеоинформацией). Потом это все распаковывалось, обрабатывалось и извлекались нужные данные для разных служб. Например, вертикальные разрезы атмосферы отсылались гражданским авиаторам и воякам. Но самый прикол был с картами. Карты были в виде больших бланков, на которых графопостроителем рисовались изолинии. Зачем? А вот. Нарисованная карта бралась, заправлялась в здоровенный факсимильный аппарат и бродкастом отсылалась в разные службы. Изврат? Нисколько! Для построения изолиний требовалась нехилая вычислительная мощность. А хранить карту в растровом виде, чтобы потом ее передать — было просто нереально, объемы памяти не позволяли. Вот и получалось, что нарисовать на бумаге, а потом опять считать и передать построчно — было вполне обоснованным техническим решением. Потом, когда комп заапгрейдили до 2-х мег, стали растеризовать в памяти, писать на ленту и передавать прямо с ленты. Дигиграфы стали нужны меньше, но все-таки нужны. Дело в том, что растеризация была все-таки очень дорогой по памяти и пользовались ей только лишь для наиболее критичных по времени карт.

Работа в гидрометцентре мне очень помогла в плане учебы. Я перестал зависеть от институтской ЭВМ! А потом поставили ЭЛТ-терминалы и систему Primus, так что с перфокартами можно было не возиться и полностью сделать курсовик за каких-то 4 часа вместо недель-месяцев на институтской ЭВМ с жутким трафиком. Для сдачи все равно требовались перфокарты, но было такое устройство вывода, ласково прозванное "бармалей", которое позволяло "пробить" файл на перфокартах. Я охотно помогал людям делать задания и учился таким образом. Были и приколы. Люди есть разные, в том числе и беспардонные. От одного такого я пострадал, оказавшись в роли козла отпущения. Чувачок был неким комсомольким лидером, попросил меня помочь с заданием, я ему помог, после чего на комсомольском собрании он рассказал, как я использую государственное машинное время в личных целях (не исключаю, что это все было подстроено комсомольским комитетом). Разборки с фингалами я опущу. Но потом, через полгода, он совершенно внаглую сказал, что "надо бы еще заданьице сделать". Была последняя ночь перед сдачей курсовика и как раз моя ночная смена, деваться ему было некуда. Мстя моя была страшна — я сделал это задание в лучшем виде, но на PL/I вместо Фортрана, объяснив это тем, что так мне было удобнее. А он был типа "отличником". А преподаватель прекрасно знал PL/I. А чувачок — ни уха ни рыла в нем (не было у нас таких курсов). А не пойти сдавать было нельзя. В общем, подставил я чувачка. Потом было много вони с его партейными папа-мамой и на меня было напущено страшное проклятье — я был объявлен чуть ли не врагом народа и путь в члены КПСС мне был заказан. На том и порешили.

Моим личным программистским апофеозом на майнфреймах была известная игра reversi в настоящем терминальном режиме, переписанная с Фортрана на PL/I с функциями терминального ввода-вывода системы Primus.

Усилители и HiFi я в конце концов забросил, в основном потому, что программирование компьютеров оказалось не менее увлекательным делом, а главное — для этого не требовалось никаких дефицитных транзисторов и операционников, которые имели тенденцию выгорать, если чего-то не туда припаял или случайно замкнул. Помню на кафедре что-то долго паяли на макетке, на 5-вольтовой TTL логике в металло-керамических корпусах, порядка сотни микросхем. А включалось это все в лабораторный блок питания обычной вилкой. И вот один студент-отличник перепутал провод и вместо блока питания воткнул в 220 саму плату. Ну, я вам доложу был фейерверк... Думаю, что эта плата до сих пор так и висит приколоченная к косяку гвоздем-соткой в назидание потомкам...

Далее была работа на кафедре, где я активно осваивал PDP-11. Сначала — тоже Фортран-4, затем — ассемблер MACRO-11. Преподаватель очень грамотно сумел нас увлечь сначала программированием в восьмеричных кодах PDP-11, а потом — макроассемблером. И вот это сочетание — MACRO-11 и Фортран было практически идеальным для решения довольно сложных задач. В самом деле, не будешь же на ассемблере программировать вычисления по формулам. В то же время, на Фортнане-4 было как-то очень плохо писать управляющую логику, работу со строками и т.д. — просто в силу того. что на MACRO-11 все получалось гораздо компактнее и было доступно гораздо больше системных функций. А адресного пространства было всего-навсего 56K (64-8). Тем не менее, был механизм оверлеев, при помощи которого можно было создавать хоть мегабайтные бинарники, что мы и делали.

Был еще компилятор с Паскаля, но он изредка вываливался по Trap 4, что было эквивалентно отсутствию какой-либо работоспособности (стандарты качества были высоки... ха! сравните с сегодняшней VS.Net).

Потом появился язык C. Весь в исходниках на том же MACRO-11 и его надо было компилировать. Наверное, это был первый серьезный Open Source, с которым я столкнулся в жизни. Однако, C меня разочаровал по сравнению с Фортраном. Генерировался гигантский код и главное — startup код был аж 6K, по сравнению с фортрановскими 2.5. А в оверлей его не засунешь. В общем, в эпоху PDP-11 я мощно сопротивлялся нашествию "незнакомой культуры" и оставался в рамках Фортрана и Ассемблера.

Весьма интересным был так же графический дисплей на запоминающей трубке, для которого я в основном и писал. Это был такой длинный зеленый монстр (в те времена почему-то все было зеленое), с монитором 12 дюймов по диагонали. Но разрешение при этом было 4096x4096. Но исключительно черно-зеленый, никаких градаций. Более того, изображение хранилось на самом люминофоре и стереть его было только все целиком, при этом дисплей отвратительно ярко мигал. Еще был графический дисплей с регенерацией изображения, для него я тоже писал, но меньше. Принцип там был такой. Никакой развертки, просто сфокусированный луч электронов, бьющих в люминофор и выдающих яркое пятно. Все! Но этим лучем можно было программно управлять. Таким образом, чтобы увидеть какую-то картинку, надо было крутить цикл, постоянно двигающий этот луч (точнее говоря, это делал дисплей через ПДП (DMA), но у него был свой собственный ассемблер). Тем не менее, на нем вполне успешно крутились разные CAD'ы и даже была игра — посадка на луну, управляемая через световое перо.

Вообще, из игр на PDP-11 запомнились (кроме посадки на луну) Packman, Тетрис Пажитнова (прозванный стаканом), бродилка "adventure", работавшая в режиме командной строки, какой-то Xonix, и чего-то там про "нашествие шестижопых кусак из соседней галактики".

Эпоха PDP-11 оставила у меня самые теплые воспоминания, там было все гораздо кайфовее, чем на майнфреймах и очень красиво, продуманно и логично по сравнению с Intel. Увы, все, что осталось от DEC — это Digital Credit Union, членом которого я состою. Но жизнь — борьба и побеждает в ней не обязательно самый умный, а как правило тот, у кого больше нахальства и крепче кулаки. Так всегда было и всегда будет, и жаловаться тут смысла нет.

Спасибо всем тем, кто дочитал до конца. Если интересно дальше — закончу попозже, если нет — пожалуйста модерируйте.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re: Утренний постскриптум
От: _FRED_ Черногория
Дата: 09.01.05 02:19
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:
SDB>"Заблудившись в собственном флуде" (с) Alex Reyst , забыл сказать — меня очень смущает тот факт, что в последнее время "новые" технологии вырастают из шагов не вглубь, а вширь. Написание программ перестает быть искусством и становится ремеслом — а мы потом возмущенно удивляемся тысяча первому вопросу "почему MFC-шный диалог закрывается при нажатии на Enter и Esc?" ИМХО причина именно в том, что под многочисленными надстройками над надстройками уже не видно китов, на которых покоится мир. Я рад, что моя (наша) профессия становится доступной все большему количеству людей — но мне горько, что она уже не требует разбивания головы о многочисленные подводные камни (или требует этого в гораздо меньшей степени, чем раньше). И я с огромным нетерпением жду очередного качественного "рывка", который выбьет из-под моих ног привычную табуретку и подарит свежую порцию "открытий чудных"...

По этому поводу у меня есть две противопложные мысли.
Первая. Нехорошая. Попытка сделать "профессию доступной все большему количеству людей" ради коммерческой выгоды. (Хотя каждая из двух "частей" предложения сама по себе ). На данный момент что есть? Удобство, некоторая красота, обилие рекламы, разнообразных статей. В то же время уж очень быстро всё меняется: FW 1.0, FW 1.1, FW 1.2, FW 2.0. Что-то начинает работать совсем не так, как раньше. Что-то из старого надо забывать и переделывать на новый лад (взять те же коллекции или меню и панели
инструментов), но ошмётки "старого" останутся "для совместимости", по-видимому, навечно...
Так вот о коммерческой выгоде: как-то я не доверяю настойчивой рекламе — создаётся впечатление, что продавец хочет поскорее избавится от товара пока товар не потерял актуальности. Не может ли случиться с .NET в скором времени то, что произошло с COM?

Вторая. Оптимистическая.
  1. Собираются заменить "китов", дав нам Avalon, Indigo и WinFS и то, что сейчас в потрохах .NET одно API — дело времени и мягкий шак к будущему, в котором интерфейс останется прежним, а реализация сильно изменится.
  2. Избавят нас от delete и Release ценой некоторого снижения производительности (а иначе, ИМХО и быть не может). А в самом деле — нажал юзер кнопку и будет программа думать не одну миллисекунду, а двадцать — юзеру по барабану. А с большими тормозами умные люди разберуться да и остальным подскажут как обходиться — и это не пустая надежда — до сих пор "как-то этак", но удаётся.
  3. Наша профессия становится более востребованной (не вплане того, что программисты стали более ... нужнее, чтоли, а просто их нужно больше в количественном отношении) — и от этого никуда не деться и то, что "она уже не требует разбивания головы о многочисленные подводные камни" — это огромная заслуга создающих технологии. Что бы создать окно на C надо было разобраться с очередью сообщений. Уже в VB этого не требовалось. Дальше — больше. На Акессе можно было создавать формы не залезая в текстовый редактор — и он тоже со своими задачами справлялся. Программы _должно_ быть легко создавать хотя бы потому что во многих случаях от них требуется только показать данные, позволить их изменить, сохранить, напечатать. Все проблемы появляются тогда, когда нужно обойти какую-то внутреннюю "системную" ошибку, либо в чём-то отступить от обще-(MS-)принятых форм поведения. Первый вариант можно считать форс-мажором, второй — закономерным последствием. И от того, насколько изящно удаётся найти выход и зависит класс. Без оглядки на язык и инструменты.
  4. "Рост вглубь". Здесь я не силён . Читал, что экспорт шаблонов ещё не сделан. Нужен? "Необходим!" ответят, я думаю, многие. Но и сейчас по-немножку-понемножку, а кое-что создаётся и выглядит прилично с многих сторон и без него. АОП? то же самое. "Рост вглубь" имеет более академический интерес, нежели практический. Появившиеся в последнии два года книги в большом количесве о рефакторинге, паттернах и XP — так же "вширь". Но это интересно.
    С удовольствием узнал бы ещё направления "роста", дабы быть в курсе.

SDB>И я с огромным нетерпением жду очередного качественного "рывка", который выбьет из-под моих ног привычную табуретку и подарит свежую порцию "открытий чудных"...

Можно ждать. Можно ждать долго. Если для тебя то, с чем ты имеешь дело не содержит уже тайн, крутых склонов и тёмных углов... то я буду считать себя счастливее Когда интересно находить решения, задачи так и лезут в голову, а когда поиск уже не интересен, а есть ожидание "рывка", что кто-то "подарит"... не надейся на других! никто лучше тебя самого не знает о какой "табуретке" ты мечтаешь.
Help will always be given at Hogwarts to those who ask for it.
Re[4]: Утренний постскриптум
От: Mamut Швеция http://dmitriid.com
Дата: 09.01.05 02:31
Оценка: 1 (1) +2 :)
Класс!

Вам точно надо объединиться со Зверьком Харьковским по поводу здесь
Автор: Зверёк Харьковский
Дата: 16.12.04
... << RSDN@Home 1.1.4 beta 3 rev. 241>> ... <<Winamp is playing "Mary Black — Summer Sent You">> ...


dmitriid.comGitHubLinkedIn
Re[4]: Утренний постскриптум
От: _FRED_ Черногория
Дата: 09.01.05 02:33
Оценка:
Здравствуйте, McSeem2, Вы писали:
MS>Продолжение постскриптума.
[занесено в память]
MS>Мстя моя была страшна

[занесено в память]
MS>Спасибо всем тем, кто дочитал до конца. Если интересно дальше — закончу попозже, если нет — пожалуйста модерируйте.

Вот это я называю фэнтези! Весь сон отбило! Буду ждать продолжения.
Help will always be given at Hogwarts to those who ask for it.
Re[4]: Утренний постскриптум
От: c-smile Канада http://terrainformatica.com
Дата: 09.01.05 03:22
Оценка: 94 (7) +1 :))) :))) :)))
Здравствуйте, McSeem2, Вы писали:

Еще в копилку историй про фортран и жизнь...

Первый курсовой проект "с выходом на машину" имел тему не много ни мало:
"Расчет оптимального угла входа головной части в атмосферу", страшное дело короче.
Курс был "Баллистика" и вела его очень симпатичная, интеллигентная и умная преподавательница с
которой у нас была взаимная симпатия.

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

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

Заскакиваю в комитет комсомола, хватаю дырокол, пробиваю дырки. Так как веревки никакой ни у кого нет, то
отрезаю с "красного стола" (Бюст Ленина на красном дермантине) две полоски и перевязываю этим свой труд.

И вот с этим своим трудом заскакиваю на сдачу. Самый последний. Мысль о том что вот сейчас развернут и "протащаться" просто распирала меня.

И тут финал: тетка смотрит на мой курсовик и не раскрывая его кладет в кучу со словами "Андрей, твои завязочки меня умилили, давай зачетку!".

В общем трындец, женщины и наука...

Вот собственно с чего у меня началось увлечение визуализацией и UI.
И сделал я философски-мощный вывод для себя — все главное в деталях. "Завязочки" они, вишь ты, тоже играют.

Вот такие вот пироги...

Макс, я тебя понимаю про девченок-операторов... нам студентам время на машине давали по ночам...
Святое же дело...
Re[5]: Утренний постскриптум
От: McSeem2 США http://www.antigrain.com
Дата: 09.01.05 04:35
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Ну понятно что секс с перфокартами и отладкой с помощью скальпеля (вырезание и заклеивание дырдочек в перфокартах) длился весь семестр и успел я получить финальную распечатку только утром в день сдачи.


Должен сказать, что я до прорезания дырочек в перфокартах и заклеивания лишних я так и не дошел. У меня в распоряжении был перфоратор, причем очень продвинутый — электронный (!), он вверху перфокарты печатал пробиваемые символы. Так что я мог просто перебить нужную строку заново. А с заклеиванием боролись, поскольку такие перфокарты забивали считывающее устройство.

CS>И вот с этим своим трудом заскакиваю на сдачу. Самый последний. Мысль о том что вот сейчас развернут и "протащаться" просто распирала меня.

CS>И тут финал: тетка смотрит на мой курсовик и не раскрывая его кладет в кучу со словами "Андрей, твои завязочки меня умилили, давай зачетку!".

Вот зараза (нежно-иронично)... Как там в мультике — "Ой! Ванька-то каку гангрену за себя взял...".

CS>Макс, я тебя понимаю про девченок-операторов... нам студентам время на машине давали по ночам...

CS>Святое же дело...

В гидрометцентре они меня плохому научили — табак курить и матом ругаться как взрослые дядьки. А еще — пить неразбавленный технический спирт
Однажды случилась трагедия по всему управлению — кто-то перепутал канистры и залил 20 литров высококачественного спирта а канистру из-под бензина. Ну, я вам доложу был конфуз... В общем, как пел Веня Дркин "Люди, хоть и люди — тоже люди..." несмотря ни на какие коммунизмы.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[6]: Утренний постскриптум
От: c-smile Канада http://terrainformatica.com
Дата: 09.01.05 05:44
Оценка: 17 (1) +1
Здравствуйте, McSeem2, Вы писали:

MS>Должен сказать, что я до прорезания дырочек в перфокартах и заклеивания лишних я так и не дошел. У меня в распоряжении был перфоратор, причем очень продвинутый — электронный (!), он вверху перфокарты печатал пробиваемые символы. Так что я мог просто перебить нужную строку заново. А с заклеиванием боролись, поскольку такие перфокарты забивали считывающее устройство.


Это вы с жиру бесились...
Зато когда я пришел в НИИ там я отыгрался. Нам с другом, таким же как и я МНС, оторвался персональный компутер — машинка СМ-1634
(линии СМ-1 СМ-2). Её содрали с Hewlett-Packard замечательной архитектуры — два аккумулятора и 1k регистров — гуляй — не хочу.
Математика на ней была отчечественная и к слову сказать просто удивительная по качеству. Там была приличная ДОС и средства разработки толковые в купе с классным компайлером Паскаля котрый меня купил — там были структуры. Все это вместе называлось Агрегированные Средства Программного Оьеспечения (ДОС АСПО) И что самое прикольное там был такой ОС генератор — макроязык на котором можно было собрать себе ОС под задачу. Что мы и делали — памяти было всего 64к поэтому была ОС со вшитой задачей А и соответсвенно другая — под задачу Б. Сказка! Юниксом тогда и не пахло.
Куда оно все ушло, где те люди?

MS>В гидрометцентре они меня плохому научили — табак курить и матом ругаться как взрослые дядьки. А еще — пить неразбавленный технический спирт


Так как наш персональный компутер (две СМовских стойки) в отделе не поместился то нам пострили закуток в цеху опытного производсва.
Построили в буквальном смысле — с крышей, дверями и окнами и стенами в пол кирпича. Лучше кабинета у меня так и не было. Куда оно все ушло? Деградамс какой-то по жизни, право слово.
Самое ценное в этом кабинете было то что рядом была какая-то поточная линия в которй был желоб метров пять с чистым спиртякой. И половничек висел на нужном месте на заветном гвоздике. День заканчивался тем что весь отдел шел по очереди к нам "за распечатками"
И вот тогда реально начиналось обсуждение философских проблем развития программизма... До каких глубин предвидения доходили, жуть

А вы говорите .NET, ха! 64к и ОС от которой только драйвер клавиатуры и ЦПУ остались в памяти, слабо?
Re[6]: Утренний постскриптум
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 09.01.05 09:37
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Это просто была попытка выразить самоиронию.


Воспринять это как только самоиронию мне помешало слово "тоже". Кроме того, Ваши тексты в этой ветке ИМХО на заслуживают иронии в силу своей интересности. Справедливости ради замечу, что я-то позволил себе этакий "исторический экскурс" не просто занимательного рассказа ради, а чтобы подвести читателя к определенным выводам, накопившимся у меня — но ценнсти Ваших постов это ни в коей мере не умаляет.
[ posted via RSDN@Home 1.1.4 beta 3 r241, accompanied by AC-DC — Dog Eat Dog ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[2]: Утренний постскриптум
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 09.01.05 09:43
Оценка: +1
Здравствуйте, _FRED_, Вы писали:

_FR>Так вот о коммерческой выгоде: как-то я не доверяю настойчивой рекламе — создаётся впечатление, что продавец хочет поскорее избавится от товара пока товар не потерял актуальности.


А ты вспомни про рекламу пива и его актуальность.

_FR>Не может ли случиться с .NET в скором времени то, что произошло с COM?


ИМХО очень вряд ли — слишком много усилий MS вкладывает в продвижение и популяризацию этой технологии, особенно среди "рядовых" разработчиков, сегодняшних студентов, etc. Вспомните бесплатный VC++ Toolkit, бесплатные же беты VS 2005 Express (AFAIK, релизы собираются отдавать "за гроши"). Кроме того — а что такого произошло с COM, не считая "эпатажного" заявления представителей МС об "оибочной и тупиковой технологии"? Вы без COM-ов ни с Shell'ом не поработаете, ни с IE, ни с Office. Да и если внимательно присмотреться к процессу установки VS.NET 2003, а потом еще и в HKEY_CLASSES_ROOT заглянуть — можно увидеть, что "покойный" проявляет завидную резвость.

_FR>Вторая. Оптимистическая.


[прочитано и принято к сведению]

"Замена китов". Пока что мне представляется довольно сомнительным, что MS будет полностью, "с нуля" переписывать NT-вое ядро — там же тонны отлаженного кода. Или Вы предполагаете, что с течением времени нам просто прикроют доступ к API?

"Избавление от delete и Release". Вот как на духу признаюсь — меня никогда не ломало после new написать delete; более того, не делая этого, я себя чувствую как-то неуютно.

"Программы _должно_ быть легко создавать". Одновременно и соглашусь, и нет. Да, для не-программиста по профессии (ну, например, преподавателя э-э-э... экономики), которому нужно или хочется "автоматизировать" свою профессиональную деятельность — ничего лучше "конструктора из кубиков" типа Delphi/VB и желать нельзя. А вот что качается нас... тут ИМХО все не так однозначно. Посмотри на "молодежь" (это я без малейшего снобства), которая начала писать под винду на MFC, минуя C, "очередь сообщений", API, Петцольда — по моим прикидкам, количество вопросов в форуме "MFC" сократилось бы примерно вполовину, получи они "классическое виндовозное образование" (с) мой.

_FR>Если для тебя то, с чем ты имеешь дело не содержит уже тайн, крутых склонов и тёмных углов... то я буду считать себя счастливее


Черта с два! "Чем больше я узнаю, тем сильнее осознаю глубину своего невежества..." (с) кто-то из древне-мудрых.

_FR>а когда поиск уже не интересен, а есть ожидание "рывка", что кто-то "подарит"...


Ты меня не так понял... или я криво выразил свою мысль... Посмотри мой ответ Максиму: Re[2]: Утренний постскриптум
Автор: SchweinDeBurg
Дата: 08.01.05
— в нем мне, кажется, удалось синхронизировать мысли и слова.
[ posted via RSDN@Home 1.1.4 beta 3 r241, accompanied by AC-DC — Sin City ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[3]: Утренний постскриптум
От: dmz Россия  
Дата: 09.01.05 13:46
Оценка: +1
SDB>Программируя под DOS, что я делал, когда нужно было избавиться от мерцания при выводе на экран? — писал напрямую в видеопамять.
Пардон. В текстовом режиме это может еще и подходило, но в графике — всё та-же двойная буферизация плюс
подождать обратного хода луча. Эх, было время. Кстати, по моему переключится в 0x13-ый режим и нарисовать что-то
на экране было гораздо проще, чем сейчас воспользоваться директ-иксом или там sdl-ем.
Офтоп
От: Зверёк Харьковский  
Дата: 09.01.05 14:07
Оценка:
MS>В общем, как пел Веня Дркин...
Дядя Макс, так ты еще и Дркина слушаешь!
А я думал, я тут один такой...
сам слушаю и вам рекомендую: в тишине сижу
FAQ — це мiй ай-кью!
Re[3]: Утренний постскриптум
От: _FRED_ Черногория
Дата: 09.01.05 14:34
Оценка: 1 (1) +1
Здравствуйте, SchweinDeBurg, Вы писали:
_FR>>Так вот о коммерческой выгоде: как-то я не доверяю настойчивой рекламе — создаётся впечатление, что продавец хочет поскорее избавится от товара пока товар не потерял актуальности.
SDB>А ты вспомни про рекламу пива и его актуальность.
Вот тут не надо. Пиво всегда рекламировалось, а такой шумихи, как вокруг .НЕТа, я не припомню. Но согласен, для неё есть два объяснения.

_FR>>Не может ли случиться с .NET в скором времени то, что произошло с COM?

SDB>ИМХО очень вряд ли — слишком много усилий MS вкладывает в продвижение и популяризацию этой технологии, особенно среди "рядовых" разработчиков, сегодняшних студентов, etc.

Не то же ли самое и с ActiveX было? Те же кампании, что сейчас заполонили рынок .НЕТовскими компонентами развернулись с ActiveX. Под МФЦ что-то было дааалеко не у всех. Теперь их ActiveX очень мееедленно развиваются. Одной из првых книг по программированию, что я прочитал, оказалась "ActiveX и OLE" Дэвида Чеппела. О, какой панацеей тогда казался IUnknown (в вто время я делал только первые робкие шаги и многие взгляды на веру перенял у старших товарищей)! И по сей день не хочется от неё избавляться (как от памяти). Но толку от не сейчас

SDB>Вспомните бесплатный VC++ Toolkit, бесплатные же беты VS 2005 Express (AFAIK, релизы собираются отдавать "за гроши").

Именно! А обилие статей на сайте MS об архитектуре приложений? О том, как надо думать, а не о том, как надо функции вызывать! Найди-ка такое в МСДНе за 2000ый что ли год, когда про .НЕТ в нём ещё не слова не было? Разве что только в старых книгах, вроде Inside OLE и Official Guidelines for User Interface Developers and Designers и в подшивках журналов можно было узнать о том, как кто думает ипытаться научиться тому же. А теперь — "колбаса"! Хоть зачитайся о проектировании! Но, может, мне просто тогда это было не так интересно и я не сильно старался.

SDB>Кроме того — а что такого произошло с COM, не считая "эпатажного" заявления представителей МС об "оибочной и тупиковой технологии"?

Хех, это для кондратия может оказаться достаточно. Из личного опыта — был здоровенный проект, начавшийся ещё в 96м. Был он под НТ. И работал по NetDDE. Земечательно, говорят, работал. И что? Пришли W2k и накрылся NetDDE медным тазом. Та же участь постигла и ДАО и примерно в это же время. Не уж — наперёд загадывать — увольте (хотя как хотца чувствовать себя в сиропе с молоком)

SDB>Вы без COM-ов ни с Shell'ом не поработаете, ни с IE, ни с Office. Да и если внимательно присмотреться к процессу установки VS.NET 2003, а потом еще и в HKEY_CLASSES_ROOT заглянуть — можно увидеть, что "покойный" проявляет завидную резвость.

Скоро, скоро.

_FR>>Вторая. Оптимистическая.

SDB>"Замена китов". Пока что мне представляется довольно сомнительным, что MS будет полностью, "с нуля" переписывать NT-вое ядро — там же тонны отлаженного кода. Или Вы предполагаете, что с течением времени нам просто прикроют доступ к API?
Куда ж мы без CreateWindow(...) Перекрыть может и не перекроют, но что-то новое дадут — почему-то уверен.

SDB>"Избавление от delete и Release". Вот как на духу признаюсь — меня никогда не ломало после new написать delete; более того, не делая этого, я себя чувствую как-то неуютно.

И не было никогда сомнений и ошибок в том, в каком месте и когда это лучше сделать?

SDB>"Программы _должно_ быть легко создавать". Одновременно и соглашусь, и нет. Да, для не-программиста по профессии (ну, например, преподавателя э-э-э... экономики), которому нужно или хочется "автоматизировать" свою профессиональную деятельность — ничего лучше "конструктора из кубиков" типа Delphi/VB и желать нельзя.

Нет, это я как раз мечтаю отдавать заказчику шаблон отчёта, а он бы уже сам нашёл людей, которые в этот отчёте его имя курсивом напишут, что положено жырным выделят, пододвинут куда надо, поля необходимые догадаются сами вставить. Такой человек для любой конторы — находка. Дальше — больше. Я емё инструмент, а он для него — плагин. И что самое главное, ИМХО, для заказчика — это лучший вариант — максимально быстро получить желаемое.

SDB>А вот что качается нас... тут ИМХО все не так однозначно. Посмотри на "молодежь" (это я без малейшего снобства), которая начала писать под винду на MFC, минуя C, "очередь сообщений", API, Петцольда — по моим прикидкам, количество вопросов в форуме "MFC" сократилось бы примерно вполовину, получи они "классическое виндовозное образование" (с) мой.

это тоже от души, извини если ввёл в заблуждение, но это я "начал писать под винду на MFC, минуя C, "очередь сообщений", ..." и даже, честно признаюсь, ключей cl.exe подчти не знаю. Но, видать, повезло — РСДНа долго не знал. Единственные пути к образованию — не редкое пиво со старшими, которые в обычное время отнекиваются и пинки "не знаю, сам разберись" в рабочии часы... И ничего, сижу, никому не мешаю (хочется надеяться). Ведь не слабые опускют вниз планку прогресса, но от Титанов зависит, насколько далеко пойдёт человечество. То есть ты представь, ведь не может человек сразу за всё браться — кому-то протоколы, а кому-то табконтролы И это может получаться без глубоких знаний того, как "напрямую в видеопамять..." за что многие давно и борятся — удешевление труда за счёт уменьшения квалификации работника. Вот вспомнил "Одноэтажную америку" Ильфа и Петрова, про то как американская официантка переживала, что вместо неё скоро в каже будет работать автомат. Модчти ничем его работоспособность не отличалась от ейной, за исключением той, что робот на прощание мог приянно пискнуть. И это особенно её расстраивало. а сейчас все понимают — что машина — это экономичнее.
Вот недавно шутку слышал:

- Как зачитать файл с диска?
— Ну, сначала надо спозиционировать головку венчестера...

В терминах наверняка наврал, но смысл думаю понятен.

_FR>>Если для тебя то, с чем ты имеешь дело не содержит уже тайн, крутых склонов и тёмных углов... то я буду считать себя счастливее

SDB>Черта с два! "Чем больше я узнаю, тем сильнее осознаю глубину своего невежества..." (с) кто-то из древне-мудрых.


_FR>>а когда поиск уже не интересен, а есть ожидание "рывка", что кто-то "подарит"...

SDB>Ты меня не так понял... или я криво выразил свою мысль... Посмотри мой ответ Максиму: Re[2]: Утренний постскриптум
Автор: SchweinDeBurg
Дата: 08.01.05
— в нем мне, кажется, удалось синхронизировать мысли и слова.


Угу

SDB>Программируя под DOS, что я делал, когда нужно было избавиться от мерцания при выводе на экран? — писал напрямую в видеопамять. Пересев под винду, я уже никак не мог воспользоваться этим приемом — потребовалось изучить и применить механизм двойной буферизации, который строился исключительно на Win API. Теперь представим себе, что я сейчас пересаживаюсь на .NET и не знаю, как ме удалить какую-то команду из системного меню, пользуясь средствами Framework-а. Что я сделаю (особенно, если время поджимает)? — правильно, вызову соответствующие функции старого доброго Win API.

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

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

Здесь, мне кажется, извечный конфлик между теми, кто договаривается с заказчиком и выставляет счёт (у них одно на уме) и теми, кому для достижения гармонии с внешним миром надо реализовать то, что он задумал. Где-то слышал такую умную мысль, что "товар стоит столько, сколько за него готовы заплатить" — и опять дилема. Я стараюсь в эти вопросы не вникать и всеми способами находить компромисс — потому что в этом вопросе, боюсь, они всегда окажутся выше нас.
Help will always be given at Hogwarts to those who ask for it.
Re[4]: Утренний постскриптум
От: LaptevVV Россия  
Дата: 09.01.05 14:38
Оценка:
Здравствуйте, McSeem2, Вы писали:

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


SDB>>На самом деле, Максим, я имел ввиду несколько другую сторону медали. Хоть меня и учили, что "пример — не доказательство", позволю себе опереться именно на пример.


MS>[. . .]


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

Придется видимо и мне свой путь прописать — но это завтра...
MS>Если интересно дальше, завтра расскажу про PDP-11, Фортран с MACRO-11, Си на DEC, первые ПиСи, C++, и т.д. Ну, разумеется, в свете своего воспаленного восприятия и извращенного бреда... Если не интересно — просьба модераторам — удалить. Или не стесняйтесь ставить минусы — я не обижусь
И про это тож все пропишу...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Утренний постскриптум
От: Зверёк Харьковский  
Дата: 09.01.05 15:39
Оценка: +3
Здравствуйте, LaptevVV, Вы писали:

MS>>Понятно. Ну чтож, я тогда тоже поупражняюсь в графоманстве...

LVV>Придется видимо и мне свой путь прописать — но это завтра...

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

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

ЗЫ: кстати, убедительная просьба к старожилам, которые еще не отметились в этом топике и при этом чувствуют в себе эпическую силу — поделитесь с человечеством занимательной автобиографией, а?
сам слушаю и вам рекомендую: Evanescence — Whisper Fallen version
FAQ — це мiй ай-кью!
Re[7]: Утренний постскриптум
От: McSeem2 США http://www.antigrain.com
Дата: 09.01.05 15:40
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>Воспринять это как только самоиронию мне помешало слово "тоже".


Я уже понял. В этом не было никакого подтекста, просто "ляпнул мимо тазика". Случается...
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re: Офтоп
От: McSeem2 США http://www.antigrain.com
Дата: 09.01.05 17:58
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>Дядя Макс, так ты еще и Дркина слушаешь!

ЗХ>А я думал, я тут один такой...

Я его уже до "Др" заслушал...
"А молодой пожарный не умеет плавать, он с этой бабой утонул..."
Кстати, drdom.ru опять поднялся.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[6]: Утренний постскриптум
От: McSeem2 США http://www.antigrain.com
Дата: 09.01.05 19:47
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

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


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

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

Завсегда пожалуйста. Единственный неприятный момент — я мог где-то согрешить против истины, просто в силу того, то уже не помню конкретных цифр. Например, я не уверен, что модем работал на скорости 1200 бод, вроде-бы на 1200, но гарантии дать не могу.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[4]: Утренний постскриптум
От: McSeem2 США http://www.antigrain.com
Дата: 09.01.05 21:00
Оценка: 1 (1) +2
Здравствуйте, McSeem2, Вы писали:

Забыл закончить параграф эффектной фразой.
Должно быть так:

MS>В общем, подставил я чувачка. Потом было много вони с его партейными папа-мамой и на меня было напущено страшное проклятье — я был объявлен чуть ли не врагом народа и путь в члены КПСС мне был заказан. На том и порешили. Через несколько лет после этих событий Коммунистическая Партия Советского Союза фактически прекратила свое существование. Такие дела...


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

И, кстати, от сегодняшней американской паранойи об авторских правах, спонсируемой в часности Microsoft (BSA, RIAA и проч.) веет чем-то очень знакомым и на редкость вонючим. Например, хоть сейчас можно приходить, брать меня тепленького и ставить на бабки в сотни тыщ долларов (ну или в тюрьму). Просто в силу того, что наряду с лицензионной Windows XP, у меня на компе установлен еще и какой-то древний MS-DOS (без лицензии), посредством которого мне пришлось устанавливать XP. История была такая. Мне понадобился еще один комп, я пошел в магазин и купил его, причем удалось сторговать процентов 30 в цене. С предустановленной WinXP. Я подумал — круто, не надо OS покупать. Но оказалось, что XP проинсталирована на раздел FAT в 2GB и этот раздел забит полностью — ничего нового принсталировать нельзя. Причем, другой раздел был отформатирован как надо, и туда была залита куча какого-то ненужного софта из официальной поставки. Надо было либо переразбивать и ковертировать разделы, либо переинсталировать систему. Как объединить C: (2GB FAT) и D: (остальное, NTFS) и сконвертировать все это в NTFS штатными виндовыми средствами — я с наскоку не нашел (подозреваю, что как-то можно, но весьма неочевидно). И я решил переинсталировать систему. Но оказалось, что там не просто система Windows XP, а система с дополнительным автоматическим инсталятором какой-то левой конторы под названием SoftThinks (очень говорящее название — конечно же, контора должна называться SoftStinks). Надо заметить, что инсталятор был тоже полностью лицензионным, на нем было куча всяких регалий, в том числе и от MS. Что он делал — вставляешь диск, нажимаешь пробел и все. Действительно, инсталируется автоматически. И именно в описанной выше конфигурации. То есть, в точности то, что и было. Никаких опций! Я, не мудрствуя лукаво, нашел на диске дистрибутив XP, поставил MS-DOS с дискеты, залил на DOS-раздел дистрибутив WinXP со штатного диска и установил по-человечески, на раздел D. Все нужные драйверы быстро нашел в Интернете, благо система распознала сетевую карту. Все! Своими действиями я грубо нарушил закон об авторском праве и сейчас являюсь злостным преступником. Другое нарушение — VS 6.0, которая была лично мной куплена в России в 1999 году, у официального дистрибютора и на которой я сейчас работаю. Но за давностью лет я потерял от нее товарный чек, остались только 3 CD и бумажка с ключем. Все! Я — преступник. Такие дела...
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[4]: Утренний постскриптум
От: DJ KARIES Россия  
Дата: 09.01.05 21:49
Оценка:
Здравствуйте, dmz, Вы писали:

dmz>Кстати, по моему переключится в 0x13-ый режим и нарисовать что-то

dmz>на экране было гораздо проще, чем сейчас воспользоваться директ-иксом или там sdl-ем.
Надо юзать OpenGL и усё будет просто
См. glfw: http://glfw.sourceforge.net

А с этими 0x13 люди такой бурды понаписали. Мало кто додумывался сделать антифлик и WaitForBlank.
Да и 320x200x8BPPx60Hz, мягко говоря, сейчас отстой.
... << http://dkdens.narod.ru :: http://retroforth.org >>
Learning to fly - McSeem2 - part3
От: McSeem2 США http://www.antigrain.com
Дата: 10.01.05 05:06
Оценка: 80 (15) +1 :)
#Имя: FAQ.Learningtofly.McSeem2.part3
Нет дороге окончанья, есть зато ее итог,
Дороги трудны, но хуже без дорог...



Дальнейшим этапом накопления личной силы, были две IBM-PC/AT с двумя мегами памяти на борту и с цветными EGA-дисплеями. Это было круто! Цветной дисплей, который может отображать аж целых 16 цветов одновременно, при выборе из палитры в 2^18 цветов. Разрешение, правда было не сравнимо с шедеврами графики на запоминающей трубке, какие-то жалкие 640x350 пикселов, но самое главное — пикселы можно было засвечивать и стирать без перерисовки всего экрана! Смешно? Кому смешно — тот настоящего пороху не нюхал (шутка!). Но на этом, собственно, вся крутость и заканчивалась, для меня, во всяком случае. Там был MS-DOS, который от RT-11 отличался только наличием вложенных каталогов и файловой системой с возможностью фрагментации файлов (не факт, фрагментация — это хорошо). В RT-11 файл мог быть только непрерывным и если места было достаточно но все было зафрагментировано, то создать файл было нельзя, надо было пользоваться утилитой SQUEEZE, которая фактически была эквивалентна Defragment, появившийся штатным образом в поставках Microsoft только начиная с Win2000. Что я этим хочу сказать — простая организация файловой системы требовала определенной самодисциплины и надо было непрерывно поддерживать свое рабочее место в порядке. MS-DOS с его фрагментированными файлами привнес некий хаос в умы. Отвлекаясь от темы — С++ так или иначе требует бережного обращения с памятью, сколько бы ее ни было. Иначе придет страшный зверь под названием "фрагментация". Причем, в отличие от файловой системы RT-11, в C++ в общем случае, нет никакой возможности сделать SQUEEZE. С другой стороны, современные архитектуры пока что не позволяют мапировать логически непрерывное пространство памяти на множество физических кусочков произвольного размера (а было бы круто). Так вот, вся доблесть автоматической сборки мусора в дот-нет заключается в том, что там есть возможность перемещать объекты по памяти произвольным образом, и таким образом делать SQUEEZE. Это действительно большое достижение, грубо говоря, C++ — это файловая система RT-11 без возможности SQUEEZE, а .Net — та же самая файловая система с автоматически запускаемым SQUEEZE (сейчас придут дот-нетчики и меня зачморят — пожалуйста, я не против). А в идеале — надо бы что-то типа NTFS, реализованной в памяти на аппаратном уровне и никаких сборок мусора (во какой бред, во куда заносит)...

Во всем остальном, IBM-PC с MS-DOS были разочарованием. Система команд — ужасная и нелогичная, типа не думали особо, а просто сели и напедалили по-быстрому — именно такое впечатление у меня и сложилось, а первое впечатление, как правило, самое верное. Но в результате Intel победил! А победителей, как известно, не судят — повод задуматься о смысле жизни (мне в первую очередь)...

Фортран на IBM-PC не был не популярен, это был компьютер для языков C и Pascal по большому счету (Бэйсик не считаем в силу его изначальной ущербности). Разумеется, мне, как истинному патриоту Фортрана тут же стал жутко интересен язык C. Я его изучал исключительно по справочнику (молитвеннику) товарища Болски — миллиметров восемь в толщину и такого портсигарного формата. Была еще "книжка" некого бумагомараки по имени Г.Шилдт, с помпезным названием "Язык C для профессионалов". Посвящалась она тому, как из Turbo-C вызвать то или иное прерывание MS-DOS или функцию BIOS. То есть, к языку C как таковому, эта книжка не имела ни малейшего отношения. Справочник Болски был составлен очень грамотно — все что нужно (включая функции CRT и форматы printf/scanf) и ничего лишнего. Гэ-Шилдт — полная профанация языка как такового. Понятно, что им двигал мотив заработать денег как можно быстрее, но нельзя же так в конце концов — ведь множество людей доверилось этой книжке и стало считать, что язык Си — это и есть те самые вызовы int21. А по приходу Windows оказалось, что язык Си — это нечто совсем другое и тот же Гэ-Шилдт тут же тиснул другую книженцию, с другим помпезным названием, конечно же тоже про язык C или C++... Я вполне верю, что эти книги кому-то помогли, но гадом буду — так жить нельзя. Это и есть то самое, что я называю беспардонностью (это был откровенный наезд).

Другое, что меня неприятно удивило в IBM PC — это какая-то разобщенность и неорганизованность. Это чувствовалось во всем. Например, на PDP-11 был наимощнейший редактор "KED", адаптированный под систему команд тертинала VT-52 и поэтому прозванный K52. Он позволял, используя 32K памяти, редактировать мегабайтные файлы и реально с этим справлялся. На IBM-PC наиболее продвинутым был Multi-Edit, но он как-то кривовато работал с большими файлами, которые не лезли в 640K — надо было явно переключаться между страницами и были глюки. В K52 все было совершенно прозрачно — не было такого понятия как "страница" в памяти, все обеспечивалось управляющей системой и файл редактировался так, как если бы он был весь в памяти. Бардак и непродуманность чувствовались даже в мелочах. Например, в K52 была такая обобщенная функция — "повторить операцию N раз". Соответственно, была не нужна специальная команда "Goto line", все обеспечивалось обобщенными средствами. Скажите, можно ли в современном редакторе найти 18-е по счету слово с начала файла? Думаете не надо? А вот надо — это как парадигма в программировании — когда привыкнешь к хорошему, начинаешь критически смотреть на вещи. До сих пор мне подобной простой функции очень не хватает.

Другим неприятным сюрпризом было то, что каждый компилятор имел свою программу типа "LINK.EXE", как правило, не совместимую по формату obj-файлов с другими компиляторами. Фактически, идея о раздельной компиляции почила в бозе уже тогда — во времена MS-DOS. Или же, вместе с .LIB надо было давать и конкретный компилятор, что и делалось (нелегально!).

Ну и конечно же, был этап рисования пиксела (как же без этого!). Точнее сказать, я некоторыми своими идеями заразил людей, которые рисовали пиксел и линию "на два такта быстрее", в результате чего это все вылилось в целый проект и целую графическую библиотеку с тоже вполне помпезным названием GSE (Graphic Support for Engineers).

Во времена MS-DOS эпохи перестройки настоящим программистом считался тот, кто написал три вещи — собственный оконный интерфейс, бухгалтерскую систему и компьютерную игру. Три кита и три составные части.

Все это я доблестно выполнил, и даже перевыполнил. В том смысле, что когда я попытался познакомиться с Windows API, я заплевал весь монитор, настолько это было тупо по сравнению с моим собственным графическим оконным API (особенно файлы ресурсов). Но где я и где — Microsoft... Конечно же, все эти мои "достижения" канули в лету, но я о них нисколько не жалею — это было время полетов. Я не учился летать — я просто летал, с синяками и фингалами от падений и врезаниями башкой в деревья, но это были полеты. Вплоть до организации собственноручных DLL под MS-DOS в силу того, что не было нормальной системы оверлеев. Было что-то такое в турбо-паскале, потом (сильно потом) мигрировавшее в Borland-C++, но все это было фуфло по сравнению с простой и ручной организацией оверлеев в RT-11.

А народ тем временем изучал C++, а я этому тоже активно сопротивлялся, поскольку не было тогда достаточно хороших компиляторов C++, так же, как и не было хорошего Фортрана-4 на IBM-PC...

Окончания не получилось. Надо бы еще написать про становление C++ в моей жизни, но потом — боюсь, что только на следующих выходных...
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[5]: Утренний постскриптум
От: dmz Россия  
Дата: 10.01.05 06:09
Оценка: 1 (1)
dmz>>Кстати, по моему переключится в 0x13-ый режим и нарисовать что-то
dmz>>на экране было гораздо проще, чем сейчас воспользоваться директ-иксом или там sdl-ем.
DK>Надо юзать OpenGL и усё будет просто
DK>См. glfw: http://glfw.sourceforge.net
Где был ваш OpenGL в 1994 году?

DK>А с этими 0x13 люди такой бурды понаписали. Мало кто додумывался сделать антифлик и WaitForBlank.

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

А насчет бурды — вы напишите игрушку, равную по playability StarControl II. Потом говорите за бурду.
Ну да, там не 0x13, там был x-mode, но разница небольшая.

А совершенно гениальная по графике Another World — 640x480x16, но как это выглядело...
Re[4]: Как-бы продолжение...
От: dmz Россия  
Дата: 10.01.05 06:30
Оценка: +3
MS>Г.Шилдт, с помпезным названием "Язык C для профессионалов". Посвящалась она тому, как из Turbo-C вызвать то или иное прерывание MS-DOS или MS>функцию BIOS. То есть, к языку C как таковому, эта книжка не имела ни малейшего отношения. Справочник Болски был составлен очень грамотно — все MS>что нужно (включая функции CRT и форматы printf/scanf) и ничего лишнего. Гэ-Шилдт — полная профанация языка как такового. Понятно, что им MS>двигал мотив заработать денег как можно быстрее, но нельзя же так в конце концов — ведь множество людей доверилось этой книжке и стало считать, MS>что язык Си — это и есть те самые вызовы int21. А по приходу Windows оказалось, что язык Си — это нечто совсем другое и тот же Гэ-Шилдт тут же MS>тиснул другую книженцию, с другим помпезным названием, конечно же тоже про язык C или C++... Я вполне верю, что эти книги кому-то помогли, но MS>гадом буду — так жить нельзя. Это и есть то самое, что я называю беспардонностью (это был откровенный наезд).

Видел я эту Шидтовскую книгу по С, как же. Она еще содержала кучу листингов программ, как правило неработающих,
и часто некомпилирующихся. Знаем-знаем. Халтурщик и профанатор этот Шилдт, таким наверное и остался с 1994 года,
когда я выкинул первую (ну для меня и последнюю) его книгу.
Re[4]: Как-бы продолжение...
От: c-smile Канада http://terrainformatica.com
Дата: 10.01.05 06:37
Оценка: :)))
Здравствуйте, McSeem2, Вы писали:

"А мы пойдем на север!"

Фиг его знает...

Скомпилировав, отладив и запустив Шилдовский интерпретатор Basic'а (который не работал будучи набранным, это точно)
я понял что могу писать интерпретаторы. Спасибо ему. Все остальное содержиме книги — не помню

Re[4]: Как-бы продолжение...
От: Privalov  
Дата: 10.01.05 07:01
Оценка:
Здравствуйте, McSeem2, Вы писали:

[skip]


Мне, похоже, пришлось идти тем же путем. Первыми средами разработки, которые я увидел на PC AT+EGA+1MB+HDDx40 MB
были FoxBase, Turbo C 2.0. Я тогда на завод в отдел АСУ перешел работать. Хороший период был. Успел кое-чему научиться. Команда отличная собралась. Никто из нас не был чем-то выдающимся, но каждому из нас удалось занять наиболее подходящее место в коллективе. Потом наш начальник отдела начал чудить, грозил уволить всякого, у кого на экране увидит что-то, отличное от FoxBase, что-то там еще, в общем, не суть. В итоге весь отдел разбежался, причем как-то очень быстро, буквально за пару недель.

Фортран на IBM-PC не был не популярен, это был компьютер для языков C и Pascal по большому счету (Бэйсик не считаем в силу его изначальной ущербности). Разумеется, мне, как истинному патриоту Фортрана тут же стал жутко интересен язык C. Я его изучал исключительно по справочнику (молитвеннику) товарища Болски — миллиметров восемь в толщину и такого портсигарного формата.


Уже на следующий день меня взяли на работу в НИИ, в лабораторию моделирования. Там стоял такой же PC AT. Основным рабочим инструментом был Microsoft Fortran 4.0. Позже мы перешли на версию 5.0. Пробовали другие компиляторы (NDP, Watcom), но у Microsoft была действительно хорошая реализация Fortran 77. Первое что я сделал — перевел на PC набор программ, работавших до этого на ЕС 1036. Мне это удалось без особых проблем. С тех пор я уверен, что переносимость между платформами вполне можно реализовать без всяких виртуальных машин и прочей лабуды. (На нее, кстати, приходится тратить массу средств, которые могли бы быть применену с большей пользой).

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

Болски — это действительно классный справочник. Зачитанный до дыр он до сих пор хранится у меня дома.
Шилдта я, естественно, тоже читал. Какая-то информация в условиях полного дефицита литературы все же была лучше, чем ничего. Правда, я, еще работая на заводе, как-то из Москвы привез Tech Help, справочник Ralph Brown и свежий AidsTest (на 6 вирусов). Но, кроме этого, тогда не было практически ничего.
Недостаток литературы заменял отладчик (AFD).

Потом пришлось и вирусы исследовать. Правда, то, что мне попадалось, было чьими-то попытками работать с памятью и файлами в MS DOS.

На Windows мы не переходили долго. Мы не делали программных продуктов для тиражирования.Нам вполне хватало DPMI. Это было уже гораздо позже, когда у каждого из нас дома появился приличный аппарат, а на работе все еще стоял PC AT.

IBM-PC с MS-DOS были разочарованием. Система команд — ужасная и нелогичная, типа не думали особо, а просто сели и напедалили по-быстрому — именно такое впечатление у меня и сложилось, а первое впечатление, как правило, самое верное. Но в результате Intel победил! А победителей, как известно, не судят — повод задуматься о смысле жизни (мне в первую очередь)...


В MS DOS и внутри нет никакой логики. Чтобы позвать какую-нибудь функцию, надо было заполнить регистры определенными значениями. Ни мне, ни моим коллегам не удалось найти никакого намека на упорядоченность в использовании этих самых регистров.

Другим неприятным сюрпризом было то, что каждый компилятор имел свою программу типа "LINK.EXE", как правило, не совместимую по формату obj-файлов с другими компиляторами. Фактически, идея о раздельной компиляции почила в бозе уже тогда — во времена MS-DOS. Или же, вместе с .LIB надо было давать и конкретный компилятор, что и делалось (нелегально!).


Нарвался, пытаясь прикрутить к программе на Turbo C фортрановский модуль. После этого я практически полностью отошел от использования продуктов от Borland. Правда, по мелочам я до сих пор запускаю BC++ 3.1, но все реже и реже.

Несколько сумбурно получилось, не слишком связно. Но что делать, меня всю жизнь учили писать программы, а за сочинения еще в школе глаза закрывали, потому что математику знал неплохо...
Re[6]: Утренний постскриптум
От: LaptevVV Россия  
Дата: 10.01.05 07:30
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

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


MS>>>Понятно. Ну чтож, я тогда тоже поупражняюсь в графоманстве...

LVV>>Придется видимо и мне свой путь прописать — но это завтра...

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


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

ЗХ>Как на это смотрят авторы историй?
Только положительно, но тебе придется проверять конкретные цифры, если они возникнут...

ЗХ>ЗЫ: кстати, убедительная просьба к старожилам, которые еще не отметились в этом топике и при этом чувствуют в себе эпическую силу — поделитесь с человечеством занимательной автобиографией, а?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[6]: Утренний постскриптум
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 10.01.05 08:00
Оценка:
Здравствуйте, Зверёк Харьковский, Вы писали:

ЗХ>С сохранением, естественно, авторства и вообще — на ваших условиях .

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

Да Бога ради. Взамен — экземпляр книжки с автографом.
[ posted via RSDN@Home 1.1.4 beta 3 r241, accompanied by silence ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Learning to fly - LaptevVV - part1
От: LaptevVV Россия  
Дата: 10.01.05 09:09
Оценка: 70 (11)
#Имя: FAQ.Learningtofly.LaptevVV.part1
LVV>Придется видимо и мне свой путь прописать — но это завтра...

Итак начнем. Поскольку я тут видимо всех старше, истории мои начнуться на 10 лет раньше...

Я поступил на матмех Ташкентского университета в далеком 1970 году. О компьютерах не знал вообще НИЧЕГО. Даже не знал, что такое в мире есть. За полгода учебы понял, что математиком я быть не хочу. И тут мне. как обычно, повезло: в нашем универе организовался факультет прикладной математики и механики, а матмех стал матфаком. Из 120 поступивших нас туда перешло человек 40.
Короче, со второго семестра нам стали читать программирование на Минске-22. В кодах! В тетради! Мы писали программы в виде последовательности восьмеричных команд. А компьютер нам только показали — завели в машинный зал...
Я, когда зашел, понял в то же мгновение, что вот ОНО! Дело, которым я буду заниматься всю жизнь — компьютеры и программирование. Это было как вспышка, как озарение, как прозрение — называйте как хотите... И было мне тогда только 18 лет
Представьте себе довольно большой зал, заставленный шкафами самого разного вида, приборами какими-то... В некоторых шкафах крутятся какие-то колеса, мотается коричневая лента... В каком-то непонятном приборчике заправлена бумажная лента с дырочками, которая вдруг со свистом сама пролетает через него... Еще один маленький механизм вдруг включается и начинает громко тарахтеть, печатая колонки непонятных цифр... Небольшой шкафчик, в который заправлена широкая лента бумаги, тоже вдруг начинает громко стучать, выплевывая с другой стороны ту же ленту, но уже пропечатанную.
Но самое удивительное — то, что стоит в центре зала. Это центральный пульт ЭВМ, очень похожий на центральный пульт звездолета из фантастического фильма... На нем несколько рядов лампочек, которые непрерывно мигают, 3-4 ряда черно-белых клавиш, причем черный и белый цвет меняются в какой-то пока непонятной последовательности...


Прошу прощения, сейчас некогда — после обеда допишу...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[5]: Как-бы продолжение...
От: CiViLiS Россия  
Дата: 10.01.05 10:10
Оценка:
Здравствуйте, c-smile, Вы писали:

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


CS>Скомпилировав, отладив и запустив Шилдовский интерпретатор Basic'а (который не работал будучи набранным, это точно)

CS>я понял что могу писать интерпретаторы. Спасибо ему. Все остальное содержиме книги — не помню
Я вот тоже помолодости баловался написанием интерпретатора, аналога Шилдовского. Как сейчас оказалось, не мне одному пришлось его напильником затачивать .

Еще в этой книженции, если склероз мне изменил, был алгоритм Брезейнхейма.. Я тады графическую библиотеку написал на паскале, чтобы из борланда в 320х200 режиме работать. Помню она чуть ли не в 10 раз быстрее стандартных bgi'шек.
... << RSDN@Home 1.1.4 beta 3 rev. 241>>
"Бог не терпит голой сингулярности" -- Роджер Пенроуз
Learning to fly - LaptevVV - part2
От: LaptevVV Россия  
Дата: 10.01.05 11:06
Оценка: 41 (6)
#Имя: FAQ.Learningtofly.LaptevVV.part2
Здравствуйте, LaptevVV, Вы писали:

LVV>Но самое удивительное — то, что стоит в центре зала. Это центральный пульт ЭВМ, очень похожий на центральный пульт звездолета из фантастического фильма... На нем несколько рядов лампочек, которые непрерывно мигают, 3-4 ряда черно-белых клавиш, причем черный и белый цвет меняются в какой-то пока непонятной последовательности...


А слева — отдельная кнопка (хотел написать БОЛЬШАЯ, но не буду врать — не помню).
В общем, пропал я...

На втором курсе нас научили писать реальные программы. Была практика аж 4 недели, когда все уехали на хлопок. а наша группа единственная осталась в Ташкенте... Я тогда впервые реально написал и выполнил программу в кодах Минска-22. Она выводила на БПМ (быстро-печатающий механизм) любой массив памяти в восьмеричных кодах. А начальный и конечный адреса задавались с пульта — набирались на тех самых черно-белых клавишах. Программа была совершенно правильная и действительно выводила любой фразмент памяти... Я тогда впервые использовал команды сдвига влево и вправо — ДЛЯ ОЧИСТКИ ЯЧЕЙКИ...
Памяти было аж 8192 ячейки (машинное слово тогда так называлось) — байтов на советских машинах не было... А размер ячейки, насколько мне не изменяет память, был 37 разрядов (или 35 — не помню).
И система команд — двухадресная. И ввод-вывод — это на каждое устройство собственная команда со своим делением разрадов по функциям.
Потом нас научили автокоду "Инженер" (так назывался алгоритмический язык). Слова все были русские! Помниться препод пообещал поставить автомат, если программа с первого раза выполниться без ошибок... Я, естественно, стал писать программу... Надо було написать решение трансцендентного уравнения методом ньютона... Разобрал метод, написал программу... Как я ее набивал на телетайпе на перфоленте — это отдельная песня... С пятого раза мне удалось набить ее без ошибок... А поскольку программа начиналась словом "пПрограмма", с тех пор я это слово набиваю на клавиатурпе со скоростью примерно 300-400 знаков в минуту
Надо было посчитать и напечатать 100 корней. Программа начала выполняться СРАЗУ, то есть написал я ее и набил без синтаксических ошибок... Но вот посчитала она только 43 корня, а потом зациклилась... Там в методе ньютона условие надо удовлетворять, а я на втором курсе, естественно, был не спец в численных методах...
Препод, автомат, естественно не поставил... Но я без проблем получил его...
А на 4-м курсе я писал курсовую по системе ИС-2. Машина была типа М-222. Это продолжение серии М-20, М-220. Оно же БЭСМ 2, 3, 4. Система была совершенно уникальная, как и сама машина... Машина имела 4096 ячеек- слов по 45 разрядов. Команда — 3-хадресная. Регистр был ОДИН!!!! Для модификации адресов в циклах. Никаких регистров общего назначения!!!
А система ИС-2 ( я ее потом реально использовал — расскажу позднее) — это система программирования в символических адресах... То есть пишешь программу в восьмеричной системе, но ареса назначаешь — условные, а система уже подставляет реальные в зависимости от загрузки...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[6]: Утренний постскриптум
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.01.05 11:38
Оценка: +1
Здравствуйте, dmz, Вы писали:

dmz>Где был ваш OpenGL в 1994 году?


На рабочих станциях. Он появлися в 92 году.
... << RSDN@Home 1.1.4 beta 3 rev. 272>>
AVK Blog
Re[7]: Утренний постскриптум
От: Privalov  
Дата: 10.01.05 11:55
Оценка:
Здравствуйте, LaptevVV, Вы писали:

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


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


LVV>>>Придется видимо и мне свой путь прописать — но это завтра...

LVV>>Итак начнем. Поскольку я тут видимо всех старше, истории мои начнуться на 10 лет раньше...

Действительно на 10.
Надо сказать, что большинство преподавателей, когда я учился, были на 8-15 лет старше студентов.
Байт к тому времени уже существовал в современном виде. IBM оформила, если не ошибаюсь.
О ячейке памяти размером 37 бит знаю понаслышке, но из достоверного источника.

А вообще что хорошее осталось в прошлом — тогда все-таки больше времени можно было уделять, скажем так, науке. Сейчас все уперлось в коммерцию. Но это, кажется, уже другая история.
Re[4]: Как-бы продолжение...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.01.05 11:57
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>С другой стороны, современные архитектуры пока что не позволяют мапировать логически непрерывное пространство памяти на множество физических кусочков произвольного размера (а было бы круто).


Здесь не понял. То есть как это не позволяют?
... << RSDN@Home 1.1.4 beta 3 rev. 272>>
AVK Blog
Re[7]: Утренний постскриптум
От: dmz Россия  
Дата: 10.01.05 12:42
Оценка:
dmz>>Где был ваш OpenGL в 1994 году?
AVK>На рабочих станциях. Он появлися в 92 году.
В то время их видел только на Комтеке и этом, как его... Аниграфе кажется.
Re[5]: Как-бы продолжение...
От: McSeem2 США http://www.antigrain.com
Дата: 10.01.05 13:27
Оценка:
Здравствуйте, AndrewVK, Вы писали:

MS>>С другой стороны, современные архитектуры пока что не позволяют мапировать логически непрерывное пространство памяти на множество физических кусочков произвольного размера (а было бы круто).


AVK>Здесь не понял. То есть как это не позволяют?


Ключевые слова — "произвольного размера". То есть, позволяют, конечно же, но образно говоря, на уровне макрокосма (какой там размер страницы?).
На микроуровне (контейнеры и проч.) — это все-таки слишком дорого. Да, было бы конечно круто иметь такую возможность — не надо никаких реаллокаций, просто говоришь — "добавь-ка мне еще памяти". Но не факт, что это было бы лучше. Ключевой момент в автоматической сборке мусора — это именно SQUEEZE, которая четко работает за линейное время. За счет этого, куча в .Net всегда содержится в состоянии, близкому к идеальному порядку (я правильно понимаю?), в то время как defragment является NP-полной задачей — могу ошибаться, но уж точно не O(N).
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[7]: Утренний постскриптум
От: Зверёк Харьковский  
Дата: 10.01.05 13:33
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Завсегда пожалуйста.

Шпасибо!

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

Ну так... у меня, я думаю, ума хватит цифирьки проверить. Но они — не главное.
сам слушаю и вам рекомендую: в тишине сижу
FAQ — це мiй ай-кью!
Re[7]: Утренний постскриптум
От: Зверёк Харьковский  
Дата: 10.01.05 13:33
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Только положительно, но тебе придется проверять конкретные цифры, если они возникнут...

Праверим-праверим Спасибо
сам слушаю и вам рекомендую: в тишине сижу
FAQ — це мiй ай-кью!
Re[7]: Утренний постскриптум
От: Зверёк Харьковский  
Дата: 10.01.05 13:33
Оценка:
Здравствуйте, SchweinDeBurg, Вы писали:

ЗХ>>С сохранением, естественно, авторства и вообще — на ваших условиях .

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

SDB>Да Бога ради. Взамен — экземпляр книжки с автографом.


Всенепременно
сам слушаю и вам рекомендую: в тишине сижу
FAQ — це мiй ай-кью!
Re[6]: Как-бы продолжение...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.01.05 13:38
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Ключевые слова — "произвольного размера". То есть, позволяют, конечно же, но образно говоря, на уровне макрокосма (какой там размер страницы?).


4 или 8 килобайт. И я что то не слышал чтобы кто то считал его слишком большим.

MS>На микроуровне (контейнеры и проч.) — это все-таки слишком дорого.


Что дорого? А какой размер страницы нужен? 1к, 4 байта, 1 байт, 1 бит? А, главное, зачем? Современные менеджеры памяти умеют выделять сразу большой кусок под мелкие выделения и особых проблем с размером страницы нет. Более того — даже если у нас будет эффективная реализация микространиц, все равно в какой то момент у тебя машина ляжет из-за огромных размеров таблицы маппинга.
Вобще, не все технологии старых машин применимы на сегодняшних. И дело даже не в неправильном векторе развития. Например красивый и простой способ реализации окошек в текстовом режиме для графики не годится и приходится рожать очень сложные графические движки. И если когда нибудь мы вернемся к той модели, то это будет стоить навороченнейших видеоускорителей и огромных объемов набортной памяти. Вобщем не все технологии масштабируемы.

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


Ключевым я бы его называть не стал. Просто один из бенефитов GC. Ключевой момент это гарантия освобождения ненужной памяти.
В любом случае даже при современных 2Г адресного пространства проблема его фрагментации стоит перед относительно небольшим процентом приложений, а с переходом на 64 бита такой проблемы просто не станет.
... << RSDN@Home 1.1.4 beta 3 rev. 272>>
AVK Blog
Learning to fly - LaptevVV - part3
От: LaptevVV Россия  
Дата: 10.01.05 14:02
Оценка: 100 (11)
#Имя: FAQ.Learningtofly.LaptevVV.part3
Продолжим.

В 1974 году в Ташкенте проходила всесоюзная конференция по операционным системам. Приехали все тогдашние киты... Удивительно, но я совсем не помню докладов про ЕС ЭВМ... Наверное они были, но я не обратил внимание, так как в Институте Кибернентики Уз.ССР стояла БЭСМ-6, а ЕС еще не было. Вот на доклады об осях БЭСМ-6 я внимание обратил...
Тогда в Союзе было три школы по осям: В Москве, в институте прикладной математики создавали ось ИПМ на принципах максимального универсализма... Она не нашла большого распространения — время еще не пришло... А вот две других!... Одна — Ось "Дубна". Классная система, созданная в Дубне в ОИЯИ. Там в то время работала классная команда под руководством Говоруна. Они написали великолепный транслятор с Фортрана... Эти ребята исходили из своих потребностей, так и писали...
Третья система ОС ДИСПАК была создана под руководством Тюрина.. Не помню, но кажется из Челябинска (или из Свердловска — в общем, с Урала ) Эти ребята считали, что ось должна быть написана так, чтобы максимально использовать возможности аппаратуры... И это им удалось! ОС Диспак была самой распространенной осью на БЭСМ-6.
А сама машина была уникальной! Она была одноадресной, с регистром-сумматором. Длина слова — 48 разрадов. В слове помещалось 6 символов (уже 8-разрядных, но байта еще не было...), или целое или плавающее, или 2 команды по 24 разряда... А памяти помнится, было почти бесконечность — 32768 ячеек! Скорость была бешеная — миллион операций в секкунду... Регистровых. конечно... Кто не знает, для 60-х (да и для 70-х в СССР) годов это было ОЧЕНЬ МНОГО... В то время американская фирма CDC только начала выпускать CDC-6600 со скоростью порядка трех миллионов.

Пульт у нее был уж совсем похож на пульт космического корабля... Был он такой — закругленный... Если поставить крутящееся кресло — то можно снимать сцены: Капитан управляет полетом своего космического корвета. Лампочек было столько, что с помощью них высвечивалось слово "ЖДУ", если машине нечего было делать На этой машине я впервые познакомился с перфокартами.
В то время в Институте кибернетики было несколько разных компьютеров и на всех был фортран, только разный. И уже появилась ЕС 1020, но я пока на ней не работал... И вот дипломный мой проект состял в том, чтобы оттранслировать один фортран в другой... Вообще — это типичная задача тех лет. У моей шефини диссер был Алгэк-Алгол. Алгэк — это расширение Алгола, придуманное в СССР для решения экономических задач... Хотя я сейчас думаю, что содрали его просто с Виртовского Алгола-W. Но это ИМХО.
Из-за разной мощности компьютеров эти фортраны довольно здорово отличались друг от друга... Естественно, менее мощный переводился в более мощный. И делалось это на БЭСМ-6 на автоводе, как тогда называли ассемблер, БЭМШ. Колода состяла примерно из 1200 перфокарт. Это пачка высотой примерно сантиметров около 20. На одной перфокарте — одна команда... Но, формат свободный. Единственное ограничение — если нет метки, то надо было делать один пробел. А метку набивали с первой позиции. Естественно, кодировка была советская. но сейчас не скажу какая. Правда, в то время я еще не вырезал и не заклеивал дырки — это случилось позже, на ЕС ЭВМ.
Время заказывали за неделю вперед, и весь это огромный комп (8 или 16 лентопротяжек ростом примерно 2 метра, и еще масса шкафов... ) был в моем полном распоряжении! Я ставил колоду на перфоввод, он "глотал перфокарты со страшной скоростью, но все одно 1200 перфокарт — это довольно долго... Но после ввдоа последней карты мгновенно начинало печатать АЦПУ (алфавитно-цифровое печатающее устройство) — такова была скорость компа, что промежутка просто не было...
В общем я на этой дипломной работе еще и макробемш освоил — он на меня произвел неизгладимое впечатление... Вообще, мне видимо, здорово повезло, что я начинал писать программы на уровне команд машины — это здорово способствовало формированию алгоритмического мышления... Ведь любую формулу приходилось раскладывать по полочкам. и команды писать в нужном порядке, ибо компьютер о приоритетах операций ничего не знает... И это сразу как-то вправляло мозги в нужную сторону. Вот теперь думаю — а не начать ли мне ту же методику применять к студентам?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[7]: Как-бы продолжение...
От: McSeem2 США http://www.antigrain.com
Дата: 10.01.05 14:15
Оценка: :)
Здравствуйте, AndrewVK, Вы писали:

AVK>4 или 8 килобайт. И я что то не слышал чтобы кто то считал его слишком большим.


Это очень большой размер. Представь что будет, если понадобится миллион мелких независимых объектов, например, для дерева XML-DOM.

MS>>На микроуровне (контейнеры и проч.) — это все-таки слишком дорого.


AVK>Что дорого? А какой размер страницы нужен? 1к, 4 байта, 1 байт, 1 бит?


Наверное, 1 байт.

AVK>А, главное, зачем?


Можно вообразить и помечтать, что память представлет собой файловую систему, типа NTFS...

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


Ляжет. Но думаю, что это — вопрос времени. После dot-net нам предложат super-dot-net, где вместо существующей сейчас сборки мусора будет еще и дефрагментация. Шутка!

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


Можно эту мысль по-подробнее? Она весьма интересна.

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


AVK>Ключевым я бы его называть не стал. Просто один из бенефитов GC. Ключевой момент это гарантия освобождения ненужной памяти.


Именно он и является ключевым. Можно и на C++ сделать модель, гарантирующую освобождение ненужной памяти, с подсчетом ссылок, например. Но много кайфа от этого не будет, наоборот — породит серьезные скрытые проблемы, хоть с той же фрагментацией. Возможность перемещать объекты (при автоматическом отслеживании data integrity) — является фундаментальной во всей схеме управления пямятью в dot-net. И только при наличии такой возможности можно себе позволить роскошь автоматического удаления ненужных объектов. Если не делать squeeze — все очень быстро встанет раком.

AVK>В любом случае даже при современных 2Г адресного пространства проблема его фрагментации стоит перед относительно небольшим процентом приложений, а с переходом на 64 бита такой проблемы просто не станет.


Память больше не ресурс?
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[8]: Утренний постскриптум
От: McSeem2 США http://www.antigrain.com
Дата: 10.01.05 15:53
Оценка:
Кстати, шальная мысль (может и не по делу). Когда дело дойдет до издательства (или даже раньше) — может имеет смысл попробовать законтачить с Алексом Экслером? Не знаю, насколько это будет ему интересно, но думаю, что попробовать имеет смысл. Найти грамотное издательство на приемлемых условиях не так-то просто. Алекс в издательских делах человек опытный, у него, вроде как есть собственное издательство.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[9]: Утренний постскриптум
От: Зверёк Харьковский  
Дата: 10.01.05 16:11
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Кстати, шальная мысль (может и не по делу). Когда дело дойдет до издательства (или даже раньше) — может имеет смысл попробовать законтачить с Алексом Экслером? Не знаю, насколько это будет ему интересно, но думаю, что попробовать имеет смысл. Найти грамотное издательство на приемлемых условиях не так-то просто. Алекс в издательских делах человек опытный, у него, вроде как есть собственное издательство.


Кстати, дельно.
Я, в принципе, об издательстве задумываюсь; просто хочу прийти в него все же не с пустыми руками (то есть с какими-то уже готовыми кусками). По моим расчетам, ребром этот вопрос должен встать к весне.
Эту тему мы уже немножко с Валерием Викторовичем (Лаптевым) вентелировали; есть мнение, что серьезное издательство мне не доверится за малостью лет моих (а если увидят лично....)
Так что вопрос больной.
сам слушаю и вам рекомендую: в тишине сижу
FAQ — це мiй ай-кью!
Re[7]: Утренний постскриптум
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.01.05 17:15
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Вот теперь думаю — а не начать ли мне ту же методику применять к студентам?


ИМХО не стоит. Все эти знания о ассемблерах PDP-11, Z-80, 8080, x86, системах команд VLIW и прочая на практике почти невостребованны. Птица (ПТЦА) пожалуй даже полезнее будет.
... << RSDN@Home 1.1.4 beta 3 rev. 272>>
AVK Blog
Re[8]: Как-бы продолжение...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.01.05 17:15
Оценка: 180 (15)
Здравствуйте, McSeem2, Вы писали:

AVK>>4 или 8 килобайт. И я что то не слышал чтобы кто то считал его слишком большим.


MS>Это очень большой размер. Представь что будет, если понадобится миллион мелких независимых объектов, например, для дерева XML-DOM.


Я уже сказал — эту проблему давно научились решать весьма эффективно.

AVK>>А, главное, зачем?


MS>Можно вообразить и помечтать, что память представлет собой файловую систему, типа NTFS...


А в файловой системе точно так же пространство организовано ввиде страниц ака кластеров. В том числе и в NTFS.

MS>Ляжет. Но думаю, что это — вопрос времени.


Вряд ли. Сколько помню — память всегда была узким местом вычислительных систем.

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


MS>Можно эту мысль по-подробнее? Она весьма интересна.


Да я вроде подробно объяснил. Хорошо, попробую иначе. Пусть у нас была некая система Х с вычислительной можностью 1 попугай, объемом памяти 1 удав, объемом диска 1 слон и размером фреймбуфера 4х3 мартышки. На нем присутствует некий софт со своими проектными решениями. Проходит время и у нас появляется система Y с вычислительной мощностью 10000 попугаев, объемом памяти 1000 удавов, объемом диска 10000 слонов и размером фреймбуфера 400х300 горилл.
Так вот — если мы попытаемся тупо перенести проектные решения, то результат будет печален. Дело в том что не все системы улучшились в одинаковое количество раз. И если на системе Х у нас все было более менее сбалансированно, то на новой процессор практически ненагружен, дискового пространства море, зато память вся забита и с графикой жуткие тормоза. Но это еще не все — потребности в отдельных ресурсах тоже растут неравномерно. В итоге имеем как правило упершуюся в какой то один ресурс систему. Выход один — менять проектные решения на более равномерно загружающие систему.
Перейдем от гипотетических рассуждений к конкретным примерам. Возьмем опять же те же окошки. При работе оконных систем основная проблема это отработка взаимно пересекающихся слоев. В текстовых режимах отсечение примитивно донельзя, а с отрисовкой все просто — запоминаем содержимое окна в массиве и когда нужно строим в фреймбуфере изображение. Но как только с текстового режима мы уходим на графику все становится намного сложнее. Отсечение уже требует отработки не только текста, но и различной геометрии. Содержимое всех окон в память не загонишь — памяти не хватит. А если вспомнить непрямоугольные окна, альфа-канал и т.д. то все становится еще интереснее.
Теперь еще ближе к практике. Возьмем JIT и GC. Применение подобных технологий на старых системах неоправдано, поскольку с процессором на них все очень печально и для обеспечения нормальной скорости реакции в интерактивном режиме приходилось потеть по полной — выдавливать из процесора все соки ценой ненадежности, неуправляемости, плохой масштабируемости, плохой переносимости кода. Те, кто давно компами занимается наверное помнит что незапускающаяся из-за каких то несовместимостей программа была вполне обычным явлением. Но с пересечением процессорами некоторой черты (где то 300-500МГц) они перестали быть узким местом. Для современных настольных систем производительность процессора на многих задачах сверхизбыточна. И даже если мы напишем софт по старинке — с морем оптимизаций и хардкода, ничерта это не даст в потребительском плане. Вот JIT и GC как раз и утилизируют эту лишнюю процессорную мощность.
Совсем свежий пример — современные десктопы оказались оснащены мощными графическими ускорителями, которые нигде кроме игрушек не используются (миф о 3D-визуализации бизнес-данных на офисных компах и 3D-интернете лопнул как мыльный пузырь). Оказалось тем не менее что благодаря сверхмощным сопроцесорам и огромным объемам набортной памяти можно вернутся к старой модели безоконных приложений, возложив проблемы работы с окнами на графический ускоритель. А заодно практически бесплатно приобретя возможность 3D выпендрежа вроде плавающих, извивающихся, вращающихся, переливающихся окон, motion blur и прочей муры. И вот мы уже видим Aqua на маках, а в перспективе Aero на PC.
Поэтому когда начинают разговоры о том что раньше воздух был чище, а трава зеленее, то чаще всего это означает одно — старые ориентиры устарели, а новых тот кто сокрушается не видит.
Лично я совсем не жалею что не надо ковырять регистры видеоадаптера, писать куски на ассемблере, изучать малоисследованные фишки, обходится без 21 прерывания, поскольку оно тормозное и т.п. Нет, конечно когда в свое время я написал оконную библиотеку, работающую в режиме 90х25 символов без дублирующего 9 бита, благодаря чему графический мышиный курсор был честным, без волнышек, то это было круто. Но заниматься этим на современных компах, когда функциональная сложность фофанного януса выше чем сложности многих тогдашних больших коммерческих систем? Выглядит как неумная забава.
Еще один момент — этот процесс практически непрерывен, пока непрерывно увеличение мощностей компьютерных железок. Неделю назад забыли про прямое программирование котроллеров, позавчера про прерывания, вчера про ассемблер, сегодня про рукописную графику, звук, завтра забудем про управление ресурсами, сетевые протоколы. А взамен получаем GC, JIT, интеллектуальные ФС, паттерны, широкое использование метапрограммирования, Software Factories, громадные стандартные библиотеки, слоднейшие IDE и много другого. Хорошо это или плохо не знаю. С одной стороны обидно что то, что ты вчера делал огромными усилиями, сегодня может любой студент. С другой стороны стоять на месте смерти подобно. Вобщем каждый решает для себя, что ему делать — бурчать по поводу нынешних нравов и всеми силами противодействовать новому или, скрипя зубами, начинать все по новой.

AVK>>Ключевым я бы его называть не стал. Просто один из бенефитов GC. Ключевой момент это гарантия освобождения ненужной памяти.


MS>Именно он и является ключевым. Можно и на C++ сделать модель, гарантирующую освобождение ненужной памяти,


Нельзя. Не существует способа запретить на С++ прямую работу с указателями.

MS> с подсчетом ссылок, например.


А с подсчетом ссылок например вобще нельзя. Проблема циклических графов хорошо известна.

MS> Но много кайфа от этого не будет, наоборот — породит серьезные скрытые проблемы, хоть с той же фрагментацией.


Ты часто на практике сталкивался с проблемами фрагментации адресного пространства?

MS> Возможность перемещать объекты (при автоматическом отслеживании data integrity) — является фундаментальной во всей схеме управления пямятью в dot-net.


Там много подобных фишек. GC решает значительно больше задач, нежели дефрагментация кучи.


AVK>>В любом случае даже при современных 2Г адресного пространства проблема его фрагментации стоит перед относительно небольшим процентом приложений, а с переходом на 64 бита такой проблемы просто не станет.


MS>Память больше не ресурс?


В данном случае не память не ресурс, а адресное пространство не ресурс. Согласись, это не одно и то же.
... << RSDN@Home 1.1.4 beta 3 rev. 272>>
AVK Blog
Re[8]: Утренний постскриптум
От: LaptevVV Россия  
Дата: 10.01.05 17:27
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


LVV>>Вот теперь думаю — а не начать ли мне ту же методику применять к студентам?


AVK>ИМХО не стоит. Все эти знания о ассемблерах PDP-11, Z-80, 8080, x86, системах команд VLIW и прочая на практике почти невостребованны. Птица (ПТЦА) пожалуй даже полезнее будет.

Не, имеется ввиду — ассемблерные вставки в С++ — формулы всякие вычислять...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[9]: Утренний постскриптум
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.01.05 17:52
Оценка:
Здравствуйте, LaptevVV, Вы писали:

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


Ну и кому оно нынче надо?
... << RSDN@Home 1.1.4 beta 3 rev. 274>>
AVK Blog
Re[5]: Как-бы продолжение...
От: prVovik Россия  
Дата: 10.01.05 17:59
Оценка:
Здравствуйте, Privalov, Вы писали:

P>Первое что я сделал — перевел на PC набор программ, работавших до этого на ЕС 1036. Мне это удалось без особых проблем. С тех пор я уверен, что переносимость между платформами вполне можно реализовать без всяких виртуальных машин и прочей лабуды.


Зато, реализовать ВМ гораздо проще, чем компилятор.
... << RSDN@Home 1.1.4 @@subversion >>
лэт ми спик фром май харт
Re[8]: Утренний постскриптум
От: McSeem2 США http://www.antigrain.com
Дата: 10.01.05 18:08
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>ИМХО не стоит. Все эти знания о ассемблерах PDP-11, Z-80, 8080, x86, системах команд VLIW и прочая на практике почти невостребованны. Птица (ПТЦА) пожалуй даже полезнее будет.


Тут дело не только в ассемблере. На мой консервативный взгляд, обязательно надо посвящять прежде всего в фундаментальные понятия, как то — дополнительный код, адресация, плавающая точка, последовательность операций. Конкретный ассемблер здесь ни при чем — можно взять, к примеру MSIL или любой другой псевдокод. Но обязательно надо дать почувствовать, что происходит на уровне ниже. Без этого — получаются недоучки, которые лихо шпарят формы мышью, но удивляются, когда при перемножении двух целых положительных чисел получается отрицательное значение (компьютер сломался!!!). Для финансовых расчетов — почему нельзя использовать плавающую точку для хранения сумм денег и т.д. Короче говоря, надо обязательно прорабатывать теорию. Например, один мой приятель с прикладной математики ННГУ (Нижний Новгород) чуть ли не целый семестр гоняет народ по базовым структурам данных — именно таким, как числа с плавающей точкой (кстати, на Фортране). У него студенты проходят "первичную обработку", закладку фундамента. Далее уже идут конкретные языки и прикладные направления (если Вове Савину не сдал, дальше тебе в программировании делать нечего).

Мне было гораздо проще, поскольку я имел представление о схемотехнике и о том, что же происходит на уровне ниже ассемблера. Не уверен, что надо уходить в такие дебри, но то, что эти знания были для меня полезными — это неоспоримый факт. Другое дело — надо быть реалистом и соотношениие стоимость/качество вряд-ли будет оптимальным, если начинать с электроники и схемотехники.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[9]: Утренний постскриптум
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.01.05 18:27
Оценка: 2 (2) +1
Здравствуйте, McSeem2, Вы писали:

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


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

MS> Конкретный ассемблер здесь ни при чем — можно взять, к примеру MSIL или любой другой псевдокод. Но обязательно надо дать почувствовать, что происходит на уровне ниже. Без этого — получаются недоучки, которые лихо шпарят формы мышью, но удивляются, когда при перемножении двух целых положительных чисел получается отрицательное значение (компьютер сломался!!!).


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

MS> Для финансовых расчетов — почему нельзя использовать плавающую точку для хранения сумм денег и т.д.


А при чем тут ассемблер? Предмет называется алгоритмы и структуры данных и преподается в профильных вузах довольно давно и на 1-2 курсе.

MS> Короче говоря, надо обязательно прорабатывать теорию.


А при чем тут ассемблер? Тем более что в IL, который ты упомянул, ничего про форматы плавучки ты не узнаешь, поскольку это примитивные для него типы данных.

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


Для меня они тоже были полезны. Тогда. А сейчас практически бесполезны.
... << RSDN@Home 1.1.4 beta 3 rev. 274>>
AVK Blog
Re[9]: Утренний постскриптум
От: prVovik Россия  
Дата: 10.01.05 19:09
Оценка: :))
Здравствуйте, McSeem2, Вы писали:

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


А еще можно начать с квантовой физики
... << RSDN@Home 1.1.4 @@subversion >>
лэт ми спик фром май харт
Re[9]: Как-бы продолжение...
От: McSeem2 США http://www.antigrain.com
Дата: 10.01.05 19:54
Оценка:
Спсибо, Андрей! Извиняюсь, что своим провокационным вопросом отнял столько времени, но это было сказано хорошо!

AVK>А в файловой системе точно так же пространство организовано ввиде страниц ака кластеров. В том числе и в NTFS.


Воот. О том и речь. Создай миллион файлов размером 1 байт. Сколько места понадобится? Но у нас, как правило, нет потребности в миллионе файлов по 1 байту, а вот потребность в миллионе объектов в памяти — есть. И чтобы каждый объект имел возможность расширяться без реаллокаций. Эх, мечты...

AVK>Да я вроде подробно объяснил.

[...skipped...]

AVK>Для современных настольных систем производительность процессора на многих задачах сверхизбыточна. И даже если мы напишем софт по старинке — с морем оптимизаций и хардкода, ничерта это не даст в потребительском плане. Вот JIT и GC как раз и утилизируют эту лишнюю процессорную мощность.


Эвона как!!! Процессоры так обнаглели, что бедным программистам из Microsoft приходится из кожи лезть вон, чтобы загрузить всю эту бездонную прорву (вспомнился анекдот про мужика — "не знаю что там, но как оно сыр любит...").

AVK>Совсем свежий пример — современные десктопы оказались оснащены мощными графическими ускорителями, которые нигде кроме игрушек не используются (миф о 3D-визуализации бизнес-данных на офисных компах и 3D-интернете лопнул как мыльный пузырь). Оказалось тем не менее что благодаря сверхмощным сопроцесорам и огромным объемам набортной памяти можно вернутся к старой модели безоконных приложений, возложив проблемы работы с окнами на графический ускоритель. А заодно практически бесплатно приобретя возможность 3D выпендрежа вроде плавающих, извивающихся, вращающихся, переливающихся окон, motion blur и прочей муры. И вот мы уже видим Aqua на маках, а в перспективе Aero на PC.


Это отдельная песня, о которой я тоже имею некоторое представление. Может быть напишу как-нибудь — душа-то просит

AVK>Лично я совсем не жалею что не надо ковырять регистры видеоадаптера, писать куски на ассемблере, изучать малоисследованные фишки, обходится без 21 прерывания, поскольку оно тормозное и т.п. Нет, конечно когда в свое время я написал оконную библиотеку, работающую в режиме 90х25 символов без дублирующего 9 бита, благодаря чему графический мышиный курсор был честным, без волнышек, то это было круто.


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

AVK>Но заниматься этим на современных компах, когда функциональная сложность фофанного януса выше чем сложности многих тогдашних больших коммерческих систем? Выглядит как неумная забава.


Согласен. Но кто все это обеспечивает?

AVK>Еще один момент — этот процесс практически непрерывен, пока непрерывно увеличение мощностей компьютерных железок. Неделю назад забыли про прямое программирование котроллеров, позавчера про прерывания, вчера про ассемблер, сегодня про рукописную графику, звук, завтра забудем про управление ресурсами, сетевые протоколы. А взамен получаем GC, JIT, интеллектуальные ФС, паттерны, широкое использование метапрограммирования, Software Factories, громадные стандартные библиотеки, слоднейшие IDE и много другого.


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


AVK>Хорошо это или плохо не знаю.


Как сказал LLeo в своем "овощном дозоре" — "Это не хорошо и не плохо. Это — удобрение"...
...Что-то меня сегодня прёт, как удава по стекловате. Вроде ничего подозрительного не курил...

AVK>С одной стороны обидно что то, что ты вчера делал огромными усилиями, сегодня может любой студент. С другой стороны стоять на месте смерти подобно. Вобщем каждый решает для себя, что ему делать — бурчать по поводу нынешних нравов и всеми силами противодействовать новому или, скрипя зубами, начинать все по новой.


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


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

MS>>Именно он и является ключевым. Можно и на C++ сделать модель, гарантирующую освобождение ненужной памяти,


AVK>Нельзя. Не существует способа запретить на С++ прямую работу с указателями.


Об том и речь! Прямая работа с указателями по большому счету не мешает автоматическому удалению. А вот чему она точно мешает — так это сохранению целостности данных при перемещении объектов в памяти.

В конце концов — GC не решает проблему утечки памяти! Vlad2 это прекрасно продемонстрировал в Янусе (когда забывал отписываться от событий). GC лишь автоматизирует этот процесс. А вот что действительно ценно — так это постоянное поддержание кучи в порядке. По этой, кстати причине, дот-нетовская аллокация работает в среднем быстрее, чем в C++. И это, соратники, наполняет нас невыразимым блаженством...
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[10]: Утренний постскриптум
От: McSeem2 США http://www.antigrain.com
Дата: 10.01.05 20:00
Оценка:
Здравствуйте, prVovik, Вы писали:

V>А еще можно начать с квантовой физики


Неплохая мысль! Особенно в свете модной науки о квантовых компьютерах и кубитах (надо ввести новый термин, из Кин-Дза-Дзы, КюБайт).
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[10]: Утренний постскриптум
От: McSeem2 США http://www.antigrain.com
Дата: 10.01.05 20:06
Оценка:
MS>> Короче говоря, надо обязательно прорабатывать теорию.

AVK>А при чем тут ассемблер? Тем более что в IL, который ты упомянул, ничего про форматы плавучки ты не узнаешь, поскольку это примитивные для него типы данных.


Наверное, ты прав. Ассемблер хорош лишь тем, что позволяет заглянуть под капот и наглядно увидеть, как двигаются поршни и клапаны, когда чего вспыхивает и толкает... Не уверен, что это так уж нужно современному водителю "моторова возидла"... Но еще раз повторю свою мысль — кто-то же должен придумывать новые клапана! Или оно само?
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[6]: Утренний постскриптум
От: DJ KARIES Россия  
Дата: 10.01.05 20:43
Оценка:
Здравствуйте, dmz, Вы писали:

DK>>Надо юзать OpenGL и усё будет просто

DK>>См. glfw: http://glfw.sourceforge.net
dmz>Где был ваш OpenGL в 1994 году?
Там же, где DirectX с его предшественником, даже ближе

DK>>А с этими 0x13 люди такой бурды понаписали. Мало кто додумывался сделать антифлик и WaitForBlank.

dmz>Все кто делал — игрушки — додумывались, не беспокойтесь.
Не все...

dmz>Я не знаю, что вы именно имеете ввиду под

dmz>WaitForBlank,
Отсутствие рваности изображения и фликер, если плохая буферизация.

dmz>но что бы подождать обратного хода надо было повесить обработчик на прерывание.

Я в курсе.

dmz>То есть одним вызовом функции было не отделаться, это совершенно точно.

Ну оно то и понятно. Но, нам, зелени, не понять дедов, молившихся на прерывания...

dmz>А насчет бурды — вы напишите игрушку, равную по playability StarControl II. Потом говорите за бурду.

Вот, начинаем уже меряться длиной...

dmz>Ну да, там не 0x13, там был x-mode, но разница небольшая.

Понаделали, понимаешь, этих ХЭ-модей, ни с чем не совместимых...
Вспомнить только тогдашних разработчиков.
Запускаешь сейчас игру конца 80х — начала 90х, и игра, тебя за дурака считает, спрашивает, на каком порту у тебя аудиокарточка сидит, сколько памяти на ней, спрашивает прерывания видюшки, марку чипсета...
Ну, блин, долболомы же были...
Ну неужели нельзя у карточки у самой спросить, на каком она прерывании сидит и какие фичи поддерживает?

dmz>А совершенно гениальная по графике Another World — 640x480x16, но как это выглядело...

Да...
И сахар, говорите, слаще был, и водка крепчее...
... << http://dkdens.narod.ru :: http://retroforth.org >>
Re[10]: Как-бы продолжение...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.01.05 20:43
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Воот. О том и речь. Создай миллион файлов размером 1 байт.


А зачем? Для хранения миллиона записей размером 1 байт надо использовать БД, а не отдельные файлы.

MS> Сколько места понадобится? Но у нас, как правило, нет потребности в миллионе файлов по 1 байту, а вот потребность в миллионе объектов в памяти — есть. И чтобы каждый объект имел возможность расширяться без реаллокаций.


И тем не менее уже сейчас проблема мелких объектов решена. Точно так же как решена она в современных SQL серверах.

MS>Я до сих пор не могу толком сформулировать одну свою мысль, хотя суть ее кажется простой. Для примера — в текстовом режиме нафиг не уперся графический курсор.


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

AVK>>Но заниматься этим на современных компах, когда функциональная сложность фофанного януса выше чем сложности многих тогдашних больших коммерческих систем? Выглядит как неумная забава.


MS>Согласен. Но кто все это обеспечивает?


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

MS>О как! Прямо-таки апокалипсис! Но кто-то же должен программировать те самые контроллеры и изобретать GC и JIT?! Или оно само?


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

MS> Теоретически, я не исключаю и такого варианта, что само...

MS>Навеяло диалог из Пелевина, Поколение "П"

Не люблю Пелевина.

MS>>>Именно он и является ключевым. Можно и на C++ сделать модель, гарантирующую освобождение ненужной памяти,


AVK>>Нельзя. Не существует способа запретить на С++ прямую работу с указателями.


MS>Об том и речь! Прямая работа с указателями по большому счету не мешает автоматическому удалению.


Я специально употребляю слово "гарантированное".

MS> А вот чему она точно мешает — так это сохранению целостности данных при перемещении объектов в памяти.


Главное, чему она мешает — отсутствию гарантии.
... << RSDN@Home 1.1.4 beta 3 rev. 274>>
AVK Blog
Re[5]: Утренний постскриптум
От: DJ KARIES Россия  
Дата: 10.01.05 20:43
Оценка:
Здравствуйте, DJ KARIES, Вы писали:

DK>А с этими 0x13 люди такой бурды понаписали. Мало кто додумывался сделать антифлик и WaitForBlank.

DK>Да и 320x200x8BPPx60Hz, мягко говоря, сейчас отстой.
Но как иногда приятно созерцать красивую картинку в разрешении 320x240x8...
Ностальгия...
Хотя у меня общение с PC-компом (AMD_K6-2 450Mhz, 32Mb) началось летом 2000-го...
И прогал я первые недели на бейсиковском скрипте Corel7.
Безо всяких инетов и книжек.
... << http://dkdens.narod.ru :: http://retroforth.org >>
Re[11]: Утренний постскриптум
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 10.01.05 20:50
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Наверное, ты прав. Ассемблер хорош лишь тем, что позволяет заглянуть под капот и наглядно увидеть, как двигаются поршни и клапаны, когда чего вспыхивает и толкает...


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

MS> Не уверен, что это так уж нужно современному водителю "моторова возидла"... Но еще раз повторю свою мысль — кто-то же должен придумывать новые клапана! Или оно само?


А те кто придумывают их и так прекрасно знают что им нужно изучать без наших с тобой советов. И они это делают, причем целенаправленно, а не для общего интереса.
... << RSDN@Home 1.1.4 beta 3 rev. 274>>
AVK Blog
Re[11]: Как-бы продолжение...
От: McSeem2 США http://www.antigrain.com
Дата: 10.01.05 21:09
Оценка:
MS>>Согласен. Но кто все это обеспечивает?

AVK>Целая масса технологий — удобная IDE, большая поддержка со стороны рантайма, мощная стандартная библиотека, и много много других вещей. То, что некоторые считают извратом и искусственным усложнением программы.


Слова "кто" и "что" в русском языке похожи, но все-таки несут разный смысл. Хоть ты и не любишь Пелевина, но ответил точно в его стиле. Дзен!

Андрей, думаю, что я понял твою точку зрения и это мне тоже в чем-то помогло.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[12]: Утренний постскриптум
От: McSeem2 США http://www.antigrain.com
Дата: 10.01.05 22:23
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


И я тоже делаю "не для общего интереса". Но кто из нового поколения будет придумывать новые JIT'ы, если не будет курсов по ассемблеру и C++? Как такие специалисты будут возникать? Сами собой, как плесень? В общем-то возможно...
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[11]: Утренний постскриптум
От: prVovik Россия  
Дата: 11.01.05 00:20
Оценка: :))) :))
Здравствуйте, McSeem2, Вы писали:

MS>Неплохая мысль! Особенно в свете модной науки о квантовых компьютерах и кубитах (надо ввести новый термин, из Кин-Дза-Дзы, КюБайт).


Представляю: сидит программист, колбасит какрй-нибудь javascript, и мысленно представляет, как его программа вызывает срабатывание p-n переходов на своем компьютере, как движутся электроны в соответствии с их корпускулярно-волновой двойственностью... А программа что-то не работает. Программер открывает справочник по физике, читает его, чиатет... И тут на него находит прозрение: "А-а-а-а-а! Тупица! Я же не учел соотношение неопределенностей Гейзенберга!" Быстро исправляет ошибку в программе (забыл переменную проинициализировать) и в мыслях благодарит своего преподавателя по физике...

P.S.: это у меня просто настроение веселое, а так я согласен, что каждый программист обязан хотя бы примерно знать устройство компьютера, а также не задумываясь отвечать, на вопрос "Кто такой Фон Нейман?"
... << RSDN@Home 1.1.4 @@subversion >>
лэт ми спик фром май харт
Re[7]: Утренний постскриптум
От: Шахтер Интернет  
Дата: 11.01.05 01:30
Оценка:
Здравствуйте, LaptevVV, Вы писали:

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


Хорошо бы. PDP-11/70 -- идеальная машина дла тренировки настоящих хакеров. Но начинать следует с элементарного введения в схемотехнику.
... << RSDN@Home 1.1.0 stable >>
В XXI век с CCore.
Копай Нео, копай -- летать научишься. © Matrix. Парадоксы
Re[9]: Утренний постскриптум
От: LaptevVV Россия  
Дата: 11.01.05 06:33
Оценка:
Здравствуйте, McSeem2, Вы писали:

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


AVK>>ИМХО не стоит. Все эти знания о ассемблерах PDP-11, Z-80, 8080, x86, системах команд VLIW и прочая на практике почти невостребованны. Птица (ПТЦА) пожалуй даже полезнее будет.


MS>Тут дело не только в ассемблере. На мой консервативный взгляд, обязательно надо посвящять прежде всего в фундаментальные понятия, как то — дополнительный код, адресация, плавающая точка, последовательность операций. Конкретный ассемблер здесь ни при чем — можно взять, к примеру MSIL или любой другой псевдокод.

Да, все это у нас есть в курсе Организация ЭВМ и систем. Но по учебному плану — на втором курсе — после языков высокого уровня... Вот я и думаю — а не переставить ли мне порядок дисциплин...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Learning to fly - LaptevVV - part4
От: LaptevVV Россия  
Дата: 11.01.05 07:56
Оценка: 45 (10)
#Имя: FAQ.Learningtofly.LaptevVV.part4
Здравствуйте, LaptevVV, Вы писали:

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


Программированию на других языках нас учили прямо скажем, в основном теоретически... Хотя мы изучали Фортран — тогда еще фортран 4, PL-1 — была тогда замечательная книга Лепина-Дмитрюкова. А еще Олюнин-Фролов. Даже Кобол, помнится, сдавали... Он мне потом сильно пригодился...
Алгол у нас тоже был. Но самое неизгладимое впечатление на меня произвел Алгол-68. Естественно, в 74-м году в Узбекистане трансляторов не было Только что в издательстве Мир вышла книжка "Неформальное введение в Алгол-68". Наш препод — зав кафедрой — по специальности механик-упругист — вел семинары. Кадому дали тему и нужно было сделать доклад — написав свои примеры... Помнится, я сначала нифига не понял... Но в какой-то момент вдруг опять пришло озарение — я вдруг сразу увидел необыкновенную красоту и стройность этого языка... С этого момента я мог объяснить (и написать!) любую программу на Алголе-68 прям сразу — не нужно было заглядывать в книжку. Особое впечатление произвело то, что можно было в программе определять совсем НОВЫЕ операции, задавая даже новое сочетание символов. Именно это свойство потребовало от ВанВейнГардена изобрести двухуровневые грамматики — надо же было еще и строгую типизацию соблюсти. И еще очень стройная система ввода-вывода — прообраз потоков. В общем, на уровне монстра PL/1 это выглядело потрясающе!!!!
PL/1 — это как тогда модно было говорит — язык-оболочка, вобравший в себя все, что можно было собрать из Фортрана, Кобола и алгола. Да еще и оператор ON был очень интересен — прообраз исключений, который позволял писать событийно управляемые программы. А система типов — это кошмар!!!! Там работали неявные преобразования, поэтому иногда ТАКОЕ получалось! Программист писал программу, вооружившись пониманием, что он — "сапер на минном поле". Динамическая память — тоже была. А уж система ввода-вывода — это надо было видеть! Все средства оси были непосредственно встроены в язык — собственно, поэтому он и не нашел такого распространения на других платформах.
В противоположность этому алгол-68 производил впечатление удивительно красивого кристалла, в котором каждая грань на месте, и ничего ни убавить, ни прибавить — невозможно! Нарушается удивительная стройность, присущая этому языку...
В 1975 году я окончил универ и 11 сентября поступил на работу в Институт Кибернетики. На 110 рублей оклада Но проработал я там недолго — всего год, и мне удалось (а я был молодым специалистом и ОБЯЗАН был отработать 3 года ПО РАСПРЕДЕЛЕНИЮ!) свалить в геологический институт, где работа была интересная и платили побольше. Там как раз я и вплотную на практике познакомился с серией M20 — модель М-222. Задача была такая: на магнитной ленте была оцифрованная фотография земной поверхности, полученная со спутника... Одна точка — один символ. Яркость, естественно задавалась кодом от 0 до 255. И я должен был эту ленту читать и выводить на АЦПУ любой фрагмент. Причем, точки разной яркости, естественно, должны были выводится разными символами. Темные — буквой Ж или Ш, а светлые — точкой (.) или там точкой с запятой... Символов, естественно, было меньше. чем 255 — приходилось яркость масштабировать... Так что разные портреты, которые тогда модно было печатать на компьютере (Христос, Бриджит Бордо, Монна Лиза и множество других) — это детские игрушки по сравнению с реальной задачей.
Писал я как раз в системе ИС-2, и здорово ее тогда освоил. Она на меня произвела очень хорошее впечатление — пишешь алгоритм в кодах, не задумываясь о реальном распределении адресов, назначая по ходу дела условные. А система сама при загрузке заботится о реальном распеделении памяти. Памяти было много — 8192 ячейки по 45 разрядов. Сюда помещалось все — ис ситема ИС-2, и моя программа.
Я добился результата — программа печатала любой фрагмент оцифрованной фотографии, перематывая ленту к нужному байту (хотя тогда это были еще не байты ) Но результат, естественно, надо было доводить с точки зрения изображения. И потом предполагалось навеситть элементы ИИ — распознавание разломов коры. например — в таких местах залегают полезные ископаемые... Но не сложилось... Пошел я работать на кабельный завод в отдел АСУ — но об этом позже...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[9]: Утренний постскриптум
От: CiViLiS Россия  
Дата: 11.01.05 09:03
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>говоря, надо обязательно прорабатывать теорию. Например, один мой приятель с прикладной математики ННГУ (Нижний Новгород) чуть ли не целый семестр гоняет народ по базовым структурам данных — именно таким, как числа с плавающей точкой (кстати, на Фортране). У него студенты проходят "первичную обработку", закладку фундамента. Далее уже идут конкретные языки и прикладные направления (если Вове Савину не сдал, дальше тебе в программировании делать нечего).

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

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

А нам в школе про "цифровую логику" рассказывали -- на уроках информатики схемы всякие рисовали по таблице истинности. Тока кроме меня, ну может быть еще пары человек, их никто не понимал. А на хрена? Всем поиграть бы... А мне это было интересно, потому что читал журнал "радио", да и сам паял всякие ненужные штукенции. До сих пор под диваном лежит куча этого добра -- выбросить жалко...
... << RSDN@Home 1.1.4 beta 3 rev. 241>>
"Бог не терпит голой сингулярности" -- Роджер Пенроуз
Re[13]: Утренний постскриптум
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 11.01.05 09:35
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>И я тоже делаю "не для общего интереса". Но кто из нового поколения будет придумывать новые JIT'ы, если не будет курсов по ассемблеру и C++?


Попробую еще раз пояснить свою мысль. Наличие некоего предмета в обязательной программе не есть обязательное требование для его использования в профессиональной деятельности. К примеру вряд ли где есть специальный предмет, посавященный архитектуре видеочипов, однако их разрабатывают. Вобще, с точки зрения обучения все знания делятся на общие и специальные. Общие важно знать каждому, специальные только тем, кому это надо в его деятельности. Так вот — ассемблер давно скатился в нишу знаний специальных. Нужно человеку писать кодогенераторы в нативный код — он изучит нативный ассемблер. Понадобится работа с IL в дотнете — изучит IL. Но если не понадобится, то он спокойно обойдется без этих знаний.
... << RSDN@Home 1.1.4 beta 3 rev. 274>>
AVK Blog
Re[8]: Утренний постскриптум
От: Mamut Швеция http://dmitriid.com
Дата: 11.01.05 10:53
Оценка:
[]

А можно ма-а-аленькую просьбу

Можно последующие части называть "Часть-1", "Часть-2" и т.д., а то я их нахожу с трудом — в основном, по большому количеству проставленных оценок
... << RSDN@Home 1.1.4 beta 3 rev. 241>> ... <<Winamp is playing "Что играет? Где играет? Где ВинАмп, я вас спрашиваю?">> ...


dmitriid.comGitHubLinkedIn
Re[9]: Утренний постскриптум
От: LaptevVV Россия  
Дата: 11.01.05 11:56
Оценка:
Здравствуйте, Mamut, Вы писали:

M>[]


M>А можно ма-а-аленькую просьбу


M>Можно последующие части называть "Часть-1", "Часть-2" и т.д., а то я их нахожу с трудом — в основном, по большому количеству проставленных оценок

Хорошо. Вечером продолжу — это будет уже часть 4?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[10]: Утренний постскриптум
От: Mamut Швеция http://dmitriid.com
Дата: 11.01.05 12:04
Оценка:
Здравствуйте, LaptevVV, Вы писали:

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


M>>[]


M>>А можно ма-а-аленькую просьбу


M>>Можно последующие части называть "Часть-1", "Часть-2" и т.д., а то я их нахожу с трудом — в основном, по большому количеству проставленных оценок

LVV>Хорошо. Вечером продолжу — это будет уже часть 4?

Точно, четвертая:

Часть Первая
Автор: LaptevVV
Дата: 10.01.05

Часть Вторая
Автор: LaptevVV
Дата: 10.01.05

Часть Третья
Автор: LaptevVV
Дата: 11.01.05
... << RSDN@Home 1.1.4 beta 3 rev. 241>> ... <<Winamp is playing "Kenji Kawai — 07 Kugutsuuta aratayo ni kamutsudo hite">> ...


dmitriid.comGitHubLinkedIn
Learning to fly - LaptevVV - part5
От: LaptevVV Россия  
Дата: 11.01.05 16:20
Оценка: 33 (10)
#Имя: FAQ.Learningtofly.LaptevVV.part5
Здравствуйте, Mamut, Вы писали:

M>Точно, четвертая:


M>Часть Первая
Автор: LaptevVV
Дата: 10.01.05

M>Часть Вторая
Автор: LaptevVV
Дата: 10.01.05

M>Часть Третья
Автор: LaptevVV
Дата: 11.01.05

Итак продолжаем...
Пошел я работать на Кабельный завод в отдел АСУ. Начальником отдела был один из выпускников нашего же универа — я его встречал там. Интересно, что тогда тоже было. как сейчас: я в первый же день писал программу — что-то вроде тестового задания. На Коболе-32! Был такой компьютер Минск-32 — продолжение серии Минск. Год это уже был 77, и на ассемблере в АСУ, конечно никто не писал (хотя я ради интереса потом попробовал — нормально!). Вполне был уже хороший комп, с консолью оператора — это была пишмаш Консул И ося имелась — до 4 программ одновременно можно было запускать... С перфокарт, естественно... Лентопротяжки были уже вполне ЕСовские и их было 4-8 штук. Были даже диски!!!!!
А задачи писали на Коболе-32 — была такая русскоязычная версия кобола. Программа состояла из секций: секция данных, секция действий (она по-другому называлась — я не помню сейчас). В секциях были параграфы. Можно было выполнить любой параграф как подпрограмму. Кобол отличался многословием... Ориентирован он был, конечно, на обработку больших массивов данных, и операторы там были заточены на это... Например, был такой оператор сортировать ... со сменой катушек... Имелось ввиду катушки на лентопротяжке.
И вот я сел писать программу на этом коболе... Хорошо, что я с ним был знаком — в универе знакомились! Короче, я написал ее за один день — на бумаге, естественно... Но когда я в конце рабочего дня принес ее и показал начальнику — он чуть со стула не упал! Ты, говорит, писал раньше? Нет, первый раз... Ну, говорит, много я видел программистов, но чтоб вот так за 1 (!!!!!) день на КОБОЛЕ (!!!!!!) программу написали, да еще без явных ляпов! Короче, меня взяли... И началось!!! АСУ есть АСУ — с вечера (после окончания рабочего дня в 18.00) дежурная смена начинала гнать задачи на завтрашний день...
Обычно сначала гнали простые задачи, а ближе к полуночи ставили "тяжелые" сортировки на лентах... А когда начинали считать зарплату — это вообще неделю АСУ на ушах стоял... Я тогда осознал, насколько важны, во-первых, архитектура системы, и во-вторых, контроль ввода ... Это из-за зарплаты, поскольку сделана она была, как я сейчас понимаю, через абсолютную задницу (прошу прощения у модератора).
Там же на кабельном я познакомился с еще одним видом программистской работы — сопровождением кода, который писал другой программист — это было что-то! Как же я тогда плевался! Ну, материться я не умею, но если б умел — обложил бы и код, и автора, которая сидела тут же рядом, во столько этажей, во сколько поднять смог бы! Это дало мне понимание, что в программе должна быть какая-то структура ( не забывайте, что это было всего на 2-3 год после окончания универа!).
Я там за год вырос до малень кого начальника — стал начальником типа производственного сектора — над всеми операторами. С нехилой зарплатой в 170р + 40% премии! Это на 3 год после института. Но проработал недолго — не выдержал быть постоянно крайним. Но тогда я понял. что некоторые работы женщины выполняют неизмеримо лучше мужчин. Когда у меня была женская ночная смена — они заканчивали всю работу часа в 2 ночи и спокойно ложились спать до примерно 7, когда выпускали небольшие остаточки... А мужики вечно опаздывали — просто хорошо известную работу. даже сложную, но известную, женщины делают лучше... Мужики лучше там, где есть новье какое-нить...
В общем, ушел я с Минска-32 и с кабельного завода обратно в Институт Кибернетики, но в другое подразделение. И вот там-то и начал писать на ЕС — заврта утром напишу...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[12]: Лаптев - Часть 4
От: McSeem2 США http://www.antigrain.com
Дата: 11.01.05 21:30
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Был такой компьютер Минск-32 — продолжение серии Минск. Год это уже был 77, и на ассемблере в АСУ, конечно никто не писал (хотя я ради интереса потом попробовал — нормально!). Вполне был уже хороший комп, с консолью оператора — это была пишмаш Консул И ося имелась — до 4 программ одновременно можно было запускать... С перфокарт, естественно... Лентопротяжки были уже вполне ЕСовские и их было 4-8 штук. Были даже диски!!!!!


У нас этот Минск-32 демонтировали только в 85-м году и заменили на подержанную ЕС-1034. Временно, года на полтора, потом планировали поставить новый комп неимоверной мощности ЕС-1066, но эти времена так и не наступили... Так что Минск-32 я только видел, новых "операторов ЭВМ" для него уже не требовалось и новых программ не писалось.

LVV>Обычно сначала гнали простые задачи, а ближе к полуночи ставили "тяжелые" сортировки на лентах... А когда начинали считать зарплату — это вообще неделю АСУ на ушах стоял... Я тогда осознал, насколько важны, во-первых, архитектура системы, и во-вторых, контроль ввода ...


Не помню, как у нас назывались устройства ввода, но на них работал целый отдел, ОВИ — отдел ввода информации. Информация поступала с метеостанций и постов. Пост представлял собой небольшую будку и несколько измерительных приборов — термометр, барометр, "осадкомер", "ветроспидометр". Некий ДядяВася, начальник поста, несколько раз в сутки снимал показания и записывал их на специальных бланках. Ставил свою подпись и печать. Эти бланки специальной государственной курьеской почтой отправлялись к нам. Было несколько сотен постов по всей области. Метеостанции были помощнее и были оснащены телетайпом. После чего информацию надо было вбить, по ней считалось много разной статистики. Точность данных была весьма важна, поэтому отдел ввода работал в две или три руки. У каждой барышни был маленький монитор, типа 20x12 символов и клавиатура с цифрами (буквы были не нужны). Одна и та же информация вводилась три раза, после чего верифицировалась (тройной ввод позволял выполнять автоматическую верификацию). Это считалось достаточным обеспечением надежности данных. Иногда использовалось лишь двойное дублирование, но это считалось недостаточно надежным.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[13]: Лаптев - Часть 4
От: LaptevVV Россия  
Дата: 12.01.05 10:38
Оценка: 6 (2)
Здравствуйте, McSeem2, Вы писали:

MS>Не помню, как у нас назывались устройства ввода, но на них работал целый отдел, ОВИ — отдел ввода информации. Информация поступала с метеостанций и постов. Пост представлял собой небольшую будку и несколько измерительных приборов — термометр, барометр, "осадкомер", "ветроспидометр". Некий ДядяВася, начальник поста, несколько раз в сутки снимал показания и записывал их на специальных бланках. Ставил свою подпись и печать. Эти бланки специальной государственной курьеской почтой отправлялись к нам. Было несколько сотен постов по всей области. Метеостанции были помощнее и были оснащены телетайпом. После чего информацию надо было вбить, по ней считалось много разной статистики. Точность данных была весьма важна, поэтому отдел ввода работал в две или три руки. У каждой барышни был маленький монитор, типа 20x12 символов и клавиатура с цифрами (буквы были не нужны). Одна и та же информация вводилась три раза, после чего верифицировалась (тройной ввод позволял выполнять автоматическую верификацию). Это считалось достаточным обеспечением надежности данных. Иногда использовалось лишь двойное дублирование, но это считалось недостаточно надежным.

У нас в Ташкенте был институт, который назывался САРНИГМИ Это СреднеАзиатский Региональный Научно-Исследовательский ГидроМетеорологический Институт — во как! Таких в мире — всего 16, 4 из них — в СССР. Один из них — в Ташкенте... В те времена там стояла сосем интересная машина, видимо из военных. Называлась Весна! Дисков на ней не было, былои только барабаны — очень хорошее и быстрое устройство прямого доступа, но тогда, конечно, ограниченной емкости и не сменяемое — ну как винчестер сейчас.
Модемы — шкафы тоже были, в расписании работы машины было выделено специальное время (несколько раз в день) когда она работала только на прием информации и запись ее на ленты. Расчет погоды начинали гнать, начиная с полуночи, поскольку к утру — к 6 часам все должно быть посчитано и готово к отправке в нужные места...

А по поводу ввода информации в АСУ тоже могу сказать, что у нас тоже был специальный отдел, который этим занимался... Например, задача по учету готовой продукции обычно начиналась с того, что поступающую информацию набивали на перфокарты. Для контроля, естественно, набивали два разных оператора. А потом этот двойной комплект уже вводился программой на ленту и программа выбрасывала все несовпадения. Далее были корректировки — опять двойной ввод... И так до тех пор, пока, вся информация в правильном виде не попадала на ленту. И только потом начинался обсчет и вывод ведомостей.
Второй способ контроля — контрольные суммы — стал применяться. когда перфоввод заменили на ввод сразу на магнитные ленты — были такие устройства. Человек набирал так же, как на перфораторе, но запись шла прям на ленту. Контрольная сумма считалась самим устройством. А чеоловек должен был ввести посчитанную независимо для сравнения. Это тоже было еще то удовольствие. На наших советстких машинах это как-то не очень прижилось, а вот на серии СМ-1420 (pdp-11) был такой период, когда такой ввод активно использовался.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Learning to fly - LaptevVV - part6
От: LaptevVV Россия  
Дата: 12.01.05 11:22
Оценка: 38 (9)
#Имя: FAQ.Learningtofly.LaptevVV.part6
Перейдя на работу обратно в институт кибернетики, я впервые столкнулся с ЕС ЭВМ. Тогда там стояла ЕС-1020, которую довольно быстро заменили на ЕС-1022. Работали мы на PL-1, писали программы для Гражданской обороны Узбекистана. Задания были примерно такими: Даются координаты на карте некоего удара — химического, ядерного или бактериологического; задаются скорость и направление ветра — надо расчитать облако. И не только расчитать, но и напечатать (опять на АЦПУ!) это самое облако, смасшабировав относительно карты! То есть опять пересчет из кртографических координать в целые, причем, облако может быть "широким" — шире полосы бумаги, поэтому надо было печатать его полосками! Особенный кайф получался. когда облако длинное, а по ширине не влезает 1-2 символа — получалось практически чистая полоса бумаги, которую мы использовали для написания следующих программ, или просто для печати андеграудной литературы!
Режим работы был отчужденный — мы сдавали вечером колоды перфокарт в ВЦ, а утром забирали распечатки с результатами работы. Представляете, если в программе была простая опечатка, ты наутро получал кучу синтаксических ошибок!?
Да и режимность была: после сдачи программы в эксплуатацию любые изменения в ней делались по акту! Акт гласил, что из колоды изъято столько то перфокарт, номера такие-то, а добавлено столько то перфолкарт — новые номера такие-то.
Вот была жизнь, блин!
Работали мы тогда в оси ДОС ЕС. Задание оформлялось с помощью упрощкенного варианта операторов JCL Job, EXEC, DD и у меня не оставило особых следов в памяти. Вот когда я перешел в соседний отдел, и там мы уже начали работать в ОС ЕС, это уже как-то отложилось. Отдел занимался разработкой задач, оптимизирующих расход ресурсов в городских сетях: тепловых, водопроводных, канализации и так далее...
Постановку задач делало отдельное подразделение, которое выпускало по каждой задаче документ. Этот документ попадал в сектор программмирования и наш начальник уже распределял, кто будет писать. Начальник был в программировании — не очень компетентен, поэтому задачи попадали в руки почти случайным образом. Помню смешной случай: разработчица, занимающаяся постановкой какой-то задачи по канализационной сети, принесла ГИПу (Главный Инженер Проекта) документ, в названии которого неосторожно написала слово "расход". ГИП был мужик остроумный и не преминул тут же ее поддеть: расход чего? Фекальных вод что ли? Ты уж напиши! Бедная не знала, что лепетать в ответ...
Режим работы на компьютере у нас опять был индивидуальный — ма арендовали время в статистическом управлении и заказывали время еженедельно. Причем, можно было работать и днем. Тут я довольно быстро освоил работу с библиотеками и перестал таскать колоды — только корректировку. У компа был пульт оператора — это была все та же пишмаш Koнсул, выпускаемая в ГДР. Ох и трещал же он, когда сообщения печатал!
Программист работал на компе как оператор тоже. И должен сказать, язык оператора, и язык управления заданиями — это были две большие разницы. Job Control Language состоял фактически из трех команд Job, Exec, DD (Data Definition — кажется). Но каждый из операторов JCL включал огромное количество параметров. Особенно это касалось DD, в котором прописывалось все, касающееся набора данных на дисках.
Из командыы Exec (ехец, как мы ее называли) можно было передать информацию в программу из поля Parm. Считалось, что программист, который может написать программу получения этой информации — а писать надо было на ассемблере — очень хороший спец. Могу гордиться, что в соревновании с комендой, разработавшей СУБД ИНЕС-2 (а это коллектив под управлением Михаила Донскова — одного из создателей Каиссы, первой шахматной программы-чемпиона) я вышел победителем. У них в системе Инес-2 программа получения информации из поля Parm содержала 43 команды, а мне удалось уложиться в 42! И короче я уже больше нигде не видел.
На этой работе я довольно хорошо освоил PL-1. Патался использовать препроцессор — была у этого языка такая фишка. В качестве операторов использовались те же операторы, но спереди стоял знак % можно было писать даже процедуры — и все это в рамках того же языка, не изучая новых конструкций. Пытался я использовать и оператор On, но быстро понял, что задачи несколько не те.
Но более всего мне запомнилоась моя попытка использовать списки для обработки входной информации. Так как количество входа было неизвестно заранее (и проектировщики ничего вразумительного сообщить по этому поводу не могли) я решил организовать на входе односвязный список. Я смог его реализовать и отладить (учтите, что нам ничего подобного в универе не читали — просто не было таких преподов, и книжек еще было мало — но я именно по литературе сработал).
Но испытав на практике все прелести управления динамической памятью я для себя решил, что больше НИКОГДА в асучной задаче динамику использовать не буду — себе дороже! Так и держусь до сих пор...
Ну, а в 1981 году я перешел на другую работу и тут уже попал на дисплеи — расскажу завтра.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[12]: Лаптев - часть 5
От: LaptevVV Россия  
Дата: 12.01.05 14:06
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>У них в системе Инес-2 программа получения информации из поля Parm содержала 42 команды, а мне удалось уложиться в 42! И короче я уже больше нигде не видел.

Пардон! У них было 43, а у меня — 42.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Learning to fly, или О "новых" технологиях
От: IT Россия linq2db.com
Дата: 12.01.05 14:47
Оценка: +2
Здравствуйте, SchweinDeBurg, Вы писали:

SDB>Я учился летать...


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

SDB>Появилась ADO — COM-атозная надстройка над ODBC.


Над OLE DB.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Если нам не помогут, то мы тоже никого не пощадим.
Re[2]: Learning to fly, или О "новых" технологиях
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 12.01.05 14:53
Оценка: :)))
Здравствуйте, IT, Вы писали:

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




IT>Над OLE DB.


Каюсь, облажался. Меня AlexEagle в привате как раз пару часов назад разубеждал. Разубедил. А я-то грешный всю жизнь был уверен, что в конце концов все эти ADO/OLE DB/Jet/DAO банально дергают ODBC-драйвер... так дураком и помру...
[ posted via RSDN@Home 1.1.4 beta 3 r279 ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re[14]: Лаптев - Часть 4
От: McSeem2 США http://www.antigrain.com
Дата: 12.01.05 16:23
Оценка: 2 (1)
Здравствуйте, LaptevVV, Вы писали:

LVV>А по поводу ввода информации в АСУ тоже могу сказать, что у нас тоже был специальный отдел, который этим занимался... Например, задача по учету готовой продукции обычно начиналась с того, что поступающую информацию набивали на перфокарты. Для контроля, естественно, набивали два разных оператора. А потом этот двойной комплект уже вводился программой на ленту и программа выбрасывала все несовпадения. Далее были корректировки — опять двойной ввод... И так до тех пор, пока, вся информация в правильном виде не попадала на ленту. И только потом начинался обсчет и вывод ведомостей.


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

LVV>Второй способ контроля — контрольные суммы — стал применяться. когда перфоввод заменили на ввод сразу на магнитные ленты — были такие устройства. Человек набирал так же, как на перфораторе, но запись шла прям на ленту. Контрольная сумма считалась самим устройством. А чеоловек должен был ввести посчитанную независимо для сравнения. Это тоже было еще то удовольствие. На наших советстких машинах это как-то не очень прижилось, а вот на серии СМ-1420 (pdp-11) был такой период, когда такой ввод активно использовался.


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

Это навеяло мне скандал с подделкой метро-карточек в Москве. Тат было как-то все очень просто — надо было заклеить часть магнитной полосы скотчем вдоль, а когда израсходуешь — отклеить, проехаться один раз, после чего можно снова заклеивать. Проблема была в том (не знаю, как сейчас, может уже исправили), что система верификации была крайне тупой — на карте 3 независимые магнитные полосы, из которых выбиралась та, на которой максимальное количество поездок, это число декрементировалось и все три полосы прописывались заново. Если бы верификация выполнялась мажоритарно, такой фокус бы не прошел. Помню в какой-то конфе был мощный флейм по этому поводу. Народ думал, что на карточке только 2 полосы, но потом вылез один из разработчиков (вел он себя на редкость по-хамски) и объяснил, что полосы-то на самом деле 3 и работает это "вот так", после чего был уличён в полной некомпетентности.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[13]: Лаптев - часть 5
От: Mamut Швеция http://dmitriid.com
Дата: 12.01.05 17:59
Оценка: :)))
Здравствуйте, LaptevVV, Вы писали:

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


LVV>>У них в системе Инес-2 программа получения информации из поля Parm содержала 42 команды, а мне удалось уложиться в 42! И короче я уже больше нигде не видел.

LVV>Пардон! У них было 43, а у меня — 42.

Ну что ж Вы так Я понял, что у них было 42, а у Вас — 41
... << RSDN@Home 1.1.4 beta 3 rev. 241>> ... <<Winamp is playing "Mary Black — Summer Sent You">> ...


dmitriid.comGitHubLinkedIn
Learning to fly - LaptevVV - part7
От: LaptevVV Россия  
Дата: 13.01.05 13:52
Оценка: 7 (3)
#Имя: FAQ.Learningtofly.LaptevVV.part7
Здравствуйте, LaptevVV, Вы писали:

LVV>Ну, а в 1981 году я перешел на другую работу и тут уже попал на дисплеи — расскажу завтра.

Так мне повезло, что я в 1981 году попал в единственную в своей жизни команду, с которой смог проработать 7 лет — это был мой рекорд! Команда целиком состояла из выпускников нашего фака ПММ — 1974, 1975 и 1976 года выпуска. Начальники были тож наши... А сам я стал маленьким начальником — сектора. В подчинении было порядка 10 сотрудников.

Машинное время мы снимали по соседству — в одном проектном институте. Но институт был уровня республиканского, поэтому там стояла ЕС 1052 (потом ЕС-1055) с безобразно большим количеством памяти — 512 КИЛОбайт. На этой памяти крутилось несколько десятков пользователей за дисплеями и еще операторы гнали пакетные задачи-рачеты (это не считая оерационной системы!). Дисплеи были зеленого цвета. Я не спец в электронике, но изображение на экране высвечивалось не по точкам, а как-бы линиями. Ну электронщики знают, как это называется.
Размер телевизора был примерно 17-19 дюймов по диагонали, но работал он только в текстовом режиме, символы были большими — порядка 25 строчек, а количество символов, естественно — 80, как на перфокарте.
Система называлась ДУВЗ — Диалоговый Удаленный Ввод Заданий. В отличие от нашего российского Примуса, с которым я был знаком только теоретически, эта являлась адаптированной версией соответствующей версии IBMовской системы, но какой — не скажу. Я тогда уже перестал следить за соответствием. Фактически мы готовили такую же колоду карт, но набивали ее на клавиатуре дисплея (не персонального компьютера — ничего кроме трубки — не было!). То есть те же карты JCL в колоде присутствовали. Затем выдавали команду на выполнение и результат получали тоже какбы в виде распечатки, но на экране. Если нужно, то запускали печать — это мы делали редко, в основном, в конце работы, чтобы иметь бумажный вариант последних изменений. Печать была в машинном зале и нам приносили распечатку, поскольку программистов в зал не пускали — мы сидели в отдельном помещении.
Естественно, для входа в систему мы вводили логин и пароль... Уже тогда.
Потом недолго была так называемая СРВ — Система Реального Времени. Тут уже был нормальный командный язык, системная подсказка на экране. Можно было вводить массу команд — то есть не надо было создавать пакет-колоду. Отдельные команды были на все: трансляцию, редактирование связей — тогда линкер назывался редактором связей и обладал мощнейшими возможностями по формированию оверлейной структуры. Он понимал собственный язык, с помощью которого задавались особенности сборки модулей. Но в простейшем случае по умолчанию, конечно создавал монолитный модуль.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Learning to fly - LaptevVV - part8
От: LaptevVV Россия  
Дата: 13.01.05 14:44
Оценка: 6 (3)
#Имя: FAQ.Learningtofly.LaptevVV.part8
Нужно сказать, что на ЕС ЭВМ была масса операционных систем! Дос — это была простая система с фиксированным числом задач и фиксированным распределением памяти. ОС MFT была значителоьно более развита с точки зрения сервиса файловой системы, но распределение памяти тож было фиксированным. Разделы назначались при генерации (сейчас это называется инсталляцией-установкой) конкретной конфигурации системы.
Генерация — потому что ось представляла собой колоссальное количество макросов. Генерация состояла в том, что создавался пакет макровызовов с конкретными параметрами макросов. Для этого на компьютере была предустановлена минимальная система с транслятором-ассемблером (макроассемблером). Процесс генерации занимал несколько часов, потом ситему проверяли на работоспособность — та еще работа... Часто оказывалось, что параметры заданы не те или не так — не стыковались у некоторых макросов сочетания... И приходилось перегенерировать систему. Поэтому в системные программисты (а они как раз и занимались такой работой) старались брать людей, уже имевших опыт
А фиксированные разделы памяти мог изменить и оператор — была у него такая команда. Каждая задача, естественно, попадала в такой раздел, размер которого был наиболее подходящь — память прописывалась в задании. Каритинку такой системы можно видеть в книге Олиферов — сетевые операционные системы. Они сдирали как раз с тех IBMовских осей.
На смену ей довольно быстро пришла OC MVT — MultyVariableTask — мультипрограммирование с переменным числом задач. И тут уже была классика — загрузчик запрашивал память у оси и загружал туда задачу.

Кстати, сама IBM/360-370 была машина очень даже ничего! Там была встроенная десятичная арифметика, и двоичная, и плавающая... Только память была устроена как "старшие разяды по младшему адресу"... И это казалось естественным — я потом долго не мог привыкнуть на СМ (pdp-11) к адресации "младшие разряды по младшему адресу". Система прерываний была прообраз нанешней с вектрами, но векторов было всего 6 (кажется) и никаких стеков. Вектор был не вектор, а PSW — Processor Status Word размером в 64 бита. И там была вся информация о состоянии процессора — вместе с адресом текущей команды (кажется 24 бита, поскольку до гигабайтов тогда не додумались еще). РОНы, естественно, отдельно. И это действительно были Регистры ОБЩЕГО назначения, а не так как в Интеле — каждый специализировнный.
Было 6 "старых" PSW и 6 "новых" PSW. И одно — текущее. При возникновении прерывания текущее сохранялось в "старом", а в текущее попадало "новое". Естественно, первое, что делал обработчик — сохранял "старое" гденить у себя так, чтобы потом можно было открыть прерывания и обрабатывать вложенные. Стека — не было! Во всяком случае, реализованного в составе процессора.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[9]: Как-бы продолжение...
От: Ligen Украина http://zone-of-ambiguity.blogspot.com/
Дата: 13.01.05 15:46
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK> Но с пересечением процессорами некоторой черты (где то 300-500МГц) они перестали быть узким местом. Для современных настольных систем производительность процессора на многих задачах сверхизбыточна. И даже если мы напишем софт по старинке — с морем оптимизаций и хардкода, ничерта это не даст в потребительском плане.


Конечно, "сетевые черви" вообще без оптимизации написать можно.. но САПР или КАД средних размеров, например... можно, но зачем нужен такой большой и страшный тормоз?

AVK> Вот JIT и GC как раз и утилизируют эту лишнюю процессорную мощность...

Я еще не видел ни одного юзверя, который бы мне так вот заявил — задолбало уже своей высокой скоростью современное ваше ПО, надыть что-то с этим делать уже , конгресс собирать...., например
Позвольте, уважаемый, поставьте себе какой-нибудь дурацкий ВинБар, чтобы он Вам показывал на Вашем ПК загрузку процессора, и посмотрите, ресурс это или нет... когда я, например, матерюсь на какое-нибудь монстроидальное приложение, он (индикатор) показывает максимум, почему-то

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

AVK>Еще один момент — этот процесс практически непрерывен, пока непрерывно увеличение мощностей компьютерных железок. Неделю назад забыли про прямое программирование котроллеров, позавчера про прерывания, вчера про ассемблер, сегодня про рукописную графику, звук, завтра забудем про управление ресурсами, сетевые протоколы. А взамен получаем GC, JIT, интеллектуальные ФС, паттерны, широкое использование метапрограммирования, Software Factories, громадные стандартные библиотеки, слоднейшие IDE и много другого.

тут самая классная фраза — "забудем про управление ресурсами" а что в вашем понимании ресурс?

ага, как же. У меня есть некоторые хорошие знакомые ребята, целые комьюнити, которые считают, что самый мега-супер-современный язык — это асм.. и пишут на нем разный софт, есс-но
Viva el Junta Militar! Viva el Presidente!
Re[13]: Лаптев - часть 6
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 13.01.05 16:07
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV> Я не спец в электронике, но изображение на экране высвечивалось не по точкам, а как-бы линиями. Ну электронщики знают, как это называется.


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

LVV>Размер телевизора был примерно 17-19 дюймов по диагонали, но работал он только в текстовом режиме, символы были большими — порядка 25 строчек, а количество символов, естественно — 80, как на перфокарте.


ИМХО ты ошибаешься. Я видел сии дивайсы. Мониторы там конечно были огромные, но вот видимая часть хорошо если 14" была.

LVV>В отличие от нашего российского Примуса, с которым я был знаком только теоретически


А вот я как раз Примус даже немного ковырял. Но нам повезло — у нас все таки компы были профильными по специальности и с примуса нас очень быстро пересадили на намного более крутые дивайсы под названием Мазовия (вроде как болгарского производства). Сии дивайсы имели унутре русский 8086 (КР1810ВМ86), 2 5.25 дисковода половинной высоты и винт на 5МБ, тож болгарского производства, а понаруже 12" зелененький монитор. По сравнению с ЕС-184х эта была весьма неплохая машина. Более того, их удалось потом проапгрейдить до 286 и 40МБ IDE винта стандартной комплектухой.
... << RSDN@Home 1.1.4 beta 3 rev. 275>>
AVK Blog
Re[10]: Как-бы продолжение...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 13.01.05 16:38
Оценка: 90 (5) +1 :)
Здравствуйте, Ligen, Вы писали:

L>

L>Конечно, "сетевые черви" вообще без оптимизации написать можно.. но САПР или КАД средних размеров, например... можно, но зачем нужен такой большой и страшный тормоз?

Во как — раз GC так сразу большой и страшный тормоз. Видимо зря я так много писал. Я то все это писал в надежде обосновать что, что применение современных технологий с оверхедом по какому то одному ресурсу отнюдь не означает что в итоге система целиком будет работать медленнее. Ладно, расскажу о еще одном примере, по моему даже в каких то учебниках он есть, практически классика.
Итак — есть у нас некий сервер. Функционал у него такой — клиент к нему обращается первый раз, модифицирует состояние на сервере, потом еще раз модифицирует. Ну и в итоге через какое то, довольно продолжительное время отключается. Стандартный вобщем то сценарий. Пишем программу — состояние между вызовами храним в памяти, прикручиваем механику управления жизнью сессии (стандартно, по таймауту с последнего обращения). Пусть даже, для контраста, мы написали собственный менеджер состояний, который работает с ними неимоверно быстро, писан на ассемблере, да еще и ввиде драйвера, чтобы не было тормозов на пересечении колец защиты. Запускаем. Работает.
Но клиентов становится больше. Отлично, берем 2килобакса (условно) — докупаем память, ставим два процессора. Эффект есть, работает.
Но клиентов становится больше. Берем 10 килобаксов — покупаем память, четырехпроцессорную маму с процессорами. Эффект конечно есть, но не то чтобы очень. Потому как 4х-процессорные системы на общей шине уже половину вычислительных ресурсов тратят на войну на этой самой шине, память свыше 4Гиг напрямую не адресуется, а через PAT тормозит.
А клиентов тем временем ... правильно, становится больше. Ну и что дальше — тратить уже сотни килобаксов на мейнфрейм с продвинутой архитектурой в надежде получить прирост хотя бы на 10%?
Это очень характерный пример того как эффективный код при том является плохо масштабируемым.
А знаешь какие стандартные решения проблемы? Их в общем то два (больше конечно, но эти самые простые).
1) Не храним состояние на сервере. На первый взгляд полный бред. В самом медленном вроде бы месте в системе — канале от юзера до сервера, мы вдруг резко, на несколько порядков, увеличиваем оверхед. А на практике сняв нагрузку с памяти мы избавились от узкого горлышка в системе, а увеличение мощностей каналов на сервере уже дается значительно дешевле.
2) Отказываемся от хранения состояния в памяти и сбрасываем его в БД. Еще веселее — доступ к диску на несколько порядков медленнее, чем к памяти, тем более через наш супердрайвер. Но в итоге картинка та же самая — дисковая подсистема апгрейдится сравнительно легко и в итоге за те же деньги мы получаем большую производительность (естественно для огромного количества пользователей, для небольшого их количества новый вариант несопоставимо мделеннее).
Вот такой вот парадокс. То же самое и с GC и JIT. Далеко не факт что узким местом в системе является процессор и вполне возможно что их применение в итоге общую производительность увеличит. А может и уменьшит. Все зависит от задачи.

AVK>> Вот JIT и GC как раз и утилизируют эту лишнюю процессорную мощность...

L> Я еще не видел ни одного юзверя, который бы мне так вот заявил — задолбало уже своей высокой скоростью современное ваше ПО, надыть что-то с этим делать уже , конгресс собирать...., например

Не понял что то твоей иронии. Я ж не говорил что лишняя оптимизация вредит пользователю. Она вредит производителю софта.

L>Позвольте, уважаемый, поставьте себе какой-нибудь дурацкий ВинБар,


Зачем? У меня вон янус стоит с тем самым JIT и GC. Уж чего чего, а в процессор он точно не упирается.

L> чтобы он Вам показывал на Вашем ПК загрузку процессора


А нафига мне эта загрузка процессора?

L>, и посмотрите, ресурс это или нет... когда я, например, матерюсь на какое-нибудь монстроидальное приложение, он (индикатор) показывает максимум, почему-то


Ну матерись, если тебе так легче. А я нет. Если уж совсем криво написано я просто понижаю приоритет задачи. И все. Ну может заплачу лишних 10 копеек за свет.

L>хотя все мегасовременные платформы, это конечно хорошо и правильно — должны же зарабатывать деньги с++ и асм программеры кот. пишут все эти гипер системы, продавая их сиШарперам


Опять не понял иронии. Что "с++ и асм программеры" продают "сиШарперам"?

L>тут самая классная фраза — "забудем про управление ресурсами" а что в вашем понимании ресурс?


Ресурс Память, диск, сетевые соединения etc.

L>ага, как же. У меня есть некоторые хорошие знакомые ребята, целые комьюнити, которые считают, что самый мега-супер-современный язык — это асм.. и пишут на нем разный софт, есс-но


И?
... << RSDN@Home 1.1.4 beta 3 rev. 275>>
AVK Blog
Re[14]: Лаптев - часть 6
От: McSeem2 США http://www.antigrain.com
Дата: 13.01.05 16:52
Оценка: 14 (3)
Здравствуйте, AndrewVK, Вы писали:

LVV>> Я не спец в электронике, но изображение на экране высвечивалось не по точкам, а как-бы линиями. Ну электронщики знают, как это называется.


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


Нет, это было еще до растровых дисплеев, ты наверное их просто не застал. Это были так называемые "Дисплеи с произвольным сканированием луча (каллиграфические или векторные дисплеи)".
http://ermak.cs.nstu.ru/kg_rivs/kg01.htm#tth_sEc0.8
Развертка там конечно же была, но не "пилообразная", как на всех современных ЭЛТ, а произвольная. Соответственно, изображение было чисто векторным, регенерируемым в соответствии с "дисплейным файлом". Дисплейный файл — это набор команд, типа MoveTo/LineTo.

У нас такие стояли на ЕС-1022, но очень старые, там было всего 80x16 знакомест. Очень забавно выглядели символы на этом дисплее — линии очень ровные и красивые, но сами символы — кривоватые, поскольку было весьма непросто обеспечить хорошую точность состыковки линий. Там даже не было ЦДА (цифровой дифференциальный анализатор) — они появились потом, на графических дисплеях с запоминающей трубкой. А прорисовка линий выполнялась при помощи чисто аналоговых интеграторов на операционных усилителях. Мгновенная позиция луча определяется током в отклоняющих катушках ЭЛТ. Ток определяется напряжением на выходе интегратора. На вход интегратора подается нужное напряжение, определяющее скорость нарастания напряжения на выходе, и, соответственно, скорость нарастания тока в отклоняющей катушке. Вот у нас луч уже двигается с определенной скоростью по X. По Y — все то же самое, управляемое другой цепью. Вот у нас луч уже чертит отрезок по люминофору в нужном направлении. Чтобы все это было видно, дисплейный процессор должен циклически сканировать буфер с командами и постоянно рисовать по одному и тому же месту. Так что развертка была, но совсем не похожая на растровую, с модуляцией яркости.
McSeem
Я жертва цепи несчастных случайностей. Как и все мы.
Re[15]: Лаптев - часть 6
От: LaptevVV Россия  
Дата: 13.01.05 16:54
Оценка:
Здравствуйте, McSeem2, Вы писали:

MS>Нет, это было еще до растровых дисплеев, ты наверное их просто не застал. Это были так называемые "Дисплеи с произвольным сканированием луча (каллиграфические или векторные дисплеи)".

MS>http://ermak.cs.nstu.ru/kg_rivs/kg01.htm#tth_sEc0.8
MS>Развертка там конечно же была, но не "пилообразная", как на всех современных ЭЛТ, а произвольная. Соответственно, изображение было чисто векторным, регенерируемым в соответствии с "дисплейным файлом". Дисплейный файл — это набор команд, типа MoveTo/LineTo.

MS>У нас такие стояли на ЕС-1022, но очень старые, там было всего 80x16 знакомест. Очень забавно выглядели символы на этом дисплее — линии очень ровные и красивые, но сами символы — кривоватые, поскольку было весьма непросто обеспечить хорошую точность состыковки линий.

Да, именно такие!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re: Learning to fly, или О "новых" технологиях
От: IT Россия linq2db.com
Дата: 14.01.05 02:21
Оценка: 160 (13) +8 :))) :))) :)
Здравствуйте, SchweinDeBurg, Вы писали:

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


Фух, наконец-то дочитал. Ну вы и нафлудили
Интересный пост, прикольное обсуждение, правда, почему-то съехавшее на тему "Я стар, я очень стар, Я — СУПЕР-СТАР!!!"

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

И тем не менее... Хотя я тоже отношусь к поколению, которое программировало скальпелем на перфокартах и пишу код уже столько лет, сколько хватит трём программерам вне категорий, но хныканья вашего, господа, не разделяю и по своей первой оконной библиотеке не тоскую. И даже не собираюсь. Не дождётесь! Старому хламу место на помойке, в крайнем случае на чердаке, вместе с доморощенными графическими библиотеками, 2-х килобайтными экзешниками и прочими фортранами, MFC'ями и COM'ами. Не скрою, было, я тоже горевал по всему этому, но в какое-то время научился делать генеральную уборку в своей голове, вытряхивать оттуда пыль, выскабливать по углам паутину и освобождать место для нового. Я даже уже перестал бояться становиться на старт вместе с молодыми, зная, что они неизбежно вырвуться вперёд и помчаться быстрей меня к финишу. Перестал бояться, потому что знаю, что всё равно приду первым, ну как минимум одним из первых, т.к. они будут бежать напролом, а я знаю где срезать углы А потом... опять генеральная уборка, на старт и всё сначала. Такова наша програмистская селяви.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Если нам не помогут, то мы тоже никого не пощадим.
Learning to fly - LaptevVV - part9
От: LaptevVV Россия  
Дата: 15.01.05 11:15
Оценка: 23 (4)
#Имя: FAQ.Learningtofly.LaptevVV.part9
Здравствуйте, LaptevVV, Вы писали:

Ну вот...
Работали мы с Ленинградом — было несколько договоров... Один из договоров наши мужики реализовывали на PL-1, но не просто а со встроенным Лиспом... Сначала лисповские операторы обрабатывались препроцессором, но к концу договора все это реализовали в виде отдельной библиотеки с динамическим выделением памяти... Естественно, все это задавалось линкеру для сборки...
А потом мы резко перешли на pdp-11.
Причем надо было писать типовую реализацию бортовой системы реального времени. Машины еще не было, аппаратуры еще не было... А мы уже писали...

После ЕС ЭВМ архитектура pdp-11 производила, конечно, странное впечатление. Но чем больше мы в нее врубались, тем более стройной и последовательной она нам казалась...
Двухадресная система команд, 8 регистров общего назначения, причем в это число входил и указатель стека и IP, который назывался Program Counter. 12 методов адресации, в том числе автоинкремент регистров... Никаких исключений среди РОНов не было, можно было в команде явным образом использовать и SP и PC с любыми допустимыми режимами адресации... Сочетания режимов адресации — тоже какие угодно... Один аргумент мог быть, например, в памяти, а другой — стек... Или оба в памяти...Плавающая арифметика имела свои регистры — сейчас не помню сколько.

Особенно интересно была устроена память... Вначале память имера только 64К байтов... Но в старших моделях памяти было уже 256К... Самое интересное, что машина была 16-ти разрядной, и виртуальный адрес был МЕНЬШЕ реального, который был 18 разрядов — естественно, существовалааппаратура отображения...Это единственный компьютер, который мне попался с такой особенностью... В остальных всегда виртуальный был больше реального... Байты уже были "по младшему адресу — сладшие разряды"...
Система прерывания — уже векторная, Интел потом слизал с нее свою таблицу вектров прерываний реального режима...

Но самое интересное — это, конечно, система ввода-вывода! Такой мне не попадалось больше нигде! Каждое устройство имело рчяд регистров, совершенно типичных, например, регистр состояния и управления, регистр данных... Самое интересное. что эти регистры имели реальные адреса на адресной шине... Таким образхом не было нужды в отдельных командах ввода-вывода... Ввод вывод выполнялся обычной командой пересылки mov! А если нужно было установить или проверить биты, то это можно было сделать логическими командами or и and. Только в командах нужно было использовать абсолютную адресацию для адресов регистров...
Это была ПЕСНЯ!!!!!!

Для реализации оси, которую мы писали, естественно, на ассемблере, была придумана целая технология... Сначала на СМ-1420 писалась программа с абсолютным режимом адресации... Результат трансляции помещался на гибкий диск... Затем гибкий диск переносился на (почти) персональный ВУМС (прообраз ДВК), где загружался в память... Затем переходили в аппаратный режим работы, в котором был встроенный отладчик программ — то, что у микрософта потом было в виде debug сделано. Функциональность была достаточно хорошая, поэтому отлаживали программу в восьмеричных кодах... Представляете, как я тогда знал расположение всех разрядов любой команды! После отладки по отдельному проводу "сливали" исправленный код в целевой компьютер с такой же архитектурой, но имевший заводской номер 1 (!!!!!!), потом номер 2 — до третьего мы так и не добрались...
И проверяли уже там...
Нам пришлось кроме классических частей оси полностью писать всю систему ввода-вывода, поскольку ВСЕ устройства были нашими доморощщенными — разрабатывала та же ленинградская контора...
Дотчики были дискретные и Аналоговые — естественно, через АЦП... Клавиатуры не было — был специальный пульт с кнопками, каждая из которых вызывала прерывание... Из устройств вывода было оригинальное устройство бегущая строка...Как в рекламе сейчас делают... Или в кассах где-нить...Был довольно хороший телетайп, который был и устройством печати... Но самым замечательным был дисплей! Он хоть и не был цветным, но дисплей IBM PC ему в подметки не годился! 1. на экране одновременно совмещались 3 поля — одно текстовое и два графических. В памяти дисплея можно было прошить до 128 константных слайдов... Таким образом, на экран одновременно можно было выводить и статический текстовый слайд, статический графический слайд, и изменяемую графическую информацию... Дисплей имел систему команд, поэтому слайды выводились одной командой... Вы же помните. что регистры устройства — это адреса памяти!
В общем, как только нам в работу поступил этот дисплей — мы на нем стали отдлаживать прерывания от таймера...Выводили просто на экран, как в электронных часах... Мужики смеялись: Будильник за 7 миллионов рублей...
Продолжим попозже...
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[15]: Лаптев - часть 7
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 15.01.05 13:01
Оценка:
Здравствуйте, LaptevVV, Вы писали:

LVV>Особенно интересно была устроена память... Вначале память имера только 64К байтов... Но в старших моделях памяти было уже 256К... Самое интересное, что машина была 16-ти разрядной, и виртуальный адрес был МЕНЬШЕ реального, который был 18 разрядов — естественно, существовалааппаратура отображения...Это единственный компьютер, который мне попался с такой особенностью...


А что тут особенного? Совершенно стандартное решение. Есть даже на современных х86, называется РАТ.

LVV>Но самое интересное — это, конечно, система ввода-вывода! Такой мне не попадалось больше нигде! Каждое устройство имело рчяд регистров, совершенно типичных, например, регистр состояния и управления, регистр данных... Самое интересное. что эти регистры имели реальные адреса на адресной шине... Таким образхом не было нужды в отдельных командах ввода-вывода... Ввод вывод выполнялся обычной командой пересылки mov! А если нужно было установить или проверить биты, то это можно было сделать логическими командами or и and. Только в командах нужно было использовать абсолютную адресацию для адресов регистров...


Собственно на х86 такое тоже можно сделать. Видеокарты к примеру так и работают с самого начала. Просто отдельная шина для портов на х86 позволила кардинально упростить аппаратуру — ISA это фактически набор проводов и ничего более. Для подключения к ней достаточно 12-тиразрядного дешивратора и регистра-защелки на данные. Для дековской же архитектуры уже была нужна довольно сложная логика.
... << RSDN@Home 1.1.4 beta 3 rev. 283>>
AVK Blog
Re[2]: Learning to fly, или О "новых" технологиях
От: Денис Федин Россия  
Дата: 15.01.05 14:01
Оценка:
Здравствуйте, IT, Вы писали:


IT>И тем не менее... Хотя я тоже отношусь к поколению, которое программировало скальпелем на перфокартах и пишу код уже столько лет, сколько хватит трём программерам вне категорий, но хныканья вашего, господа, не разделяю и по своей первой оконной библиотеке не тоскую. И даже не собираюсь. Не дождётесь! Старому хламу место на помойке, в крайнем случае на чердаке, вместе с доморощенными графическими библиотеками, 2-х килобайтными экзешниками и прочими фортранами, MFC'ями и COM'ами. Не скрою, было, я тоже горевал по всему этому, но в какое-то время научился делать генеральную уборку в своей голове, вытряхивать оттуда пыль, выскабливать по углам паутину и освобождать место для нового. Я даже уже перестал бояться становиться на старт вместе с молодыми, зная, что они неизбежно вырвуться вперёд и помчаться быстрей меня к финишу. Перестал бояться, потому что знаю, что всё равно приду первым, ну как минимум одним из первых, т.к. они будут бежать напролом, а я знаю где срезать углы А потом... опять генеральная уборка, на старт и всё сначала. Такова наша програмистская селяви.


Полностью согласен.
Я конечно скальпелем перфокарты не пробивал, но начинал с программирования под Z80 и I8080. При написании компьютерных игр (общая обработка объектов, событийная модель, алгоритмы сжатия и обработки графики (на лету!!!), ИИ) особенно когда в распоряжении 32-40 кб ОЗУ и максимум 3.5 Khz, то это оставляет несгладимый отпечаток, зато позволяет на лету решать многокритериальные задачи, которые "новому поколению" далеко не под силу.
Кстати сейчас я себя не чувстую сильно скованным при использовании таких технологий как .NET или Java, они мне сильно экономят время и позволяют понимать мой код, даже многими начинающими.
Конечно бывает настольгия, иногда про нее хочется поговорить, но реальная польза от этого -> min.
Re[11]: Утренний постскриптум
От: Odi$$ey Россия http://malgarr.blogspot.com/
Дата: 15.01.05 14:23
Оценка: 49 (3)
Здравствуйте, Mamut, Вы писали:

M>>>Можно последующие части называть "Часть-1", "Часть-2" и т.д., а то я их нахожу с трудом — в основном, по большому количеству проставленных оценок

LVV>>Хорошо. Вечером продолжу — это будет уже часть 4?

M>Точно, четвертая:


M>Часть Первая
Автор: LaptevVV
Дата: 10.01.05

M>Часть Вторая
Автор: LaptevVV
Дата: 10.01.05

M>Часть Третья
Автор: LaptevVV
Дата: 11.01.05


неа, это будет пятая . Вообщем я это вот тут прикопал — http://gzip.rsdn.ru/?summary/2498.xml , и сабжи слегка поредактировал
Re[6]: [5]: Утренний постскриптум
От: Glоbus Украина  
Дата: 17.01.05 09:59
Оценка:
Здравствуйте, dmz, Вы писали:

dmz>А совершенно гениальная по графике Another World — 640x480x16, но как это выглядело...


Ууууххх! Да, клевая игрулина была, че не говори. Ваще последнее время ловлю себя на мысли, что раньше игрухи какие-то более захватывающие были — щазз уже не то... И при том умудрялись же впихивать в такие убогие ящики, что щас просто аж страшно становится. Наверное если бы удалось дать тем разработчикам в какой-нить компании игрульной сегодняшние машины они бы за пояс всех заткнули. "Да, были люди в наше время — не то что нынешнее племя. Богатыри не вы..."
Удачи тебе, браток!
Re[7]: [6]: [5]: Утренний постскриптум
От: LaptevVV Россия  
Дата: 17.01.05 10:41
Оценка:
Здравствуйте, Glоbus, Вы писали:

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


dmz>>А совершенно гениальная по графике Another World — 640x480x16, но как это выглядело...


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


А первая формула-1!!!!!! 640*480, а как ехала, блин!!!!
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Re[8]: [7]: [6]: [5]: Утренний постскриптум
От: Glоbus Украина  
Дата: 17.01.05 10:59
Оценка:
Здравствуйте, LaptevVV, Вы писали:


LVV>А первая формула-1!!!!!! 640*480, а как ехала, блин!!!!


А Laser Squad на Спектруме!!! А потом 1-е UFO!!! Играбельность просто нереальная была!
Удачи тебе, браток!
Re[7]: [5]: Утренний постскриптум
От: Sinclair Россия https://github.com/evilguest/
Дата: 17.01.05 12:39
Оценка:
Здравствуйте, Glоbus, Вы писали:
G>Ууууххх! Да, клевая игрулина была, че не говори. Ваще последнее время ловлю себя на мысли, что раньше игрухи какие-то более захватывающие были — щазз уже не то... И при том умудрялись же впихивать в такие убогие ящики, что щас просто аж страшно становится. Наверное если бы удалось дать тем разработчикам в какой-нить компании игрульной сегодняшние машины они бы за пояс всех заткнули. "Да, были люди в наше время — не то что нынешнее племя. Богатыри не вы..."
Ну, некоторым дали. Вот, к примеру, была такая компания, iD Software. Или там Sierra Online. Как тебе результат?
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
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-дровами, даже сейчас еще некоторые таковыми и остались..
Re[11]: Как-бы продолжение...
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 26.02.05 05:32
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Итак — есть у нас некий сервер. Функционал у него такой — клиент к нему обращается первый раз, модифицирует состояние на сервере, потом еще раз модифицирует. Ну и в итоге через какое то, довольно продолжительное время отключается. Стандартный вобщем то сценарий. Пишем программу — состояние между вызовами храним в памяти, прикручиваем механику управления жизнью сессии (стандартно, по таймауту с последнего обращения). Пусть даже, для контраста, мы написали собственный менеджер состояний, который работает с ними неимоверно быстро, писан на ассемблере, да еще и ввиде драйвера, чтобы не было тормозов на пересечении колец защиты. Запускаем. Работает.

AVK>Но клиентов становится больше. Отлично, берем 2килобакса (условно) — докупаем память, ставим два процессора. Эффект есть, работает.
[...skipped...]
AVK>А клиентов тем временем ... правильно, становится больше. Ну и что дальше — тратить уже сотни килобаксов на мейнфрейм с продвинутой архитектурой в надежде получить прирост хотя бы на 10%?
[...skipped...]
AVK>Это очень характерный пример того как эффективный код при том является плохо масштабируемым.

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

Более перспективный путь -- построение класстера. Т.е. вы, условно, тратите 2килобакса не на дополнительную память, а на еще одну машину. И устанавливаете балансировщик нагрузки, которые разводит клиентов поочередно на каждый из узлов кластера. Когда этого перестает хватать -- покупаете еще один компьютер и т.п. Hewlet-Packard со своим очень дорогим решением NonStop декларирует, что масштабирование прикладной задачи таким образом приводит к линейному росту производительности. По аналогичному пути пошел и Google, только они используют дешевые персоналки массового производства.

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

AVK>Вот такой вот парадокс. То же самое и с GC и JIT. Далеко не факт что узким местом в системе является процессор и вполне возможно что их применение в итоге общую производительность увеличит. А может и уменьшит. Все зависит от задачи.


По поводу GC согласен. Хочу также привести свой пример, когда GC обеспечит выигрыш в производительности. Существует такая стратегия обработки запросов клиентов как process-per-client (или даже process-per-request). Самый простой пример -- CGI на стороне Web-сервера. Но такая стратегия может применяться не только для CGI, но и для Web-сервисов и других задач. Так вот, предположим, что для обработки запроса запускается небольшое С++ приложение, которое активно использует new в начале своей работы, затем использует уже выделеную память, а в конце очищает всю память через delete. А теперь представим, что приложение не делает явных delete в конце. Т.е. вся выделенная процессу память очищается одним большим куском. Что обеспечивает совершено незначительный прирост производительности. Например, приложение работает всего на одну десятую секунды быстрее. Но пусть сервер должен обрабатывает за сутки 100000 запросов. Это означает, что новое приложение будет выигрывать 10000 секунд в день, т.е. более 2 часов (это конечно не так однозначно, т.к. в большинстве случаев запросы клиентов обрабатываются параллельно, но выигрыш все равно будет ощутимым).

По поводу JIT мне недавно попалась статья, где пытались оценить, как JIT увеличивает производительность Java-вского Swing-приложения. Оказалось, что никак. И дело было в том, что при использовании Swing цепочки вызовов были такими длинными, а дерево возможных переходов таким развесистым, что JIT просто был не в состоянии собрать необходимой статистики для выбора участков кода для компиляции.
Но, может быть, со временем ситуация с JIT улучшится.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[12]: Как-бы продолжение...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.02.05 08:46
Оценка:
Здравствуйте, eao197, Вы писали:

E>Более перспективный путь -- построение класстера. Т.е. вы, условно, тратите 2килобакса не на дополнительную память, а на еще одну машину. И устанавливаете балансировщик нагрузки, которые разводит клиентов поочередно на каждый из узлов кластера.


У класетра есть свои узкие места. В частности у него медленное межузловое взаимодействие с крайне высокой латентностью (особенно у дешевых кластеров на gigabit ethernet). Поэтому задачи, требующие интенсивного обмена данными между узлами на кластере работают очень плохо, хуже даже нежели на SMP. Гибридные решения вроде NUMA или сановских коммутаторов отчасти спасают, но лишь отчасти и очень задорого.

E> Когда этого перестает хватать -- покупаете еще один компьютер и т.п. Hewlet-Packard со своим очень дорогим решением NonStop декларирует, что масштабирование прикладной задачи таким образом приводит к линейному росту производительности.


Для любой задачи? Не смешите мои тапочки.

E>Я это к тому, что написанный эффективный код все же может оставаться актуальным,


Не может. Для кластеров требуются специализированные решения со специализированной архитектурой (если конечно речь не идет о вычислительных задачах).

E>По поводу JIT мне недавно попалась статья, где пытались оценить, как JIT увеличивает производительность Java-вского Swing-приложения. Оказалось, что никак. И дело было в том, что при использовании Swing цепочки вызовов были такими длинными, а дерево возможных переходов таким развесистым, что JIT просто был не в состоянии собрать необходимой статистики для выбора участков кода для компиляции.


Это уже не JIT, это Hotspot.
... << RSDN@Home 1.1.4 beta 4 rev. 344>>
AVK Blog
Re[13]: Как-бы продолжение...
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 28.02.05 09:15
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>У класетра есть свои узкие места. В частности у него медленное межузловое взаимодействие с крайне высокой латентностью (особенно у дешевых кластеров на gigabit ethernet). Поэтому задачи, требующие интенсивного обмена данными между узлами на кластере работают очень плохо, хуже даже нежели на SMP. Гибридные решения вроде NUMA или сановских коммутаторов отчасти спасают, но лишь отчасти и очень задорого.


Если интенсивного обмена, то да.
А если у кластера есть один front-end, который выполняет роль балансировщика нагрузки, а за ним стоят узлы, которые обрабатывают перенаправленные на них запросы самостоятельно, без обмена с другими узлами, то не так уж все и плохо.

E>> Когда этого перестает хватать -- покупаете еще один компьютер и т.п. Hewlet-Packard со своим очень дорогим решением NonStop декларирует, что масштабирование прикладной задачи таким образом приводит к линейному росту производительности.


AVK>Для любой задачи? Не смешите мои тапочки.

Нет, про любые задачи я не говорил. NonStop -- это система адаптированная для on-line обработки транзакций. Например, когда обработку сотен тысяч on-line запросов клиентов можно развести на 100 машин и достичь действительно линейного роста производительности всей системы.

Просто я подумал, что приведенный вами пример как раз подходит под категорию on-line транзакций.

E>>Я это к тому, что написанный эффективный код все же может оставаться актуальным,


AVK>Не может. Для кластеров требуются специализированные решения со специализированной архитектурой (если конечно речь не идет о вычислительных задачах).


Не согласен с такой категоричностью. Если речь идет о вычислительных задачах, типа сложных и больших научных расчетов, то вы правы. Но если речь идет о web-сервере, который через cgi-генерирует контент для клиентов, или о web-сервисе, который через cgi обрабатывает SOAP-запросы, то прикладной код cgi для адаптации к кластеру может не потребовать никаких модификаций. Потребуется только web-сервер, который умеет балансировать нагрузку на рабочие узлы кластера.

AVK>Это уже не JIT, это Hotspot.


Боюсь, что для меня, замшелого C++ программиста, такие тонкости уже не различимы.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[14]: Как-бы продолжение...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.02.05 09:37
Оценка:
Здравствуйте, eao197, Вы писали:

E>Если интенсивного обмена, то да.

E>А если у кластера есть один front-end, который выполняет роль балансировщика нагрузки, а за ним стоят узлы, которые обрабатывают перенаправленные на них запросы самостоятельно, без обмена с другими узлами, то не так уж все и плохо.

Если задача идеально параллелится, то да, кластер подходит. Но есть тут одна засада — такие задачи нечасто встречаются. Чаще же, даже если собственно алгоритмы параллелятся, все равно все в итоге стекается в единую БД и в нее же упирается. А вот для распараллеливания БД на кластеры приходится придумывать весьма хитрые схемы. Впрочем это уже совсем дургой разговор.

AVK>>Для любой задачи? Не смешите мои тапочки.

E>Нет, про любые задачи я не говорил. NonStop -- это система адаптированная для on-line обработки транзакций.

А транзакции где? Не в БД ли? Тогда см. выше .

E> Например, когда обработку сотен тысяч on-line запросов клиентов можно развести на 100 машин и достичь действительно линейного роста производительности всей системы.


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

E>Просто я подумал, что приведенный вами пример как раз подходит под категорию on-line транзакций.


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

AVK>>Не может. Для кластеров требуются специализированные решения со специализированной архитектурой (если конечно речь не идет о вычислительных задачах).


E>Не согласен с такой категоричностью. Если речь идет о вычислительных задачах, типа сложных и больших научных расчетов, то вы правы.


Пальцем в небо. Как раз такие задачи очень часто распарралеливаются идеально и считаются большей частью на кластерах. В ту же кассу задачи рендеринга.

E> Но если речь идет о web-сервере, который через cgi-генерирует контент для клиентов, или о web-сервисе, который через cgi обрабатывает SOAP-запросы, то прикладной код cgi для адаптации к кластеру может не потребовать никаких модификаций. Потребуется только web-сервер, который умеет балансировать нагрузку на рабочие узлы кластера.


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

AVK>>Это уже не JIT, это Hotspot.


E>Боюсь, что для меня, замшелого C++ программиста, такие тонкости уже не различимы.


Какая уж тут тонкость. Hotspot тем и отличается от JIT, что принимает решение о компиляции, либо интерпретации кода. А в дотнете, к примеру, промежуточный код компилируется всегда.
... << RSDN@Home 1.1.4 beta 4 rev. 344>>
AVK Blog
Re[15]: Как-бы продолжение...
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 28.02.05 10:13
Оценка:
Здравствуйте, AndrewVK, Вы писали:

AVK>Если задача идеально параллелится, то да, кластер подходит. Но есть тут одна засада — такие задачи нечасто встречаются.


Ну, это сильно зависит от предметной области. Например, в web-приложениях такое сплошь и рядом

E>>Просто я подумал, что приведенный вами пример как раз подходит под категорию on-line транзакций.


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


Ну как же не подходит , вот же:

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


Ну прям как обычный web-сервер описывается . Например, для обслуживания халявных почтовых ящиков. Или поисковик. А такие задачи хорошо решаются с помошью кластеров, google это доказал.

AVK>Пальцем в небо. Как раз такие задачи очень часто распарралеливаются идеально и считаются большей частью на кластерах. В ту же кассу задачи рендеринга.


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

Хотя мы уже в какие-то дебри стали углубляться. Тех же кластерных решений сейчас уйма и под разные задачи ориентированы. И востребованы.

E>> Но если речь идет о web-сервере, который через cgi-генерирует контент для клиентов, или о web-сервисе, который через cgi обрабатывает SOAP-запросы, то прикладной код cgi для адаптации к кластеру может не потребовать никаких модификаций. Потребуется только web-сервер, который умеет балансировать нагрузку на рабочие узлы кластера.


AVK>Если речь только о том чтобы показать html-страничку то да, только на таких задачах обычно особой проблемы с производительностью нет. Вот только чаще всего эти странички связаны с БД, о чем смотри выше


Как раз такие проблемы при росте числа клиентов быстро появляются. Особенно если речь идет о web-сервисах, которые какие-то услуги предоставляют, а не простой html отдают. И для соединений SSL используется. Если приходится по тысяче запросов в секунду обрабатывать, то здесь даже парсинг/генерация XML-я в SOAP-е сказываться начинает. И доступ к БД здесь может быть не так критичен. Особенно, если делать запросы в разные БД: в одну для получения статуса и провайла клиента, в другую для выполнения запроса, в третью для логирования операции. Но это уже опять совсем другая история.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re[16]: Как-бы продолжение...
От: AndrewVK Россия http://blogs.rsdn.org/avk
Дата: 28.02.05 10:29
Оценка:
Здравствуйте, eao197, Вы писали:

AVK>>Если задача идеально параллелится, то да, кластер подходит. Но есть тут одна засада — такие задачи нечасто встречаются.


E>Ну, это сильно зависит от предметной области. Например, в web-приложениях такое сплошь и рядом


Не сплошь и не рядом. Те веб-приложения, которые требуют кластера, как правило под собой имеют БД. О которой я уже писал, но ты все поскипал.

E>Ну как же не подходит , вот же:

E>

E>Итак — есть у нас некий сервер. Функционал у него такой — клиент к нему обращается первый раз, модифицирует состояние на сервере, потом еще раз модифицирует. Ну и в итоге через какое то, довольно продолжительное время отключается.


E>Ну прям как обычный web-сервер описывается .


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

E> Например, для обслуживания халявных почтовых ящиков. Или поисковик. А такие задачи хорошо решаются с помошью кластеров, google это доказал.


У google как раз тот самый случай, когда имеется редко меняющееся хранилище, которое легко реплицировать на узлы кластера. Кроме того google специально под кластер затачивался.

AVK>>Если речь только о том чтобы показать html-страничку то да, только на таких задачах обычно особой проблемы с производительностью нет. Вот только чаще всего эти странички связаны с БД, о чем смотри выше


E>Как раз такие проблемы при росте числа клиентов быстро появляются.


У тебя живой пример перед глазами — rsdn. Нагрузки, создаваемые asp.net приложениями просто таки ничто по сравнению с нагрузками, создаваемыми сиквелом. Так что если все сделать по примитивной схеме, без переписывания кода, раскидывание его по кластерам с LB ничего не даст.

E> Особенно если речь идет о web-сервисах, которые какие-то услуги предоставляют,


И веб сервисы тоже у нас есть. И там картина еще более разительная — все ресурсы жрет сиквел.
... << RSDN@Home 1.1.4 beta 4 rev. 344>>
AVK Blog
Re[17]: Как-бы продолжение...
От: eao197 Беларусь http://eao197.blogspot.com
Дата: 28.02.05 10:41
Оценка:
Здравствуйте, AndrewVK, Вы писали:

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


AVK>>>Если задача идеально параллелится, то да, кластер подходит. Но есть тут одна засада — такие задачи нечасто встречаются.


E>>Ну, это сильно зависит от предметной области. Например, в web-приложениях такое сплошь и рядом


AVK>Не сплошь и не рядом. Те веб-приложения, которые требуют кластера, как правило под собой имеют БД. О которой я уже писал, но ты все поскипал.


Поскипал, потому, что по поводу БД согласен.
... << RSDN@Home 1.1.4 beta 3 rev. 185>>


SObjectizer: <микро>Агентно-ориентированное программирование на C++.
Re: Learning to fly - McSeem2 - part1
От: kig Россия  
Дата: 28.02.05 14:57
Оценка:
Здравствуйте, McSeem2, Вы писали:

[]

MS>В те времена профессия Ситемный Программист — было неимоверно круто. Инсталляция операционной системы ОС-ЕС (на самом деле IBM OS/360) занимала пару недель (!) напряженной работы


Зачем так молодежь то пугать? От силы сутки, и то, если надо было что-то нетрадиционное ваять — типа режима RT (Real Time) в MVT6. А так, перегенерация системы по готовому плану + довключение новых фичей, а его после генерации ни кто не убивал, занимал часы.
Часть 4 - борьба за русский язык
От: Pavel Dvorkin Россия  
Дата: 24.06.05 12:51
Оценка: 93 (16)
#Имя: FAQ.Learningtofly.PavelDvorkin.part4
Мемуары мои вызывали определенный интерес, судя по оценкам. Решил написать еще немного.

Речь пойдет о моих мытарствах в освоении вывода текста на русском языке...

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

Так что вопрос кодировки не стоял перед нами вообще. И о том, что один символ — это один байт, мы тоже не знали, так как и байтов тоже никаких еще не было. Были 45-разрядные ячейки (слово "бит" точно существовало, но говорили "разряд" — не иначе как тяжелые последствия борьбы с низкопоклонством перед Западом . Сколько символов в этой ячейке хранилось и как они там кодировались — я и до сих пор не знаю.

Зато другое знать обязаны были все. Необходимо было уметь читать перфокарты. О, это было не такое простое искусство. Во-первых, на 80-колоночной перфокарте почему-то использовались только 45 колонок. Во-вторых, набивка была не поколоночная, а построчная, по 7 бит ("разрядов" на символ.

45 на 7 как-то не очень хорошо делится, как легко заметить. И действительно, на перфокарте некоторые столбцы никогда не пробивались. Разобраться в таких условиях, где один символ заканчивается, а другой начинается — так просто не получится. Нужна полностью пробитая перфокарта ("читалка") . Эта читалка разграфлялась шариковой авторучкой вертикальными линиями , а потом столбцы, принадлежащие данному символу, закрашивались тушью или акварелью. Наложишь ее на свою перфокарту, посмотришь на просвет, свернешь в уме двоичное число в восьмеричное — и все дела!

Кстати, коль уж о перфокартах речь зашла, не могу не рассказать и о том, как я впервые ее исправлял. В общем, один из символов был не тот, что нужно. Новые дырки прорезались без труда с помощью бритвенного лезвия, а как быть с ненужными дырками ? Спросил кого-то, говорят — заклей. Я собрался было клей искать и думать, как ее правильно заклеивать, но все оказалось намного проще. Просто надо было кусочек конфетти вставить в дырку и слегка пригладить. Хотите верьте, хотите — нет, а держалось как влитое! Правда, все же мы обычно после таких действий перфокарту все же дублировали. Устройство для дублирования носило неофициальное название "крокодил" и шум от него был очень хороший.

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

Но я отвлекся. Я ведь обещал про русский язык написать. На БЭСМ-6 с ним проблем никаких не было. Просто на перфокарте пробивались дырочки, а поскольку их было максимум 12, то хватило бы места и для грузинского с армянским, если бы понадобилось . Так что нас ничего не беспокоило, и о том, что 1 символ == 1 байт, мы по-прежнему не знали.

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

Так я впервые узнал о кодировке. Называлась она EBCDIC, в отечественном варианте ДКОИ-8 в нее добавили русские буквы. Тому, кто их туда добавил, надо бы при жизни памятник поставить, настолько простое и элегантное решение он нашел. Тем русским буквам, которые не имеют аналогичных по начертанию латинских (Б,Ц,И...) были присвоены свои коды. Что же касается тех букв, у которых есть аналогичная по начертанию латинская (А,М,Р) — решили просто — и так сойдет, зачем еще какие-то коды им добавлять ? Таким образом, были буквы русские, латинские и русско-латинские — универсальные, так сказать . Хочешь — думай. что это русская "В" (ве), а хочешь — что латинская "B" (бэ).

Как в таких условиях люди писали программы обработки текста — для меня до стх пор загадка. Я их не писал, а занимался расчетами, поэтому максимум, что мне требовалось — уметь выводить на печать текстовые строки. Это труда не составляло, а посему ДКОИ-8 никаких возражений у меня не вызывала.

Пришла пора пересесть на СМ ЭВМ. Здесь, слава богу, ДКОИ-8 не было. Здесь я познакомился с КОИ-7, и нельзя сказать, что это знакомство не оказало влияния на мою психику .

Но по порядку. На СМ-4 работала операционная система ОС РВ, урожденная RSX-11. В ходе ее преобразования в ОС РВ ASCII-7 был заменен на КОИ-7, и вот как это было сделано.

Понятно, что в 7 бит (кто и зачем это придумал — до сих пор не знаю) уложить можно либо англиский строчный и заглавный, либо английский и русский, но только одного регистра. В RSX-11 были английские буквы обоих регистров — о локалах тогда и речи не было. При переделке ее в ОС РВ латинские строчные буквы переделали в русские заглавные, упорядочив их, естественно, по латинскому алфавиту (АБЦДЕ...) и добавив лишние буквы в конце. Проще говоря, на экране дисплея символ с соответствующим кодом изображался как русское "Б", а не латинское "b". Изображения символов в те времена вшивались в дисплей намертво, аппаратно, об их изменении и речи не могло быть.

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

В общем, все было прекрасно, пока однажды не понадобилось мне загрузить вместо ОС РВ оригинальную RSX-11. Загрузил, и тут же увидел на своем дисплее странное сообщение

ФИЛЕ НОТ ФОУНД

RSX-11 просто решила вывести это сообщение строчными буквами. Не знаю, почему, видимо, ей так лучше показалось. Но советский дисплей вместо презренных латинских строчных букв вывел добротные русские заглавные, вот и все!

Разобравшись с этим ФИЛЕ и малость попривыкнув к нему, я уже совершенно спокойно воспринял следующее сообщение

ДЕЖИЦЕ НОТ РЕАДЫ

и тут же вызвал инженера, который этот ДЕЖИЦЕ и начал чинить.

Пришла пора IBM PC. Не все, наверное , знают, что на заре его существования (случайно совпавшим с концом советской власти у нас пытались делать его клоны — ЕС-1840, 1841, Искра-1030. Лучше, конечно, их бы не делали вообще, но к счастью, это не долго продолжалось. Все же десяток Искр-1030 попал в наш университет, и мне пришлось с одной из них иметь дело. Здесь с русским языком дело обстояло еще интереснее.

КОИ-7 (а также КОИ-8, с которым я имел дело на Ямахе) имел русские буквы, упорядоченные по латинскому алфавиту. Писать программы текстовой обработки при таких условиях, сами понимаете, радость небольшая, и вот на Искре-1030 решено было этому положить конец!

Какие-то деятели разработали кодировку, в которой все было замечательно. Все 32 русские заглавные и 32 строчные буквы в ней были, упорядочены они были по русскому алфафвиту, без дырок, и за буквой 'Я' сразу следовало 'a'. В общем, жить бы и радоваться. По-видимому, от радости они свою кодировку даже оформили как ГОСТ, а в те времена с ГОСТами не шутили. Не уверен, что этот ГОСТ отменен, так что, возможно, мы и сейчас все его нарушаем.

Все было хорошо, одно только маленькое "но" было. Чтобы впихнуть эти 64 символа, да еще подряд, авторы кодировки ГОСТ затронули область, принадлежащую символам псевдографики. После того, как на этой Искре-1030 я первым делом стер русскую пародию на MS-DOS, поставил нормальную MS-DOS 3.3 и запустил Нортон Командер (предшественник FAR'а), он немедленно изобразил мне свои панели с рамочкой из букв "щ" или "ы", не помню уж точно. Впрочем, в углах этой рамочки были, естественно, другие буквы. Зрелище не для слабонервных, я вам скажу. А программ без псевдографики тогда практически не было, надо же как-то оформлять экран. В общем, кодировка ГОСТ быстро канула в небытие.

Остальное большинству известно. На смену пришла 866 кодировка (кстати, ее называли альтернативной — кодировке ГОСТ, естественно). И лишь с появлением Windows и кодировки 1251 стало возможным как-то перевести дух. Впрочем, как сказать. Помню, как я пытался строчную букву "я" запихнуть в меню в программе для Windows 3.1. Что ни делал — general protection fault (по-нынешнему — access violation). Причина простая — ее код 255 . Так и не смог ее туда вставить, пока на Windows 95 не перешел.

А потом... Потом появился Интернет, и, казалось бы, давно ушедшая КОИ-8 вернулась обратно со всеми своими проблемами. А потом появился Юникод. Впрочем, это всем и так хорошо известно.
With best regards
Pavel Dvorkin
Re: Часть 4 - борьба за русский язык
От: alexeiz  
Дата: 24.06.05 18:41
Оценка: 6 (1)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Мемуары мои вызывали определенный интерес, судя по оценкам. Решил написать еще немного.


PD>Речь пойдет о моих мытарствах в освоении вывода текста на русском языке...


А вот история еще одной борьбы: http://www.rdos401.org/
Re[2]: Офтоп
От: Left2 Украина  
Дата: 25.06.05 09:04
Оценка:
MS>Я его уже до "Др" заслушал...
MS>"А молодой пожарный не умеет плавать, он с этой бабой утонул..."
MS>Кстати, drdom.ru опять поднялся.

Решпект!
Мы Венечку тоже уважаем
... << RSDN@Home 1.1.4 beta 7 rev. 447>>
Re: Часть 4 - борьба за русский язык
От: mihoshi Россия  
Дата: 01.07.05 11:53
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Остальное большинству известно. На смену пришла 866 кодировка (кстати, ее называли альтернативной — кодировке ГОСТ, естественно). И лишь с появлением Windows и кодировки 1251 стало возможным как-то перевести дух. Впрочем, как сказать. Помню, как я пытался строчную букву "я" запихнуть в меню в программе для Windows 3.1. Что ни делал — general protection fault (по-нынешнему — access violation). Причина простая — ее код 255 . Так и не смог ее туда вставить, пока на Windows 95 не перешел.


Кстати, буржуйская программа Neverwinter Nights от вида русской буквы "я" падает до сих пор...
Re: Часть 4 - борьба за русский язык
От: SchweinDeBurg Россия http://zarezky.spb.ru/
Дата: 02.07.05 09:18
Оценка: 18 (1)
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Помню, как я пытался строчную букву "я" запихнуть в меню в программе для Windows 3.1. Что ни делал — general protection fault (по-нынешнему — access violation). Причина простая — ее код 255 .


А я "победил" — ее нужно было восьмеричным кодом задавать. Для ресурсов это по крайней мере работало (проверял на MS и Борланде).
[ posted via RSDN@Home 1.1.4 beta 7 r501, accompanied by Metallica — Hero Of The Day ]
- Искренне ваш, Поросенок Пафнутий ~ ICQ#116846877
In Windows, there’s always a catch… © Paul DiLascia
Re: Часть 4 - борьба за русский язык
От: O-Sam Россия  
Дата: 28.10.05 17:59
Оценка: -1
PD>Пришла пора IBM PC. Не все, наверное , знают, что на заре его существования (случайно совпавшим с концом советской власти у нас пытались делать его клоны — ЕС-1840, 1841, Искра-1030. Лучше, конечно, их бы не делали вообще...

Звездёж и провокация
Re[2]: Часть 4 - борьба за русский язык
От: sfsoft Россия  
Дата: 20.01.06 19:17
Оценка:
SDB>А я "победил" — ее нужно было восьмеричным кодом задавать. Для ресурсов это по крайней мере работало (проверял на MS и Борланде).

На Борланде до сих пор косяк с этой буквой. Достаточно на delphikingdom зайти...
Re: Часть 4 - борьба за русский язык
От: incognitus  
Дата: 08.02.06 10:51
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>А потом... Потом появился Интернет, и, казалось бы, давно ушедшая КОИ-8 вернулась обратно со всеми своими проблемами. А потом появился Юникод. Впрочем, это всем и так хорошо известно.


Прокомментирую спустя полгода

Учитывая, что кроме русского и английского языка есть ещё куча других и с разными подвариантами и т.д. и т.п. алфавитный порядок в таблице шрифтов, вообще говоря, совершенно лишняя сущность, даже вредная, провоцирующая к нправильному стилю написания программ. Насколько мне известно, правильно держать специальную таблицу для алфавитной сортировки на каждую локаль, потому что более, в сущности, ни для чего алфавитный порядок не нужен. Это я к вопросу о проблемах КОИ-8.
Re[2]: Часть 4 - борьба за русский язык
От: Pavel Dvorkin Россия  
Дата: 08.02.06 11:27
Оценка:
Здравствуйте, incognitus, Вы писали:


I>Прокомментирую спустя полгода


I>Учитывая, что кроме русского и английского языка есть ещё куча других и с разными подвариантами и т.д. и т.п. алфавитный порядок в таблице шрифтов, вообще говоря, совершенно лишняя сущность, даже вредная, провоцирующая к нправильному стилю написания программ. Насколько мне известно, правильно держать специальную таблицу для алфавитной сортировки на каждую локаль, потому что более, в сущности, ни для чего алфавитный порядок не нужен. Это я к вопросу о проблемах КОИ-8.


Отвечу на комментарий

При таком подходе сравнение символов (и строк, следовательно) вместо

a < b

превращается в

table[a] < table[b]

что означает лишние обращения к памяти (пусть даже кеш). Учитывая то, что эта операция стоит внутри вложенных циклов, такое изменение не есть хорошее дело.

bool b; // вынес сюда, чтобы оптимизатор не выкинул код
int main(int argc, char* argv[])
{
    char* p1 = "abcde";
    char* p2 = "abcde";


    int i, j;

    DWORD dwTime1 = GetTickCount();
    for ( i = 0; i < 100000000; i++)
        for ( j = 0; j < 5; j++)
            b = p1[j] == p2[j]; // специально сравниваю посимвольно
        
    DWORD dwTime2 = GetTickCount();

    printf("%d\n",dwTime2 - dwTime1);

    return 0;
}


Время в релизе — 922 мсек.

А теперь так


    char* p1 = "abcde";
    char* p2 = "abcde";
    char pos[256];
    pos['a'] = 0;
    pos['b']= 1;
    pos['c']= 2;
    pos['d']= 3;
    pos['e']= 4;


    int i, j;

    DWORD dwTime1 = GetTickCount();
    for ( i = 0; i < 100000000; i++)
        for ( j = 0; j < 5; j++)
            b = pos[p1[j]] == pos[p2[j]];
        
    DWORD dwTime2 = GetTickCount();

    printf("%d\n",dwTime2 - dwTime1);

    return 0;


и имеем 2594 мсек, т.е почти трехкратное замедление.
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.