Избранное

Позднее Ctrl + ↑

Ощущения от SL-DZ 1200

Вчера во Франкфурте мне довелось поиграть на Technics SL-DZ 1200 в магазине, где они продавались.

Я не специалист в игре на виниле, но мне кажется, что они его изображают довольно правдоподобно. Однако я рассчитывал на то, что они объединят в себе все положительные качества и винила, и CD. На деле же оказалось, что удобство использования близко к нулю, а всё положительные эмоции сводятся к «нифига себе, оно само крутится

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

Другая глупость. Для реверса есть кнопка Instant change, что можно условно назвать CDJ Mode — при включении реверса трэк начинает воспроизводиться задом наперёд мгновенно. Однако это распространяется только на реверс — кпонка Play/Pause продолжает работать в «виниловом» заторможенном режиме. Как говорится, мелочь, а неприятно.

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

Итого: две самые важные функции — cue и pitch bend — реализованы криво, а многие другие функции могли бы быть существенно полезнее при чуть-чуть более человеческой реализации.

Кстати, mp3 с моей SD-карты ему считать так и не удалось по неизвестным причинам.

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

Автообновление в e2: технология

Я уже писал о том, как работает автообновление в e2. Однако там я говорил о пользовательском experience, а не о технической реализации. Сегодня расскажу о том, как это всё работает изнутри. (Сразу скажу, что работает это весьма успешно, несмотря на то, что реализовано очень коряво.)

Стержнем всей системы является файл verlog.txt, который я тут усердно веду, вписывая в него каждое изменение. Эта страница на сайте e2 генерируется именно на базе файла verlog.txt. Помимо текстового описания обновлений в нём содержится информация о том, какие файлы изменились в данной версии (если этого не указано, значит изменился только core.php). Когда e2 обращается к серверу за информацией о доступных обновлениях, он передаёт ему свою текущую версию, а сервер отвечает куском верлога от его версии до последней доступной.

Например, вы пытаетесь обновиться с v1099; последняя доступная версия сейчас — v1109. Вот, посмотрите, что выдаёт сервер. Если хотите, можете это unserialize’нуть и print_r’нуть. Дак вот, теперь e2 знает, что качать. Сами файлы последнего дистрибутива всегда лежат по адресу e2.ilyabirman.ru/download/updates/путь-к-файлу. Если вы вдруг хотите посмотреть, как в последнем дистрибутиве выглядит design_single_note.php, то возьмите и посмотрите. Теперь e2 попытается скачать все файлы, которые изменились между вашей версией и последней доступной. Если хотя бы один файл скачать не удалось, либо скрипту осталось выполняться меньше 5 секунд, то обновление отменяется. Если же всё хорошо, то старые файлы заменяются новыми.

После этого начинается самое интересное. При генерации следующей страницы e2 видит, что его версия больше той, которая прописана в реестре (при установке и после окончания обновления движок прописывает в реестр собственную версию). Это значит, что новое ядро выполняется в старой среде. Тогда запускается служба perform_update, задача которой состоит в том, чтобы выполнить все остальные действия по обновлению e2: изменить структуру БД и реестра или, например, удалить файлы, которые больше не нужны. Но откуда она знает, что именно нужно делать?

Дело в том, что эта служба сама уже выполняется из нового core.php. А каждый core.php, так уж получилось, знает, чем он отличается от всех предыдущих. Я знаю, что это коряво, но работает — и это главное. То есть, ещё раз, в самой службе perform_update просто-напросто написан примерно вот такой код:

...
if ($from < 894) { /* Делаем одно /* }
if ($from < 932) { /* Делаем другое */ }
if ($from < 1026) { /* Делаем третье */ }
...

Поскольку такого рода изменения нужно вносить не очень часто, то эти строки не так уж сильно увеличивают размер core.php, но всё-таки увеличивают. Начиная с версии v1027 e2 больше не умеет автообновляться с версий, выпущенных до Release 1:

v1027. e2 больше не будет автообновляться с pre-release-версий (то есть, если у вас стоит e2 v850 и более ранних, то обновляться теперь придётся вручную). Это позволило выкинуть из кода около 9 килобайт мусора, который оставался только для возможности такого обновления. Просто предполагается, что это никому давно не надо.

Напомню, что система обновления в e2 работает начиная с v294. Для диапазона v294...v850 9 килобайт — это не так страшно.

После того, как все эти if’ы пройдены и все изменения сделаны, в реестр прописывается новая версия e2, поэтому следующая генерация страницы уже не приведёт к вызову службы perform_update.

Всё это очень хорошо до тех пор, пока не возникнут какие-нибудь проблемы.

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

Во-вторых, проблемы могут возникнуть во время работы perform_update. Например, несколько if’ов были успешно пройдены, а потом в каком-нибудь произошла ошибка. В этом случае в реестре останется прописана старая версия e2, поэтому при следующем вызове все if’ы, включая успешно пройденные, будут проходиться заново. Это почти наверняка не страшно, так как там не делается никаких действий, которые нельзя было бы сделать 2 раза подряд (например, если дважды записать в реестр одно и то же значение, хуже никому не будет, а дважды добавить в таблицу одну и ту же колонку просто не даст сама СУБД). Но это очень коряво.

В будущих версиях я думаю немного улучишить всю эту схему. Во-первых, я хочу, чтобы код для perform_update не входил в core.php, а скачивался с сервера обновлений вместе с самими новыми файлами. Потому, что в ядре ему делать нечего. Во-вторых, я хочу, чтобы e2 вёл журнал процесса обновления и, в случае, если он был прерван, мог продолжить его с того же места. В-третьх, я хочу, чтобы в ситуации, когда движок находится где-то в середине процесса обновления, все режимы кроме login и все службы кроме login и perform_update падали в STOP, а perform_update выполнялась только если пользователь залогинен.

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

Так что вот, учитесь на чужих ошибках, пока дают!

Знак доллара

В новом параграфе Лебедев пишет, что лучший знак рубля — сокращение «руб.», написанное через пробел после числа. С этим трудно не согласиться.

Если бы он ещё понял, что знак доллара нужно ставить перед числом без пробела, так как он не является сокращением «долл.», цены бы ему не было.

Ну, вы ведь знаете, что Лебедев утверждает, будто по-русски нужно писать не «$100», а «100 $»?

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

Лебедев не понимает, что $ — это знак, а не сокращение. Когда написано «$100» я это читаю «сто долларов», и мне нисколько не мешает, что знак $ стоит перед числом. И ни одному человеку в мире это не мешает. Знак доллара всегда и везде ставятся перед числом, и без пробела; если после знака не идёт число, он смотрится дико, и прочитать его в таком подвешенном состоянии невозможно.

Утверждение про «долларов сто» абсолютно несостоятельно. Сам знак $, как я уже сказал, никак не читается, он лишь говорит о том, что последующая сумма указана в долларах. Когда мы читаем текст вслух, слово «долларов» после числа мы произносим лишь для ясности, а не потому, что это мы так читаем знак $. Точно так же, как мы можем вставить в речь ремарки типа «выделено курсивом» или «в скобках», которые отстутвуют в самом читаемом тексте.

Переносить $ вправо из тех соображений, что иначе оно читается «долларов сто» — это примерно как ставить перевёрнутые вопросительные и восклицательные знаки в начале предложения, чтобы сразу знать, с какой интонацией его произносить. А ведь даже сам Лебедев смеётся над испанцами по этому поводу.

Знак $ придумали не мы, и не нам решать, как им пользоваться. Он должен использоваться только так, как это принято в мире и никак иначе. Хочешь писать «чисто по-русски» — не используй этого знака вообще, его нет в русском языке. Иначе с такой адаптацией под русский язык можно ещё, например, начать знаки ® и ™ ставить перед указанием названия, чтобы по-русски читалось удобно: «зарегистрированный товарный знак Кока-кола», «торговая марка Windows Vista».

Но постойте, Лебедев не просто хочет писать $ после числа, он ещё и хочет отделять его пробелом! И вот как он аргументирует своё требование этого уродливого пробела:

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

Логика здесь отсутствует напрочь. Во-первых, как я уже сказал, знаки и сокращения — это разные вещи. Во-вторых, как тогда объяснить тот факт, что «100%» пишется слитно? Следуя указанной логике, можно прийти к абсурдному выводу, что это «всё равно, что писать „100процентов“». Бред, не правда ли?

Поэтому, читая параграфы Лебедева, не всегда стоит верить ему на слово.

Добавлено позднее: Продолжение истории

Загадка

Начну издалека.

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

Например, легковой автомобиль — это такой автомобиль, который легковой. Ага. При этом важно, что легковой автомобиль является автомобилем. Или, например, Красная площадь. Красная площадь — это площадь. Офицерская линейка — это линейка. Фрезерный станок — это станок. То есть, рассказывая о том, что такое фрезерный станок, можно начать со слов «Фрезерный станок — это станок, который...»

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

Понятно, что стол справок — это никакой не стол. Стол справок чаще всего представляет собой кабинку с окошком. Внутри этого стола справок сидит, например, девушка. Её роль в этой всей истории — сидеть и давать справки.

Зададимся вопросом: на чём же она сидит, эта девушка? Что же это такое, на чём она сидит? Ответ вполне очевиден — это стул справок. Однако, если стол справок — это не стол, то ведь может так оказаться, что и стул справок — это вовсе не стул. Но что же это, в таком случае?

Вот так загадка!

Правила снукера

Правка от 27 апреля 2006: Вы могли найти эту заметку, написав в поисковике «правила снукера» или что-нибудь в этом духе, однако текста правил она не содержит. Официальный текст правил WPBSA на английском языке можно прочесть на сайте WorldSnooker.com. Лучший текст правил на русском языке, который автору удалось найти, находится на сайте Global Snooker Centre. В этой заметке написано о том, почему всё же лучше читать правила на английском языке.

На куче русскоязычных сайтов написаны «правила игры в снукер». При этом правилами называют общее описание сути игры, а вовсе не правила. Например, вот я могу написать «правила футбола»:

Правила игры в футбол

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

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

Это, конечно, примерно где-то похоже на что-то, но всё-таки это скорее ответ на вопрос «А чё это мужики с мячиком носятся?», чем Правила игры. Не нужно называть такого рода тексты правилами, а потом ещё и попадаться в поисковиках на первых местах (смайлик).

В чём, собственно, проблема? В том, что в таких поверхностных описаниях часто попадаются ошибки или просто неоднозначные формулировки. Например, в одном из них я встретил вот такую штуку:

Штраф взимается в размере семи очков если:

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

Что значит «подряд»? Одним ударом, или несколькими последовательными ударами? Если одним ударом, то это просто неверно, так как любое число красных, забитых одним ударом, идёт в счёт брейка. Видимо, имеется в виду несколько последовательных ударов. Well, в этом случае это верно лишь отчасти: в том случае, когда игрок уже забил красный, но еще не заказал цветной. Однако этот случай рассмотрен в предыдущей строке, поэтому упоминать его нет смысла. В случае же, когда игрок уже забил красный и объявил цветной, падение красного в результате следующего удара обойдётся игроку лишь в стоимость цветного (либо 4, если цветной — это жёлтый или зелёный). Другое дело, что если он не случайно уронил красный, а, по мнению судьи, целенаправленно играл красный после уже сыгранного красного (либо фрибола, заменяющего красный). Но эта ситуация довольно плохо описывается фразой «игрок забил несколько красных подряд» и, кроме того, не встречается в природе...

Иногда попадаются совершенно дикие вещи. Например, люди пишут, что «в снукер играют на том же столе, что и в обычный бильярд». В русском языке вообще нет игры, которая бы называлась «бильярд», поэтому «играть в бильярд» — это примерно как «играть в карты»: так говорят, но это не очень верно. Когда говорят в «играть в карты» предполагается, что собеседник либо в курсе о какой именно игре идёт речь, либо это просто не важно. В данном случае это важно, значит предполагается, что читатель знает, о какой именно бильярдной игре идёт речь. Для русскоговорящего читателя «обычный бильярд» скорее всего ассоциируется играемой в каждой второй пивной «Американкой» (русский стол и огромные шары белого цвета, всё что забил — твоё). На русском столе в снукер не играют, это бред. В общем, когда встречаешь такой термин, сразу становится понятно, что текст был бездумно переведён. В оригинале, надо думать, было написано Billiards и переводить это нужно было как «английский бильярд». А это совсем другая игра (которая играется, если я не ошибаюсь, всего тремя шарами).

На второй странице Гугла я нашёл ссылку на гей.ру/лесби. Ничего хорошего от этого сайта ждать не стоило. Гугл нашёл там текст:

Американский пул — игра, главные отличия которой — простота правил (они близки к правилам cнукeрa) и относительная дешевизна столов (они немного меньше по размеру и ниже), что сделало ее непременной принадлежностью любого паба и многих кафе в Европе и Америке

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

В двух-трёх местах удалось найти более-менее внятное описание правил, например вот это, однако там почему-то отсутствует описание такой штуки, как Foul and a Miss. Ну, то есть не совсем отсутствует, есть вот такое замечание (3.3.9):

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

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

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

3.14. Foul and a Miss

The striker shall, to the best of his ability, endeavour to hit the ball on. If the referee considers the Rule infringed, he shall call FOUL AND A MISS unless only the Black remains on the table, or a situation exists where it is impossible to hit the ball on. In the latter case it must be assumed the striker is attempting to hit the ball on provided that he plays, directly or indirectly, in the direction of the ball on with sufficient strength, in the referee’s opinion, to have reached the ball on but the obstructing ball or balls.

  1. After a foul and a miss has been called, the next player may request the offender to play again from the position left or, at his discretion, from the original position, in which latter case the ball on shall be the same as it was prior to the last stroke made, namely:
    1. any Red, where Red was the ball on,
    2. the colour on, where all Reds were off the table, or
    3. a colour of the striker’s choice, where the ball on was a colour after a Red had been potted.
  2. If the striker, in making a stroke, fails to first hit a ball on when there is a clear path in a straight line from the cue-ball to any part of any ball that is or could be on, the referee shall call FOUL AND A MISS unless either player needed snookers before, or as a result of, the stroke played and the referee is satisfied that the miss was not intentional.
  3. After a miss has been called under paragraph 2 above when there was a clear path in a straight line from the cue-ball to a ball that was on or that could have been on, such that central, full-ball, contact was available (in the case of Reds, this to be taken as a full diameter of any Red that is not obstructed by a colour), then:
    1. a further failure to first hit a ball on in making a stroke from the same position shall be called as a FOUL AND A MISS regardless of the difference in scores, and
    2. if asked to play again from the original position, the offender shall be warned by the referee that a third failure will result in the frame being awarded to his opponent.
  4. After the cue-ball has been replaced under this Rule, when there is a clear path in a straight line from the cue-ball to any part of any ball that is or could be on, and the striker fouls any ball, including the cue-ball while preparing to play a stroke, a miss will not be called if a stroke has not been played. In this case the appropriate penalty will be imposed and
    1. the next player may elect to play the stroke himself or ask the offender to play again from the position left, or
    2. the next player may ask the referee to replace all balls moved to their original position and have the offender play again from there, and
    3. if the above situation arises during a sequence of miss calls, any warning concerning the possible awarding of the frame to his opponent shall remain in effect.
  5. All other misses will be called at the discretion of the referee.
  6. After a miss and a request by the next player to replace the cue-ball, any object balls disturbed will remain where they are unless the referee considers the offending player would or could gain an advantage. In the latter case, any or all disturbed balls may be replaced to the referee’s satisfaction and in either case, colours incorrectly off the table will be spotted or replaced as appropriate.
  7. When any ball is being replaced after a miss, both the offender and the next player will be consulted as to its position, after which the referee’s decision shall be final.
  8. During such consultation, if either player should touch any ball in play, he shall be penalised as if he were the striker, without affecting the order of play. The ball touched shall be replaced by the referee, to his satisfaction, if necessary, even if it was picked up.
  9. The next player may ask if the referee intends to replace balls other than the cue-ball in the event that he should ask for the stroke to be played from the original position, and the referee shall state his intentions.!!

В частности, я не понимаю как трактовать пункт 5. Есть ли продвинутые граждане, способные объяснить мне это? Буду очень рад вам в комментариях.

Для тех, кто ждёт морали: мораль у заметки отсутствует, я её просто писал, тыкаясь в результаты поиска по запросу «правила снукера» и удивляясь тому, что находил.

А сейчас надо бы уже пойти спать.

Завтра

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

Мы с Лёшей Копыловым задумали дать исчерпывающее определение понятию «завтра». А ограничение такое: нельзя использовать показания часов и ссылаться светлоту суток. То есть, например, сказать, что завтра наступает в ближайшее светлое время суток после 3 часов ночи — нельзя.

Вот что у нас получилось (сразу скажу, что задачи придумать как можно более простое определение перед нами не стояло, скорее даже наоборот):

  1. Понятие завтра описывает ограниченный промежуток времени.
  2. Завтра относительно и имеет определённый смысл только в конкретный момент, когда это слово произносится.
  3. Завтра, понимаемое относительно текущего момента, заканчивается, когда наступает завтра, понимаемое уже относительно момента сразу после наступления завтра, понимаемого снова относительно текущего момента (то есть то, что завтра — завтра, сегодня ещё не завтра).
  4. Завтра для человека наступает в момент рождения.
  5. Если сон, продолжительностью более N часов, завершился менее, чем через 24-N часов, после завершения предыдущего такого сна, то этот сон считается непереходным; в противном случае сон считается переходным.
  6. Завтра для человека наступает после ближайшего (в будущем) переходного сна.
  7. Завтра для человека наступает не позднее, чем через 24 часа после наступления предыдущего завтра.
  8. N зависит от человека, и у каждого своё; среднее N можно считать равным 4.
  9. Когда термин «завтра» используется в разговоре нескольких людей, то он описывает промежуток времени, когда у каждого из них завтра наступит ровно по 1 разу.

Эксперимент провалился

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

Зато мне дали поиграть на виниле... Только сегодня я окончательно понял, почему именно винил так рулит. Ощущения совершенно бесподобные (симулятор в CDJ-1000 — совсем не то). Жалко, что виниловый резак стоит $9000. Теперь мне стало интересно, действительно ли SL-DZ 1200 «feels like spinning wax on a classic 1200»?

Update: Хорошая фотография SL-DZ 1200

Update 2: А треком дня сегодня становится

  • Hypersonic — Every Single Sound

Делаем из ноутбука DJ-установку

Я тут подумал, что самым практичным DJ-решением является игра с ноутбука в Traktor DJ Studio. Потому, что mp3 и всё под рукой. И потом, один ноутбук весит меньше, чем будет весить пачка CD, если я нарежу всё, что у меня есть. В общем, решил я заняться этим вопросом.

Во-первых, встроенная звуковая карта всего лишь стерео, поэтому придётся подрубать внешнюю, многоканальную. Хорошо, что у меня такая есть. Возможно, для ноутбука более удачным решением была бы PCMCIA-карта, но её ведь надо покупать. И потом, учитывая как у меня в ноутбуке расположен PCMCIA, провода, торчащие оттуда, будут мне мешать, а USB-карту можно поставить куда угодно.

Во-вторых, клавиатура на ноутбуке совсем не похожа на нормальную, и, если печатать я умею на обеих, то играть — пока только на нормальной. Нужно было придумать новую раскладку для ноутбука. Важно то, что в клубе ноутбук можно подключить к внешнему пульту, поэтому встроенный в Трактор пульт не понадобится. Поэтому я хотел отделить функции дек от функций микшера. Получилось вот что (click to enlarge):

Раскладка

То, что написано курсивом, означает, что нужно нажать Ctrl. Поиграл — более-менее нормально.

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

Бесполезная система

Не могу не украсть у Болка, укравшего с Cooler:

Источник: «Персональные ЭВМ в инженерной практике». — М.:Радио и связь, 1989г.

«...Одним из примеров громоздкой и, по мнению авторов, бесполезной надстройки является интегрированная система WINDOWS фирмы Microsoft. Эта система занимает почти 1 Мбайт дисковой памяти и рассчитана на преимущественное использование совместно с устройством типа „мышь“... ...Таким образом, читатель уже понял, что среди надстроек над ДОС бывают довольно бесполезные системы, которые только выглядят красиво, а на самом деле отнимают время пользователя, память на дисках и оперативную память ЭВМ.

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

Ранее Ctrl + ↓