# Downgrade #22

uav1606

Журнал "Downgrade" #22

### От редактора.


Приветствую, уважаемые читатели.

Итак, перед вами 22-й номер журнала.

Материала на этот раз набралось достаточно много, хотя уложиться в 4 номера в год всё равно не получается...

У нас два новых автора – flaz14 и Олег Павлов. Добро пожаловать в авторский коллектив! Жду ваших статей и в будущих номерах журнала.

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

Напоминаю, что свои статьи, замечания, предложения можете присылать на мой e-mail uav16060 [golovastik] mail.ru

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

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


uav1606


### Новости, события, комментарии


50 лет Лого

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

На данный момент существует более 200 различных реализаций Лого под самые разнообразные платформы – MS-DOS, Windows, Linux и др.

В честь юбилея Google выпустил специальный дудл (https://g.co/doodle/jr54y7?ds=cl) – мини-игру, где Вы должны управлять кроликом, используя логоподобный язык.


Закрывается мессенджер AIM

AOL Instant Messenger – программа обмена мгновенными сообщениями от America Online. Изначально мессенджер был интегрирован в программу AOL Desktop, а в мае 1997 вышла и отдельная версия для Windows. Пик популярности AIM пришёлся на 1990-е годы. И вот сейчас, спустя 20 лет, вице-президент компании Oath Inc. (преемницы AOL) заявил, что с 15 декабря 2017 года сервис прекращает свою работу. Официальное заявление здесь: https://aimemories.tumblr.com/post/166091776077/aimemories.


Nintendo Game Boy возвращается

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

Производством «реинкарнации» займётся сторонняя компания Hyperkin. Обновлённая консоль получит алюминиевый корпус, новую подсветку, возможность заряда через USB-C и ещё несколько улучшений. В отличие от других ремейков классических приставок, Ultra Game Boy будет поставляться «пустым», т.е. без предустановленных игр, которые придётся покупать отдельно.

Ожидаемая цена – в пределах $100.

Подробнее здесь: https://www.cnet.com/news/the-game-boy-comeback-youve-always-wanted-is-here-at-ces/.


Будут опубликованы исходники компьютера Apple Lisa

Как сообщили в Computer History Museum, им удалось восстановить исходные коды ОС и некоторых приложений для Lisa – первого компьютера Apple с графическим интерфейсом, выпущенного в 1983 году.

Исходники будут опубликованы в 2018 году – после проверки и одобрения Apple.

Оригинальная новость: https://groups.google.com/forum/#!msg/lisalist/aIo6cNu54xM/_Ck_CsmSBgAJ.


Американец установил новый рекорд в «Тетрис»

Речь идёт о версии игры для приставки NES, где нужно на время заполнить 100 линий.

26 декабря Jonas Neubauer (NubbinsGoody) быстрее всех в мире – за 2 минуты – набрал 300 000 очков, а на следующий день  установил и основной рекорд, возглавив таблицу на сайте https://www.speedrun.com/tetrisnes

Впрочем, рекорд продержался недолго – сейчас NubbinsGoody занимает второе место в таблице после некоего Koryan.


Gentoo Linux на 486-м компьютере

Как рассказал инженер Ео Хен Мен из Сингапура в своём блоге, ему удалось запустить относительно современный дистрибутив Gentoo Linux на компьютере с  процессором AMD 5x86 и 64 МБ оперативной памяти.

Для этого ему пришлось перекомпилировать ядро и несколько программ, а также преодолеть множество других трудностей.

Подробнее здесь: http://yeokhengmeng.com/2018/01/make-the-486-great-again/.


Братья Марио снова на экранах

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

В проекте примет участие Сигэру Миямото (который, собственно, и создал Марио), а также студия Illumination («Гадкий Я» и пр.).

Пока нет никаких подробностей ни о сюжете, ни о дате выхода мультфильма.


ASWDF-2017

28 октября в Москве прошёл очередной Abandoned Software & Downgrade Fest.

Прозвучали доклады об OS/2, компьютере Amiga, старых офисных программах и многом другом.

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

В общем, как всегда, было много познавательного и интересного.

Посмотреть фото и прочитать отзывы о фестивале можно по этой ссылке: http://truedowngrade.link/aswdf2017.html.


Появилась в продаже SNES Classic Edition

Это ремейк игровой консоли SNES от Nintendo.

В комплект SNES Classic Edition входит HDMI-кабель, два джойстика и 21 игра, включая Donkey Kong Country, Final Fantasy III, Super Mario World, Legend of Zelda, Super Metroid и многие другие.

Цена консоли составила $80.

Подробнее о приставке здесь: https://www.nintendo.com/super-nes-classic/.


Windows Live Messenger снова в строю

Энтузиасты создали альтернативный (взамен закрытому Microsoft) сервер для Windows Live Messenger. На сайте проекта (https://escargot.log1p.xyz) все желающие могут зарегистрироваться и потестировать этот не очень популярный у нас мессенджер.

Первая версия Windows Live Messenger под названием MSN Messenger появилась ещё в далёком 1999 году. Разные варианты программы распространялись как в виде отдельных продуктов, так и в составе различных ОС от Microsoft. В 2013 служба Windows Live Messenger перестала поддерживаться компанией Microsoft и была объединена со Skype.


NVidia прекращает выпуск 32-битных драйверов

Последней версией с поддержкой 32-битных ОС останется 390.xx. Однако некоторые исправления, связанные с безопасностью, будут выпускаться до 2019 года.

Официальная новость: http://nvidia.custhelp.com/app/answers/detail/a_id/4604/.


Фестиваль «Ретрогейм»

16 и 17 декабря 2017 года в Екатеринбурге в Антимузее компьютеров и компьютерных игр прошёл фестиваль «Ретрогейм», посвящённый старым играм и всему, с ними связанному.

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

Репортаж с фестиваля на YouTube: https://www.youtube.com/watch?v=JiiiWMHrR2g.

Официальный сайт:

http://ретрогейм.рф/


Обзор подготовили:

Вячеслав Рытиков (eu6pc)

uav1606


### Кибернетика и компьютеры


В споре убивается время, а истина рождается в эксперименте


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

По законам диалектики, мы что-то приобрели, а что-то потеряли.

Толпы зомби, попавшие в социальные сети, красноглазые игроманы, анонимное хамство – всё это стало символом тёмной стороны Сети.

С другой стороны – поиск и озарение, доступ к информационному богатству и жизненно необходимой информации. Бесплатные уроки и библиотеки, форумы.

Выбор за каждым.

Давайте  зайдём в информаторий (Интернет),  взглянем на персональные вычислительные машины и роботов сегодняшнего несбывшегося дня глазами наших отцов и дедов.


1. Каков он, ГОМО МЕХАНИКУС?


Потребность в быстрых расчетах исходила из логики развития НТР.

Вот два поразивших меня факта докомпьютерной эры.

Математик Первушин потратил всю жизнь на доказательство «простого» числа, которое пишется всего 19 знаками.

Другой математик, англичанин Шенкс, потратил около пятнадцати лет, чтобы подсчитать число «пи» с 707 знаками.


В массовом сознании нашей страны (а для меня она навсегда останется СССР) робот – это Электроник из знаменитой книги Велтистова.

Конкурсы создателей роботов,  с конца 50-х и до начала 90-х годов, проходили по всем клубам технического творчества нашей великой страны.

Отдельные энтузиасты замахивались на домашних роботов.

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

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

Но проблема «мыслящего робота» оказалась куда сложнее, чем предполагалось.

Сходство и тождественность — принципиально различные понятия.

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

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

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


Системы автоматического проектирования


Растущая экономика требовала наличия грамотных специалистов для решения возникающих технических задач.  И программы – прообразы будущих «Компасов» и «Автокадов».

Это свойство можно запрограммировать, правда, лишь в известных пределах.

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

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

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

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

Мозг Homo mechanicus – это микропроцессор с заложенными в него алгоритмами.

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

1) Достаточно большое количество внешних датчиков.

2) Создание своеобразного искусственного интеллекта, способного решать, как машине поступить в том или ином случае, в зависимости от поставленных перед роботом задач.

3) Скорость и адекватность реакции в ответ на влияние изменения внешней среды.

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

По заложенным в машину программам.

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


2. Программы  и научные комплексы


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


Машинный перевод

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

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

Интеллектор Горохова, по сути, был воплощён в первом коммерческом «Макинтоше», созданном С. Возняком.

Телефон Куприяновича был провозвестником первой американской «Моторолы», где вместо сотовой вышки использовалась радиостанция, подключенная к проводной сети.

Классика – это радио Попова и Маркони.

Ныне количество изобретений на китайском языке побило рекорд выдаваемых патентов в США.

Любой язык, по сути, это цепочка единого логического строя всех без исключения языков.

В 1933 году П.П. Троянский предлагал машину для подбора и печатания слов при переводе с одного языка на другой или на несколько других языков одновременно. Заявка была отклонена, так как реализация подобной идеи далеко опередила своё время.

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

Ведь почти каждое слово в языке имеет по нескольку значений.

Английский глагол быть (to be) имеет около 100 значений!

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

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

Впервые в СССР  в Киеве  в 60-е годы под руководством академика Глушкова производились работы по освоению машиной общения с человеком с помощью речи. И машина вполне логично могла отвечать на вопросы, сформулированные на естественном языке.

Это было компьютерной моделью работы человеческого мозга – персептроном.


Системы автоматического проектирования

Растущая экономика требовала наличия грамотных специалистов для решения возникающих технических задач.  И программ – прообразов будущих «Компасов» и «Автокадов».

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

Цитаты из статьи С. Житомирского из №4 «Техники – молодёжи» за 1963 год «На помощь инженеру приходит машина-конструктор». (Свои «вкратцы» буду выделять жирным шрифтом.)

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

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

Мы вошли в конструкторский зал.

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


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

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

Без труда Света совместила ось захвата с осью шпинделя и начала наносить кинематическую схему. Линейка ей была не нужна – стоило поставить карандашом две точки и нажать кнопку, как между точками появлялась прямая линия. (Меняем рукоятки на кнопки на экране, световое перо – на манипулятор мышь, и видим сегодняшние САПР.)

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

На обычной доске Свете пришлось бы перетереть полчертежа, а тут она быстро сместила одну ось, потом другую, удлинила рычаг, и обработка схемы закончилась. (А это уже следующий шаг в проектировании – работа модели.)

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

Создавался математический макет проектируемого механизма, который реагирует на перемещение отдельных звеньев, как настоящий механизм. Далее с проекта снимались микрофильмы-фотографии. (Заменённые ныне на электронные файлы, воспроизводимые в той же программе.)

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


Работы по автоматическому распознаванию речи

Одной из главных проблем в распознавании речи человека была ограниченность памяти тогдашних ЭВМ.

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

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

Первые исследования отдельных русских фонем провел профессор Л. Л. Мясников в 30–40-х годах ХХ века. Первый реально работающий аппарат для исследования фонем  сделали советские ученые Л. А. Варшавский и И. М. Литвак в 1955 году. Машина не только слушала, но и  воспроизводила речь.

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

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

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

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

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


Прогнозирование на основе больших массивов статистических данных

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

Это прогнозирование погоды и различные  спортивные тотализаторы.

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

И чем больше у нас будет точек контроля параметров, тем с большей вероятностью (хотя и не 100%) мы сможем предсказать эти изменения.

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

Отработав подобные простые  модели, планировалось создавать  прогностические модели на производствах товаров, логистике и грузообороте.


Компьютерный подбор групп и пар по психологической совместимости


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

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

Планировалось создавать при ЗАГСах консультационные службы при психологических конфликтах в семьях и аналоги службы знакомств.

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

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

Первый подобный эксперимент был проведен в Чехословакии в середине 70-х годов и дал очень интересные результаты.

Советский компьютер МИНСК-22 был свахой для 5-6 тысяч пар ранее незнакомых друг для друга людей!

Машина выдавала психологический прогноз о стабильности семейных пар на длительный период по десяткам параметров.

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


3. Конкурсы роботов


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

Первые массовые публикации о роботах, сделанных своими руками, появились в  № 4 «ТМ» за 1957 год.

Робота звали  РУМе,  и был он построен юными умельцами Чкаловской станции юных техников (Московская область). Робот умел немногое – идти в сторону источника света, но он был первым!

В этом же номере читателям рассказывали о понятии «робот».

В 1966 году в журнале был объявлен конкурс роботостроителей. Материалы этого конкурса были опубликованы в  «ТМ» № 11 за 1966 год, а также в №№ 2, 6 и 8 за 1967 год.

Довольно интересной конструкцией, полезной в быту, был робот АРС (Автоматический Робот-Секретарь) калужского изобретателя В. Гришина.

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

Роботы, сделанные умельцами,  играли в шахматы, шашки, домино и карты.

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

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

Дополнительно предлагалось давать справки и в звуке – путём проигрывания закольцованной записи на магнитной ленте.

Жаль, что предложение так и осталось на бумаге. Идею выдвигал в 1968 году Ю. Булатов из г. Ленинграда. В Америке предложение о простых логических обучающих машинах было выдвинуто в 1976 году.

Всё развивается по диалектической спирали.

Ничто не мешает создать подобных роботов в школе сейчас.

Развивающие игры, тематические викторины, справочные системы.

Главное, чтобы эта идея не стала бы очередным поводом для «попила».


4. Дискуссии о будущем кибернетики


Попробую рассказать тезисно об общих направлениях и прогнозах пионеров кибернетики 60-80-х годов.

В 1972 году был опубликован прогноз от американской «РЭНД-Корпорейшн», занимающейся перспективными технологиями и являющейся подразделением Пентагона. Давайте взглянем на него глазами человека той эпохи.


Несбывшееся

1975 – широкое использование простых обучающих машин.

1976 – автоматизированные библиотеки, «просматривающие» публикации и печатающие копии.

1978 – перевод с иностранного языка.

Конец 70-х – начало 80-х – сканирование и опознавание рукописных текстов, тесно связанное с машинным переводом.

1980 – сложные обучающие машины, на уровне профориентации оценивающие предрасположенность  человека к тому или иному виду деятельности.

1980 – первые банки информации,  прообраз Интернета – информаторий.

1982 – машины, способные отвечать на вопросы, заданные в виде печатного текста.

1982 – домашние роботы-уборщики, кухонные роботы, мойщики окон и т.п.

2000 год – понимание машиной речи человека, работа с голоса.

2000-2010 года – оптические процессоры.

2012 – симбиоз машины и человека через прямую связь ЭВМ и мозга.

Академик  В.М. Глушков был более осторожен в прогнозах и относил симбиоз машины и человека к 2020 году.

Идею кибернетического двойника – цифровой копии человека – он относил к первой половине грядущего 21 века.

Небольшая цитата из «ТМ» №8 за 1983 год, описывающая нереализованную программу ОГАС – систему цифрового социализма, убитую Горбачёвым и Ельциным.

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

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


Сбывшееся (хотя бы частично)

Сбывшимся прогнозом стали системы передачи информации по системам спутниковой связи и системы оптоволоконной связи.

Цифровое телевидение было реальностью уже в 80-е годы, но массово стало распространяться только в 2010-х годах.

Цифровое радиовещание, цифровой звук – это тоже реалии 80-х годов.

Лазерный проигрыватель (электрофон) – по сути, специализированный компьютер для изображения и звука.

Немецкими учеными прогнозировалась запись информации в 1990 году лазерным лучом на магнитном и фотографическом слое.

Дистанционное обучение, в том числе  с использованием компьютерных тренажёров, а также прямое обучение на этих тренажёрах.

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

Из статьи  «ТМ» №8 за 1983 год, концепция умного дома: «Кроме того, это «разумное» устройство, имеющее встроенный микрокомпьютер, сможет заняться и хозяйственными делами: с наступлением сумерек зажжёт осветительные приборы, в нужное время включит или отключит подсоединённые к электросети аппараты, укажет кондиционеру желательные в данный момент параметры воздушной среды, просигнализирует об угрозе пожара или утечке газа». Собственно, в этом и состояла концепция умного дома образца 60-х годов.


5. Искусственный интеллект


В 60-е годы вышел ряд книг Н.М. Амосова:  «Моделирование мышления и психики»,  «Моделирование сложных систем», «Искусственный разум», сразу ставших библиографической редкостью. Кроме этого, во многих научных издательствах выходило немало книг, затрагивающих данную проблему. Работая над своим сайтом, я сформировал немаленькую библиотеку (как в бумажном, так и в электронном виде) по темам, затрагиваемым в разделах. :-)

Нейроны мозга, в отличие от машинной логики, работают не по принципу да-нет (0-1), а по принципу суммирования сигналов от поступающих внешних воздействий на организм.

Цитируя Амосова: «Пожалуй, разум есть способность целесообразно реагировать на сложную внешнюю обстановку».

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

Другими словами, машина должна строить достаточно сложные модели и целесообразно воздействовать на внешний мир.

Естественный разум – это моделирующая установка из биологических элементов.

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

При всей сложности современных программ, подобные вопросы не решены до сих пор (строки эти написаны в декабре 2017 года).

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

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

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

Чем сложнее и универсальнее будет машина, тем  больше и критичнее будет вероятность ошибки во время её действий. Цитируя Амосова: «Вероятность ошибок остаётся, поскольку останется ограниченность познавательных возможностей и субъективность суждений».

Собственно, эти вопросы поднимались и дискутировались учёными как в СССР, так и за границей.

Н. Винер опубликовывал статью  «Об обучающихся и самовоспроизводящихся машинах» в № 4 «ТМ» за 1962 год, за полгода до этого академик А.Н. Колмогоров в том же журнале напечатал статью «Автоматы и жизнь», где давались смелые прогнозы развития компьютеров и робототехники на ближайшие полсотни лет.

Логику развития НТР невозможно остановить, а возможно только притормозить, чему мы стали свидетелями при искусственно организованном кризисе 1990 – 2000-х годов.

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

Здесь надо сказать пару слов о математическом обеспечении программирования и конструкции ЭВМ первых поколений.

Любая существующая деталь, машина, явление или событие,  как правило, описывается математической моделью при соблюдении ряда условий.

1 этап: математическая модель явления: должна существовать математическая  теория, описывающая его закономерности в виде формул.

2 этап: исследование этой модели: выбор,  как правило, производится из ряда величин для получения наилучшего значение некоего критерия, являющегося главным в этой модели.

3 этап: переход  от модели к расчётной схеме.

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

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

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

Ещё на первых ЭВМ программисты заметили, что часть подпрограмм (вспомогательных операций) являются стандартными для ЭВМ.

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

Это перевод из десятичной в двоичную, привычную машине, систему исчисления, всё более и более сложные математические функции, управление вводом-выводом информации (перфокарты, магнитные ленты, позднее – магнитные диски – винчестеры).

Следующим шагом  стало создание языков программирования.

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

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

Символами 60-х годов стали алгоритмические языки Фортран и Алгол-60 (68), а в более поздние 70-90-е годы – Бейсик и СИ.

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

Появилась модульность  в конструкции и вычислениях ЭВМ.

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

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

Дальнейшим логическим шагом должно было стать создание открытых  компьютерных систем из подключаемых к материнской плате модулей, и им стал легендарный IBM PC.

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


6. И напоследок  немного юмора эпохи НТР


БИП-БИП. Как ты изменился! Что стало с твоей головой?

ЛЮБОЗНАЙКИН. Я сконструировал для себя электронный сундук, наполненный академическими знаниями. Могу, не задумываясь, ответить на любой вопрос!

БИП-БИП. Вот здорово! А всё-таки ты голову не выбрасывай: ещё пригодится.


Олег Павлов


### Из России с любовью


Название: Тетрис: Из России с любовью / Tetris: From Russia with Love

Год выпуска: 2004

Жанр: Документальный

Перевод: Профессиональный (одноголосый)

Длительность: 59 минут

Ссылка: https://youtube.com/watch?v=DqeWRcrwCQg


Как вы уже, наверное, догадались, сегодня в нашей рубрике речь пойдёт о самой знаменитой и культовой советской игре – «Тетрисе». Одна из немногих, про которую не стыдно сказать: «Она наша!» :-) Без зазрения совести эту игру можно заслуженно поставить в один ряд с балалайкой, матрёшкой, медведем и автоматом Калашникова, как символ нашей Родины.

В номере 12 (см. «История компьютерных игр») мы уже упоминали об этой игре. Теперь же представляем вашему вниманию отдельную картину, посвящённую непосредственно только тетрису.

Фильм перенесёт нас в середину 80-х. Сам Алексей Пажитнов расскажет нам об идее и процессе создании игры.


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


Далее мы узнаем историю борьбы за правообладание «Тетрисом» между такими компаниями, как ELORG, Mirrorsoft, ATARI, Nintendo. Вкупе с советской бюрократической системой – та ещё «Санта-Барбара»...


Из плюсов фильма хочется отметить подробную историю «из первых уст», а также наличие видеоматериалов из того далёкого времени, в том числе и с Алексеем Пажитновым(!). Хэнк Роджерс – один из героев данного фильма, запечатлел на видеокамеру некоторые события из своей поездки в Москву, благодаря чему мы можем погрузиться в ту эпоху и почувствовать «ветер перемен».

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

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


Вячеслав Рытиков (eu6pc)


### Downgrade-каналы


Решил внести свою лепту в статьи uav1606 и поделиться, по моему мнению, интересными YouTube-каналами, частично или полностью посвящёнными тематике downgrade. Часть каналов была найдена самостоятельно в группах ВКонтакте, а с остальной частью я познакомился на форуме Emu-land.


1. Канал brysew

https://www.youtube.com/user/brysew/

Ведущий и создатель канала – Роман  Шабанов. Его цикл видео Remember Classic посвящён воспоминаниям о ретроиграх с различных консолей, таких как Mighty Final Fight, Aladdin, Batman Returns и других.

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


Роман показывает, как сделать картонный бокс к игре Beyond Oasis


2. Канал KonfederatioN

https://www.youtube.com/user/KonfederatioN/

На канале есть шоу под названием «Хрень 2.0», где автор – Кирилл Каланджи – покупает и обсмеивает новодельные китайские приставки и устройства. Но нас интересует ретрогейминг, и с этим тут всё хорошо. Кроме различных топов, на канале есть 12 выпусков программы «СОНЬКА», в которых создатель канала, в свойственной ему манере, вспоминает об играх на первую Sony PlayStation.


В программе «Хрень 2.0» Hamy 4


3. Канал Oleg Kerman

https://www.youtube.com/user/PTAHA747/

Хорошее пособие для всех, кто решился купить себе Sony PlayStation 2. На канале  Олега Кермана есть много полезных видео, таких как «Запуск игр на PlayStation 2 с флешки», «Запуск игр на PlayStation 2 с ПК по сети», «Запуск Free MC Boot на PS2 SCPH 9000X», «Использование PS2 как эмулятора старых приставок» и т.д. Если вы в 2017 году купили себе PS2, то этот канал обязателен к просмотру. Многих инструкций нет в сети или просто многие моменты упущены, а тут автор всё понятно и неспешно разжёвывает и кладёт прямо в рот.


Подробный обзор на ревизии Sony PS2


4. Канал  RGB

https://www.youtube.com/user/MaxPeroff

Хоть у меня и есть в наличии клон ZX Spectrum, но с играми, да и с платформой в целом, я плохо знаком. На помощь мне пришёл канал Retro Game Bestsellers, на котором собраны различные топы игр на «Спектрум». Я не большой любитель топов, но этому каналу, по причине узкой освещённости данной тематике в Ютубе, простительно. Голос приятный, видео короткие. Обзоры игр в топах, по моему мнению, такие, какие и должны быть. Жемчужиной канала является цикл из четырёх видео по сборке Pentagon 128k.


Последний этап сборки и запуск


5. Канал  АЯКС

https://www.youtube.com/channel/UCVUaWWdYYau87nKU3Khdjqg

Самый необычный канал в плане подачи материала. Автор – Александр Киричук – снял не просто обзор на игру Blood от Monolith, а сделал настоящее, как заверяет сам автор, видео-эссе. По качеству видео на высоком уровне, меланхоличный обзор в совокупности с размеренным и подробным описанием делает это видео выделяющимся на фоне остальных обзорщиков. Будем надеяться, что автор не забросит данное занятие и будет радовать нас новым материалом.


Автор во всеоружии


6. Канал  WeAreR2

https://www.youtube.com/user/WeAreR2/

От более старых игр я решил перейти на более новые, и рассказать о канале WeAreR2. Его создатель WildGamer, несмотря на свой возраст, выпускает качественные детальные обзоры, которые по качеству переплёвывают многие именитые и устоявшиеся каналы в ретросреде. В канун наступления 2017 года я, в ожидании качественных новогодних обзоров от других популярных каналов, так их и не дождался, в отличие от WildGamer, который 1 января залил довольно хороший обзор. Главное в видео автора – это ностальгия.

Не та ностальгия, как, допустим, когда кто-то радуется и хвалит какую-нибудь игру, которая что тогда, что тем более сейчас играется ужасно. Тут всё интереснее, автор может рассказать, как он играл в неё тогда, и какие ощущения получает сейчас, разбавляя всё это шутками. Почему я включил данного обзорщика в список? Ну хотя бы за то, что на канале есть интересный материал: история серии The House Of The Dead (в двух частях, примерно по одному часу каждая), обзор дилогии The Suffering, история серии Alone In the Dark, обзор Nitro Family, обзор серии Postal и многое другое.


Кадр из обзора на Condemned


7. Канал SirOldSchool

https://www.youtube.com/user/PlaystationGood/

Отличный канал, отличный ведущий. Хорошая подача, скрупулёзное отношение к деталям и действительно полные большие обзоры. Не рекомендуется тем, кто не любит спойлеры, так как автор проходит всю игру и раскрывает весь сюжет данных игр. На канале уже есть обзоры на серию  Legacy of Kain, Clock Tower, Fatal Frame, Parasite Eve. Сложно рассказывать об этом авторе, проще будет самим увидеть и сделать вывод, подходит вам данный материал или нет. Кроме различных игр с Sony PlayStation, на канале есть довольно интересные обзоры на такие фильмы ужасов, как Demoni,  Suspiria, Phenomena.


В руках очень редкая лицензионная копия игры MediEvil II, воображаемая копия


Интересно наблюдать за этими каналами, авторы которых трудятся в своё удовольствие и радуют нас постоянными видео. В сети можно найти миллионы обзоров на новую Call of Duty или Battlefield, а действительно редких обзоров на какую-нибудь классику или просто неизвестную игру найти довольно сложно. Будем им благодарны.


Павел Ярославцев (paha_13)


### Эмулятор в кармане


О Dingoo A320 в Сети можно найти много информации. Так что сообщить что-либо новое будет очень сложно. Поэтому я лучше расскажу о личном опыте эксплуатации консоли.

Для тех, кто не знает, Dingoo A320 – это настоящий комбайн в области карманных эмуляторов популярных в прошлом игровых консолей. Встроенные эмуляторы NES, SNES, Mega Drive, GBA, Neo-Geo и аркадных автоматов плюс сторонние эмуляторы Spectrum, Atari, PlayStation и многие другие, игры для собственной операционной системы, в том числе и 3D! Есть аудио- и видеопроигрыватель с поддержкой популярных форматов, радио, электронная книга, просмотр изображений и запись звука. А на десерт – возможность установки специальной адаптации Linux – Dingux. И всё это на скромном процессоре 336 МГц и 32 МБ оперативной памяти.

Долгое время я пытался найти консоль в продаже. Наконец, совершенно случайно, в интернет-объявлениях она появилась всего за 3000 рублей. Правда, в другом городе. За тысячу километров.

Выручил друг, живущий в том городе. Он съездил, купил и отправил почтой. Посылка пришла через неделю. Пока нёс домой, переживал за сохранность содержимого – случались прецеденты. Однако на сей раз почта оказалась на высоте.

Сразу хочу отметить комплектацию. Она более чем полная!


Итак, помимо коробки и самой консоли в наличии: карта памяти MicroSD на 2 ГБ с адаптером MiniSD (никогда прежде не встречал устройств использующих такой размер карт; для сравнения на фотографии слева от переходника MiniSD лежит обычный SD), наушники, зарядное устройство, кабель Mini-USB (используется как для зарядки, так и для подключения к ПК), кабель для подключения к телевизору, мягкий силиконовый чехол, а также пользовательская инструкция на английском и китайском языках.


Теперь о входах и выходах. Снизу расположены два достаточно громких динамика, порты Mini-USB, MiniSD и AV-Out; справа: выход 3,5 мм для наушников и ползунок включения/выключения консоли (причём, если передвинуть ползунок в положение Hold, будут заблокированы все кнопки, что удобно при использовании Dingoo в качестве плеера). Слева: Reset для принудительной перезагрузки консоли и встроенный микрофон. Сверху – два шифта, L и R.

Довольно яркий 2,8-дюймовый экран в 320x240 точек позволяет вполне сносно играть днём на улице в тени или в пасмурную погоду. Крестовина и кнопки нажимаются мягко и не залипают. Разве что шифты слишком уж громко щёлкают.

Размер консоли сопоставим с размером геймпада «Денди», удобно лежит в руке и прекрасно помещается в кармане. Встроенного аккумулятора хватает на 4-5 часов, а в режиме ожидания (обычное отключение экрана) Dingoo может пролежать пару дней.


Сразу после распаковки консоли я закинул во внутреннюю память заранее скачанные ромы игр для «Денди», «Сеги» и никогда не виданные «вживую» «Супер Нинтендо» и GBA. Конечно, в памяти устройства нашлись игры предыдущего владельца, но у меня свой любимый набор.

Операционная система Dingoo загружается за считанные секунды. Главное меню удобно и работает без тормозов. В настройках системы можно выбрать тему графической оболочки, язык (есть и русский, но перевод в стиле «надмозга»), яркость экрана, установить таймер автоматического выключения и прочее.


А теперь к играм! В Game center есть два раздела: 3D game и Interesting game. Оба раздела открывают директорию с папками игр для всех эмуляторов, но 3D game отображает только собственные приложения Dingoo с расширением .app – это несколько игр и программный разгон процессора до 430 МГц (что может быть полезно при работе «тяжёлых» эмуляторов). В числе прочих двумерных игр я нашёл и трёхмерный слэшер с элементами прокачки. К сожалению, родным языком почти всех встроенных игр является китайский.


Interesting game открывает доступ ко всем остальным играм. Точнее – к файлам: выбрав любой из них и нажав кнопку A, вы запустите соответствующий эмулятор. Игры «Денди» работают идеально. Вот только Robocop 3 не запускался безо всякого объяснения причины, а Eliminator Boat Duel сильно глючил. Эмулятор Game Boy Advance также не подкачал, тормозов и ошибок не заметил. Остальные эмуляторы работают если не очень хорошо, то вполне стабильно.

Однако old-hard.ru настоятельно советует заменить встроенные эмуляторы на альтернативную разработку программиста lion_rsm. Жаль только, что последнюю версию набора эмуляторов Dingoo Emulation Pack v2.0 он выпустил в 2013 году, и на этом разработка была остановлена. Для установки необходимо скопировать из архива нужный эмулятор в консоль, а старый удалить.

В результате получаем более стабильную и производительную эмуляцию игр с более гибкими настройками и единым стилем меню эмуляторов. Robocop 3 и Eliminator Boat Duel заработали, как на реальном железе.

И без того уникальная Dingoo A320 получила развитие в виде собственной версии Linux.


Для Dingux существует множество эмуляторов всевозможных платформ и портированных с ПК игр. Необязательно эмуляторы Dingux лучше своих собратьев в родной ОС, но их список гораздо шире. Помимо уже рассмотренных, можно установить эмуляторы Atari, PC Engine, DOSBox, Game Boy, Spectrum, Mega Drive CD, PlayStation (которому всё же немного не хватает скорости процессора), ScummVM, Amiga, Dreamcast, Commodore и огромное количество других, менее популярных платформ.

К тому же Dingux устанавливается только на флешку, позволяя пользоваться обеими операционными системами.


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

Одной из фишек использования Dingux являются порты любимых многими игр, например Doom, Heretic, Hexen, Duke Nukem 3D, Metal Slug Quake, Shadow Warrior и другие.


Подробную инструкцию по установке Dingux можете найти на сайте a320.emulate.su (http://a320.emulate.su/dingoo-a320/install-dingux-rus/). Ещё один полезный и, пожалуй, самый насыщенный контентом для Dingoo сайт – http://www.openhandhelds.org/.

Чтобы остаться честным, расскажу немного о минусах консоли. Да, есть и такие, по крайней мере, для меня. Основным неудобством является расположение выхода для наушников. При прослушивании музыки и просмотре фильмов сей факт не создаёт проблем, но вот играть, утыкаясь пальцем в штекер, не очень удобно. Во-вторых, ТВ-выход предпочтительнее было бы сделать сверху, а не снизу, хотя кабель достаточно длинный, и на это можно закрыть глаза. В-третьих, Reset'ом приходится пользоваться чаще, чем хотелось бы. Правда, это скорее относится к несовершенству эмуляторов, а не самой Dingoo. Всё. Мои минусы закончились.

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


Дмитрий Колмагоров (Temga)


### Инструментарий пользователя PC


Пакет Norton Utilities – один из самых мощных пакетов программ для диагностики, исправления ряда проблем, а также оптимизации компьютера. Norton Disk Doctor, Speed Disk, Disk Editor, а также SysInfo сделали пакет популярным как на постсоветском пространстве, так и на Западе. И, конечно же, если утилиты для оптимизации диска, а потом и реестра Windows оказались так востребованы, то рано или поздно должны появиться конкурирующие продукты. И они появлялись – с завидным постоянством. Можно вспомнить, например, пакет Fix-it или же System Mechanic (программа больше по чистке, но тоже имеет средства дефрагментации жёсткого диска). Однако ещё более ранним программным пакетом является PC Tools.

Название, конечно же, знакомо каждому, но как-то так получилось, что обзора программ на русском языке не попадалось. Тем же утилитам Нортона – и для DOS, и для Windows, включая пакет Norton Utilities 8.0, который устанавливается на Windows 3.x, – посвящены разделы книг Фигурнова и Леонтьева, так что начинающий пользователь компьютера или даунгрейдер может посмотреть и описание программ, и увидеть их скриншоты, дабы оценить, как же оно будет смотреться на экране монитора свежесобранного или приобретённого старого компьютера. А вот c PC Tools оказалось сложнее. Пакет, конечно же, упоминается, по крайней мере, Фигурновым, но как-то быстро акцент смещается на продукт Symantec, о котором дальше идёт разговор. А как выглядит PC Tools, книжки стыдливо умалчивают. Однако название, увиденное когда-то, живо вспомнилось, когда на одном из компьютеров нортоновские утилиты просто отказались ставиться, тут и вспомнился пакет-конкурент, которому будет посвящена статья.


Что в пакете, где взять и как поставить?


В принципе, PC Tools представляет собой такой же утилитный офис, как называл Леонтьев комплект Norton Utilities. То есть содержит средства для работы с диском – проверки, дефрагментации, восстановления удалённых файлов, файловый менеджер и ещё ряд полезных утилит. Есть версии как для DOS, так и для Windows и Macintosh  – MacTools.

На сайте Vetusware можно найти английскую версию PC Tools для Windows – ссылка, её мы и будем использовать. Наиболее интересные программы, входящие в данный пакет:

• DiskFix (DOS и Windows) – программа проверки жёсткого диска.

• Optimizer – программа дефрагментации жёсткого диска.

• Mirror – программа сохранения таблицы файлов – утилита, видимо, важная, так как прописывается в autoexec.bat.

• Антивирус с резидентным модулем.

• Файловый менеджер.

• Оболочка рабочего стола.

• Просмотрщик файлов.

• Программа снятия скриншотов.

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

При установке можно выбрать состав программ, которые будут установлены. Однако даже если вы не будете ставить утилиты для DOS, всё равно инсталлятор потребует вставить дискету с этими утилитами (в архиве с Vetusware это диск 6). Автору удалось поставить только после того, как архив с содержимым этого диска был распакован на настоящую дискету, и дискета была вставлена в дисковод. Прописывание пути к папке, содержащей эти файлы, успеха не дало. После установки инсталлятор создаст две программные группы – в одну будут включены основные программы – DiskFix, Optimizer, Central-Point Antivirus (антивирусный пакет), планировщик, а также программа для создания загрузочной дискеты (см. рис. 1). Во второй же группе будут располагаться все остальные программы (см. рис. 2).


Рис. 1. Самые необходимые программы из комплекта PC Tools


Рис. 2. А это остальные программы комплекта – как видите, их весьма и весьма немало


Central-Point Desktop является оболочкой для Windows, способной заменить диспетчер программ. Такое решение чем-то напоминает Norton Desktop for Windows, однако автора вполне себе устраивает стандартный диспетчер, так что от альтернативной оболочки было решено отказаться. Внешний вид данной оболочки вы можете увидеть здесь: http://toastytech.com/guis/cpdesk.html. Как видите, тоже достаточно интересная программа, но эксперименты с внешним видом Windows 3.x – всё же личное дело каждого. Автор когда-то попробовал ставить Norton Desktop for Windows и «Кальмиру», но всё же остановился на стандартном диспетчере программ. Однако практически все остальные утилиты пакета, включая антивирус и резидент, были установлены, и о некоторых из них разговор пойдёт дальше.


DiskFix – ваш дисковый доктор


Даже не использующие утилит Нортона знают (а во времена Windows 98 точно знали ☺), что проверку и дефрагментацию жёсткого диска нужно проводить регулярно. Причём именно в такой последовательности – сперва проверить, а потом дефрагментировать. Для проверки жёсткого диска в комплекте PC Tools присутствует программа DiskFix в варианте для DOS и Windows. Главное окно программы для Windows показано на рис. 3.


Рис. 3. Главное окно DiskFix – весьма и весьма походит на виндозный Disk Doctor


Программа также проверяет жёсткий диск – структуру файлов и папок, логическую структуру, ищет потерянные кластеры и т.д., но исправлять предлагает средствами DiskFix для DOS, которая находится как раз на шестом диске.

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


Рис. 4. DiskFix для DOS – тоже достаточно простое и без изысков меню


Программа будет готова исправить и файловые ошибки, и найти потерянные кластеры, вот только у автора от такого лечения... пропал исполняемый файл Volkov Commander'а. Во как бывает, однако... Хотя, если с диском проблемы – это уже не есть хорошо.


Optimizer дисков


Следующий пункт – программа оптимизации диска, а по-простому – дефрагментации. Как в нортоновских утилитах SpeedDisk, так здесь – Optimizer. Главное окно программы показано на рис. 5. Как видим, присутствуют все необходимые элементы – линейка прогресса, «карта» жёсткого диска с указанием занятых, свободных и перемещаемых на данный момент блоков. Собственно, тоже ничего нового, но мы и не ждём нововведений.


Рис. 5. Optimizer – программа для дефрагментации жёсткого диска – «карта» диска, линейка прогресса, выбор диска для дефрагментации – всё привычно и функционально


Зато по команде Options->Optimization Methods доступно меню настройки параметров дефрагментации – здесь вы можете указать, что именно должна делать программа – что оптимизировать, а что нет (см. рис. 6). Конечно же, от полноты оптимизации будет зависеть с одной стороны результат, а с другой – время выполнения дефрагментации программой. В том числе есть функция периодической дефрагментации жёсткого диска, но такая функция весьма и весьма спорная, как и большинство фоновых процессов, связанных с жёстким диском. Автор до сих пор вспоминает, как антивирус Касперского запускал ежедневную проверку всего компьютера – в фоновом режиме, но при этом все остальные программы просто висли.


Рис. 6. Настройка параметров оптимизации – насколько «глубоко» оптимизировать (а, соответственно, дольше возиться программе)


Комплексная антивирусная защита


При первом знакомстве у пользователя может возникнуть ощущение, что весь комплект утилит вырос именно вокруг антивирусного пакета – и это неудивительно. Резидентный монитор, сканер, а также экспресс-проверка при загрузке операционной системы больше походит на реалии сегодняшнего дня или начала двухтысячных (сейчас обычно в состав антивирусного пакета входит ещё и файрвол), но никак не начала 90-х. Тогда обычно ограничивались антивирусным сканером, хитрым ревизором с лечащим блоком, ну и, возможно, дискетой с гарантированно чистым – без вирусов – DOS и антивирусником. И на этом всё заканчивалось. Здесь же мы видим целый антивирусный комплекс – программу-сканер Central Point Anti-Virus и резидентный блок, который прописывается в автозагрузку Windows и находится постоянно в свёрнутом состоянии.

Кроме того, после установки антивирус специально пропишется в autoexec.bat и непременно просканирует ваш компьютер при запуске. Проверить целостность диска DiskFix’ом – дело десятое. Главное, чтоб вирусов не было.

Правда, автор после первого же запуска убрал это безобразие – и запуск антивирусной проверки из autoexec.bat, и запуск резидента из автозагрузки. Остался только антивирусный сканер, показанный на рис. 7.


Рис. 7. Главное окно антивирусного сканера


Но перед тем, как вы сможете приступить к работе с ним, вам покажут окошко с напоминанием, когда вы в последний раз обновляли антивирусные базы (см. рис. 8).


Рис. 8. Антивирусные базы давно не обновлялись... или просто со сбившимися часами проблема? ☺


В принципе, полезность данной программы, по крайней мере для автора, под большим вопросом. Есть предположение, что именно антивирусный комплекс прибил исполняемый файл Volkov Commander’a и «Диско Командира». Однако, может быть, кому-то данный антивирусник сослужит добрую службу.

Почему же автор посвятил данной программе целую главу? Собственно, из-за того, что компания-производитель сделала всё, чтоб пользователь не прошёл мимо их антивирусного продукта. И пользователи не прошли – где-то в недрах Википедии даже упоминается, что Microsoft лицензировала данный антивирусник (уж не тот ли антивирус, который обнаружил вирус в дистрибутиве Windows 95?).


Без пяти минут проводник


Обычно, когда произносится словосочетание «файловый менеджер», на ум приходит клон Norton Commander’a – две панели, списки каталогов, подсказка по горячим клавишам и, желательно, командная строка внизу. Умом мы понимаем, что даже папка «Мой компьютер» – тоже файловый менеджер, и диалоговое окно сохранения в любой программе, а уж тем более проводник... но сердцу не прикажешь. ☺ Однако создатели такого функционального утилитного офиса вполне имеют право на собственное видение процесса навигации по файлам. В результате в комплект PC Tools была включена программа, показанная на рис. 9.


Рис. 9. Файловый менеджер – можно сказать, предвестник «Проводника» – по крайней мере, похож на проводник гораздо больше, чем «Диспетчер файлов» из стандартного комплекта поставки


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

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

Однако и тут компания Central Point всё равно нашла несколько весьма интересных решений.

Первое, конечно же, контекстное меню, вызываемое правой кнопкой мыши (см. рис. 10). Конечно, мы привыкли к такому меню в Windows 95, да и в поздних программах для Windows 3.x самой Microsoft – в Word 6.0 и Excel 5.0 – правая кнопка мыши работает, но не в диспетчере файлов. Здесь же – пожалуйста – нажимаем правую кнопку мыши и получаем меню.


Рис. 10. Контекстное меню по правой кнопке мыши – мелочь, а в стандартном «Диспетчере файлов» такого нет


Вот только на этом сходство с проводником Windows 95 и заканчивается. В случае, если вы выберете в контекстном меню тот или иной пункт, откроется диалоговое окно типа стандартного диалога диспетчера файлов Windows (см. рис. 11).


Рис. 11. Стандартный для Windows 3.x диалог, зато не очень привычный после Windows 9x/2000/XP


Ещё одно интересное решение – кнопки в виде папок с цифрами над левой панелью. Нажав такую кнопку, вы можете развернуть древо каталогов в левой панели на ту или иную глубину (см. рис. 12)


Рис. 12. Одним нажатием кнопки разворачиваем все папки в древе


Файловый менеджер – программа такого же плана, как и антивирус – использовать или нет именно её, а не привычный Нортон-подобный менеджер – личное дело каждого. Если вас вполне устраивает интерфейс проводника и кажется вполне удобным такая система с древом каталогов, возможно, что именно файловый менеджер от Central Point окажется для вас весьма удобным и полезным инструментом.


Screen Capture – ещё один скриншотер


Программа, которая создает скриншоты – весьма полезная в хозяйстве вещь. Тем более, если вы пишете статьи о программах. Тема создания снимка экрана под DOS и Windows 3.x оказалась настолько интересной, что автор посвятил особенностям отдельную публикацию. И, конечно же, не смог обойти вниманием утилитку для снятия снимков экрана в составе PC Tools.

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


Рис. 13. Главное окно программы Screen Capture – фактически диалог настройки снятия скриншота


Что интересно, если нажать кнопку «Browse», откроется не стандартный диалог Windows, а собственный, где кроме древа каталогов будет показана диаграмма использования дискового пространства (см. рис. 14), что не только эффектно, но и весьма полезно.


Рис. 14. Казалось бы, мелочь – диалог указания пути, но и тут разработчики смогли найти, чем удивить пользователя – не только папки, но и диаграмма использования дискового пространства – и эффектно, и полезно


Теперь настало время испытать программу. Нажимаем заданную в настройках F8 и... небольшое скрипение диска, песочные часы вместо стрелочки курсора на пару секунд – скриншот готов, но об этом Вам никто и ничто не сообщит. Залезайте в каталог, который указали в настройках, смотрите сами. Результат работы программы можно увидеть на рис. 15 и рис. 16.


Рис. 15. Вот, что получилось у автора – 24 бита цвета и разрешение 800х600


Рис. 16. Заодно и снимок Диско Командира. Кстати, должен был быть конфликт программ, так как в файловом менеджере F8 отвечает за удаление файла или каталога, но Screen Capture не дала Командиру ничего удалить – нажатие клавиши запустило снятие скриншота – только и всего. Даже диалога удаления файла не открылось.


Как и у большинства рассмотренных утилит, у данной есть свои конкуренты, но прелесть Screen Capture, как и у других утилит из состава PC Tools, в том, что она поставляется в составе комплекта, и пользователь может не заморачиваться поиском скриншотера, если в таковом возникнет необходимость, а воспользоваться одной из программок из состава утилитного офиса.


System consultant – немного о внутреннем мире компьютера


Norton SysInfo – не самая информативная тестовая программа, однако она счастливо дожила как минимум до версии Norton Utilities 2003. Примерно такую же программу-тест содержит комплект PC Tools (см. рис. 17).


Рис. 17. Сводная информация о системе – процессор, память, видео, сколько забито и т.д.


Понятно, что радоваться, будто получили в своё распоряжение аналог ASTR'ы или AID'ы, не стоит – железа, не имеющего драйверов, программа не распознает, но увидеть кое-что можно. Например, насколько забита память вашего компьютера – и оперативная, и жёсткий диск. Однако, при отсутствии особой информативности, интерфейс программы на удивление симпатичен.

Чего стоит раздел информации о видеокарте или клавиатуре и мыши, которые можно открыть командами Hardware–>Video и Hardware–>Keyboard/Mouse. При скудной информации о железе, Вы увидите весьма симпатичную картинку. Например, изображение видеокарты в представлении разработчиков (см. рис. 18).


Рис. 18. Раздел информации о видеокарте. Сведений минимум, но как красиво!


Правда, парочка тестов всё же у программы имеется. Запустить их можно командами Benchmarks–>CPU Speed Test и Benchmarks–>Disk Speed Test – тесты производительности процессора и дисковой подсистемы соответственно.

Собственно, базой данных по производительности разных систем, какая есть, например, у AIDA32, System consultant не обладает. Тест показывает, во сколько раз Ваш компьютер обгоняет IBM PC/AT, работающий на частоте 8 МГц. Для сравнения, например, автору, запустившему программу на 486DX2 66 МГц, ещё показывают производительность Compaq 386 33 МГц.

Результаты выглядят примерно как на рис. 19, рис. 20 и рис. 21 – тест процессора и дисковой подсистемы соответственно. Как видно на рисунках 20 и 21, тест производительности диска можно увидеть как в цифрах, так и в виде диаграммы (диаграмма открывается по нажатию кнопки Graph).


Рис. 19. Тест производительности процессора


Рис. 20. Тест производительности дисковой подсистемы в цифрах...


Рис. 21. ...и в относительных единицах – кстати, тут система автора уже опережает 486-ой Compaq ☺


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


Заключительное слово


На этом автор, пожалуй, закончит обзор. За кадром осталась почти половина программ из состава PC Tools, которые в умелых руках могут оказаться не менее полезными, чем описанные, но обзорная статья и так уже оказалась весьма и весьма объёмистой.

Что можно сказать в заключение? Наверное, стоит напомнить о незавидной судьбе компании, решившей бросить вызов лидеру рынка и попытавшейся потеснить этого лидера хоть на миллиметр. Незавидна судьба компании «Арсеналъ», решившей, что на российских компьютерах может жить не только Microsoft Office – российское представительство Майкрософт в конечном итоге купило буйного конкурента... Примерно также поступила и Symantec – купила Central Point Software в июне 1994-го года, если верить английской Википедии. Но вот что удивительно – среди утилит автор нашёл одну очень интересную вещь – Crash Guard. Ничего не напоминает? Возможно, именно после покупки появилась ещё одна утилита от Symantec – Norton Crash Guard. Вариант же из комплекта PC Tools можно увидеть на рис. 22.


Рис. 22. Crash Guard – программа для защиты от сбоев памяти, даже Symantec, видимо, предпочла не уничтожать утилиту, а продолжить выпускать её уже под своей маркой


Что ещё можно сказать о комплекте? Пожалуй, самое большое впечатление произвёл именно внешний дизайн всех программ – картинки, анимация, объёмные линейки прогресса (см. рис. 23).


Рис. 23. Объёмная линейка прогресса – возможно, мелочь, но именно из таких мелочей складывается какой-то собственный стиль PC Tools


Поэтому, вполне возможно, что именно этот комплект утилит станет достойной альтернативой как Norton Utilities, так и Norton Desktop for Windows. А что до конкурентов нортоновских утилит, так свято место пусто не бывает. Его занимали и Nuts and Bolts, Fix-it и в чём-то метит на это место комплект «чистильщиков» System Mechanic. Так что желающие потеснить пакет Symantec были, есть и будут, как и желающие их установить, попробовать и, возможно, продолжить ими пользоваться.


Андрей Шаронов (Andrei88)


### Снова издеваемся над файловой системой


Начало


Эта статья – вариация на тему существующей статьи «Рисуем с помощью каталогов в Linux (на самом деле нет)»:

http://flaz14.github.io/directory-art/directory-art.html

Которая, в свою очередь, была написана по мотивам статьи «Издеваемся над файловой системой» за авторством uav1606 (Downgrade, №17). Не будем на этот раз ставить грандиозные цели с универсальной сортировкой листинга каталога (рассказывать долго, если интересно, смотрите мою предыдущую статью). Просто вернёмся ненадолго в недавнее прошлое, в Windows всех времён и народов – Windows XP, и, скрещивая ежа с ужом, покажем, что это та вещь ещё!

Рисовать с помощью каталогов можно разными способами. Я попытался найти более-менее универсальный. Т.е. переводить обычный ASCII-рисунок (текстовый файл) в набор таких файлов-пустышек, чтобы для каждой строки оригинального рисунка существовал одноимённый файл на диске. Тогда, выведя листинг каталога в командной строке, мы увидим тот же ASCII-рисунок, но в другой ипостаси.

Нам понадобятся:

1. Таблица Unicode.

2. Хороший моноширинный TrueType-шрифт.


Таблица Unicode


Основное ограничение при рисовании каталогами — уникальность имён файлов. В одном ASCII-рисунке могут встречаться одинаковые строки. Но в одном каталоге не может быть двух файлов с одинаковым именем. Это ограничение можно обойти путём добавления к каждой строке разных порций пустого символа (ASCII №255) или с помощью расширений имён файлов. Но почему бы не попробовать другой способ, например, задействовать Unicode-пробелы? Ведь при использовании моноширинного шрифта видимой разницы между обычным пробелом (ASCII №32) и каким-нибудь пробелом половинной ширины не будет никакой! Всего лишь пять Unicode-пробелов (одинаковых визуально, но разных с точки зрения файловой системы) дают 3125 комбинаций. Добавляя их в начало и/или конец каждого имени файла, мы сохраняем уникальность имён и не меняем при этом рисунок.

Ещё одна причина использовать Unicode — ограничения на присутствие некоторых символов в имени файла. Например, обратный слэш не может входить в состав имени, поскольку он используется в качестве разделителя имён в пути. (Вообще, «запрещённых» символов в FAT/NTFS больше, чем в файловых системах Linux, например, Ext4, подробности можно узнать в официальной документации – «Naming Files, Paths, and Namespaces»: ссылка ).

К сожалению, не для каждого зарезервированного символа удаётся отыскать близнеца из таблицы Unicode. Худо-бедно, я нашёл похожие. Результаты можно увидеть на рисунке:


Зарезервированные символы и их Unicode-аналоги


В первой колонке — оригинальные ASСII-символы, во второй — их Unicode-двойники, в третьей — названия, а в четвёртой – шестнадцатеричные коды из таблицы Unicode.

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


Хороший моноширинный TrueType-шрифт


От растровых шрифтов придётся отказаться — тут всё очевидно, я думаю. Но и встроенные в Windows TrueType-шрифты (например, Lucida Console) тоже не подходят, потому что поддержка Unicode в них скудная. И наши аналоги просто превратятся в квадратики.

Сначала я решил, что лучше всех подойдёт шрифт GNU Unifont. Да, сторонники свободного ПО  постарались на славу. По их утверждению, GNU Unifont содержит глифы для всех печатаемых символов из Unicode 10.0 Basic Multilingual Plane. И размер файла шрифта впечатляет: 12 мегабайт!

Чтобы установить шрифт в систему, достаточно зайти в раздел Fonts «Панели Управления» Windows и просто «перетащить» (или скопировать как файл) туда новый шрифт. А чтобы выбрать только что установленный шрифт в cmd.exe, нужно сначала поколдовать с реестром. Т.е. изменить значение ключа

HKEY_LOCAL_MACHINE\

Software\

Microsoft\

Windows NT\

CurrentVersion\

Console\

TrueTypeFont


Установка шрифта в cmd.exe


Затем можно заходить в cmd.exe и выбирать шрифт, прописанный в реестре на предыдущем шаге.


Интуиция подсказывает,  что имена ключей (на рисунке можно заметить 0, 932, 936, 949 и 950) — это номера кодовых страниц. Т.е. вроде бы можно для каждой кодовой страницы задать свой шрифт, а кодовая страница с номером 0 — это страница по умолчанию. Но это всё догадки, точно я не знаю. Да и выбрать страницы 932, 936, 949 и 950 нельзя — chcp говорит Invalid code page. Как бы то ни было, при наличии хорошего шрифта кодовая страница роли не играет. Я пробовал 1251, 1252, 65001 — Unicode-символы отображаются нормально всегда.


На практике не всё так гладко. Шрифт GNU Unifont установился в систему, но работать в консоли не захотел. При попытке выбрать его в cmd.exe, шрифт либо оставался растровым, либо сбрасывался к выбранному в прошлый раз TrueType-шрифту. Сообщение об ошибке появлялось снова и снова, даже после перезагрузки системы:


Сообщение об ошибке при выборе шрифта в cmd.exe


В ходе многочисленных экспериментов с разными шрифтами (в основном из мира Linux: Noto Sans Mono, Ubuntu Mono и т.д.) я увидел следующую закономерность: если появляется окошко с сообщением об ошибке, это не значит, что шрифт работать не будет. Достаточно перезагрузиться, выбрать нормальный размер, и шрифт заработает. Но в случае с GNU Unifont ничего не помогало (возможно, причиной тому был гигантский размер соответствующего ttf-файла...)


Я долго искал шрифт, который не превращает Unicode-символы в квадраты. Но потом наткнулся на фантастический ответ Ilya Zakharevich: «How to use unicode characters in Windows command line?»:

https://stackoverflow.com/a/47843552

Я скачал составленный автором ответа архив unifont-smooth-mono-10.0.06—1.171-mer-ged-with-dejavu-2.36-no-Han-Hangul.7z. Шрифт определился в системе как DejaVu Sans Mono Unifont и заработал в cmd.exe (в этом шрифте, как и писал автор, есть не все символы, но нужные нам аналоги, приведённые на рисунке «Установка шрифта в cmd.exe», там присутствуют).


Рисуем!


Возьмём простой ASCII-рисунок. И переведём его в рисунок внутри каталога (часть вывода команды dir я оставил специально, для наглядности, оригинал расположен слева):


Простой ASCII-рисунок


Преобразование ASCII-рисунка в набор файлов осуществлялось с помощью скрипта, написанного на Python. Там всё просто: читаем строки из файла, заменяем запрещённые символы, добавляем комбинации Unicode-пробелов в начало каждой строчки. И затем берём дополненные строки и создаём одноимённые файлы на диске (пустые). Чтобы строки не перемешивались, назначаем каждому новому файлу дату изменения в соответствии с порядком строк в оригинальном рисунке.


Возьмём теперь рисунок посложнее (я его нашёл на сайте http://chris.com).

Вот он в виде обычного текстового файла, распечатанного с помощью команды type:


Сложный ASCII-рисунок (оригинал)


А вот он же, но нарисованный каталогами (нолики остались от команды dir, ведь файлы у нас пустые):


Сложный ASCII-рисунок, изображённый каталогами


Разницы почти нет (но заметить отличия легко, если присмотреться к подряд стоящим прямым и обратным слэшам). Стоит отметить, что приведённые выше рисунки — это лишь фрагменты большой картинки (для фрагментов я выбрал размер шрифта в 36 пунктов, специально для того, чтобы можно было увидеть искажения). Ну а полностью нарисованная каталогами девушка выглядит так (14 пунктов):


Большой ASCII-рисунок, изображённый каталогами


Конец


Что тут сказать? Пришлось изрядно повозиться с разными вещами, вспомнить всякие штуки Windows. Как бы то ни было, пора завести себе нормальный шрифт. И старенькая cmd.exe преобразится прямо на глазах!


flaz14


### За криптовалютой – в Downgrade!


– Ты зачем старушку убил, ради 20 копеек?

– Как зачем? Пять старушек – уже рубль!


В конце 2017 года ажиотаж вокруг криптовалют достиг своего апогея. За курсом биткоина с замиранием сердца наблюдала практически вся страна: одни с неподдельным удивлением, другие с сожалением, что не успели вовремя вложиться, третьи с радостью, что успели. Тем временем, пока бабушки у подъезда обсуждают перспективы блокчейна, а новые криптовалюты появляются как грибы после дождя, в народе на пике хайпа «золотой лихорадки» разгорелся очередной холивар на тему: «Что же на самом деле такое этот самый биткоин? Очередная финансовая пирамида или революционная технология, на которой можно заработать?». Однако оставим эти обсуждения за рамками данной статьи и поразмышляем о другом: возможен ли майнинг (добыча) криптовалют на старом и непригодном, по современным меркам, железе? Подобные вопросы можно без труда найти в постах 3-летней давности на специализированных форумах, ответ на которые будет практически одинаковым: «Нет, чувак, ты опоздал на пару лет. Время ушло». Но давайте попробуем разобраться в этом вопросе более детально и проведём небольшой эксперимент по майнингу «крипты» на морально устаревших машинах. Итак, поехали!


1. Для начала нужно определиться с криптовалютой, которую мы будем добывать. Популярные биткоин и эфириум рассматривать не стоит. Эти монеты имеют очень высокую сложность майнинга, и с нашим железом туда соваться бессмысленно. Лучше выбрать что-нибудь попроще, благо текущее изобилие токенов это позволяет. В данном случае мой выбор пал на денежку под названием monero (код валюты – XMR).  Почему именно её? Monero входит в топ-20 списка криптовалют, не является клоном биткоина и обеспечивает анонимность совершаемых транзакций. И, что самое главное, её можно добывать на 32-разрядных процессорах.


2. Второй шаг – нам понадобится электронный кошелёк для накопления средств и последующих финансовых операций. Варианта тут два: либо устанавливать его локально с помощью специализированного ПО на своём компьютере (отдельном и более мощном), либо использовать онлайн-кошелёк, коих на просторах Сети множество. Второй вариант мне кажется более простым и удобным, поэтому выбираем его. Регистрируем новый monero-кошелёк на https://www.cryptonator.com/. Данный сайт имеет русскоязычную версию интерфейса и позволяет открывать мультивалютные кошельки. После регистрации нам нужно получить (узнать) адрес своего кошелька (последовательность из N букв и цифр). Скопируем его в буфер обмена, он нам понадобится в дальнейшем.


3. Далее, давайте определимся с железом, которое подойдёт для нашего эксперимента. Как известно, для майнинга можно использовать следующие мощности:


- CPU (центральный процессор компьютера).

- GPU (процессор видеоадаптера).

- ASIC (специализированное устройство, предназначенное только для майнинга).

- Облачный майнинг.


Последние 3 позиции явно не попадают в категорию «Downgrade», поэтому мы рассмотрим только вариант использования центрального процессора. Какое поколение CPU можно использовать? Сразу откинем все экземпляры со скоростью менее 1.6 ГГц (читай – ниже Pentium 4 или его аналога) из-за потенциальной нехватки производительности. Желательная разрядность процессора и ОС – 64 бита, пусть даже с минимально допустимым количеством ОЗУ. Дело в том, что майнинг на 32-разрядных процессорах хоть пока и возможен (для некоторых валют), но в случае 64 бит вычисления будут происходить быстрее. Видеоадаптер в нашем случае не принципиален, сгодится любой.

Получаем знакомую картину штатного офисного PC или типичной рабочей downgrade-лошадки. В качестве ОС для совсем слабых компьютеров лучше использовать минималистические сборки, вроде Windows XP mini и им подобных, чтобы сэкономить драгоценные ресурсы. Можно использовать и ОС Linux, однако сегодня мы отдадим предпочтение Windows.


4. Выбираем пул. В одиночку добывать монетки очень тяжело, поэтому в сети существует множество пулов – специальных сайтов, где пользователи объединяют свои усилия и работают над добычей сообща. Соответственно, каждый получает награду прямо пропорционально вложенным усилиям (мощностям). У каждого пула свои настройки (адреса, порты) и правила (комиссия, периодичность и минимальные суммы выплат). Итак, в качестве пула выбираем http://dwarfpool.com/, не требующий регистрации.

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


5. Устанавливаем и настраиваем ПО для майнинга. Инструкция и ссылки на необходимый софт обычно находятся на страничке самого пула. В нашем случае мы будем использовать следующие программы:


- Claymore CPU Miner (64-bit: версия 3.8 / 32-bit:  версия 3.5 beta).

- XMRig (https://github.com/xmrig) (версия 2.4.4).


Для 64-бит можно найти и другие варианты «майнилок», но мы остановимся на этих двух. По скорости вычислений они выдают схожие результаты, поэтому выбираем, кому что нравится (я попытался запустить обе эти программы на моём Athlon XP 2000+, но, к сожалению,  они не заработали – видимо, из-за отсутствия в процессоре SSE2 – прим. ред. uav1606). Настройка тут достаточно проста: скачиваем софтинку, распаковываем в какой-нибудь каталог на жёстком диске. Далее, в этом же каталоге создаем .bat- или .cmd-файл, например start.bat, в котором прописываем запуск нашей программы со следующими параметрами, для Claymore и XMRig соответственно:


NsCpuCNMiner64.exe -o stratum+tcp://xmr-eu.dwarfpool.com:8005 -u <wallet>[.worker] -p x

xmrig.exe -o stratum+tcp://xmr-eu.dwarfpool.com:8005 -u <wallet>[.worker] -p x -k


Где <wallet> – адрес вашего кошелька из п.2. [.worker] – необязательный параметр. Если вы запускаете майнер на нескольких компьютерах и хотите видеть раздельную статистику по каждому из них, то его нужно указывать (через точку).  Подойдёт любой псевдоним, например worker1. Если же раздельная статистика вам ни к чему – достаточно указать просто номер кошелька, а этот параметр проигнорировать.

Полный список параметров можно найти в прилагаемых текстовых файлах или увидеть в консоли, запустив exe-файл с параметром «--help». На некоторые из них стоит обратить своё внимание: в первую очередь это настройка количества потоков, приоритета задачи и режима загрузки процессора, а также возможность запуска в фоновом режиме и отключение (уменьшение) комиссии разработчиков.

Запускаем полученный .bat-файл, забываем про него на несколько месяцев. :) Если программа сообщает о невозможности выделения памяти, то запуск необходимо производить от имени администратора (иногда при этом требуется дополнительная перезагрузка компьютера).


Важно: некоторые версии программ для майнинга могут быть восприняты антивирусами как вредоносное ПО.


6. Profit. Наш пул ведёт подробную статистику вычислений в режиме онлайн. Для того, чтобы узнать текущий баланс и ознакомиться со статистикой, необходимо зайти по адресу https://dwarfpool.com/xmr и в разделе Worker Stats ввести адрес своего кошелька. Следует отметить, что данные обрабатываются с некоторой задержкой (порой до нескольких часов), поэтому изменения баланса будут заметны не сразу. Как только сумма достигнет порога автовыплаты, накопленные монетки будут переведены на наш онлайн-кошелёк.


7. Результаты эксперимента.  Для измерения скорости и удовлетворения любопытства был проведён тест на 3-х компьютерах с использованием программы Claymore CPU Miner, итоги которого приведены в таблице ниже.


… (смех в зале).


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

https://dwarfpool.com/xmr/calc


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

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


Вячеслав Рытиков (eu6pc)


### QBasic как средство прагматического программирования


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

Невозможно программировать, ничего не зная о программировании. Чтобы написать первую работоспособную программу, «войти в тему» – нужно приобрести некие знания, потратить некоторые усилия и время, то есть преодолеть некоторое препятствие, порог. Это называется «порог вхождения». Так вот, один из признаков прагматического программирования – это «низкий порог вхождения». Такие языки программирования, как С++, Java, Python, C# и т.п. имеют высокий порог вхождения. Различные диалекты Basic обладают низким порогом вхождения.

В технических вузах программирование изучают в течение 2-4 семестров подряд. И преподают, как правило, С++. В нашем НГТУ (в начале «нулевых»; похоже, и сейчас ничего не изменилось) было так, что уже на первом семестре нам начали читать С++. Предполагалось, что «классический» Си студенты изучили ещё в школе. Нам сразу начали излагать концептуальные понятия объектно-ориентированного программирования. Каюсь, я до сих пор с трудом владею этой «парадигмой». В своё оправдание замечу, что и большинство моих однокурсников – кроме тех, которые сейчас работают профессиональными программистами – усвоили ООП примерно на том же уровне. Итак, высокий порог вхождения в C++ является слишком большим препятствием для того, чтобы этим языком овладело большинство студентов, не говоря о школьниках. А значит, все огромные возможности этого языка остаются для них недоступными.

Но может быть, пусть и не овладев С++, большинство «технарей» всё же умеет программировать на другом языке? Ведь в 21 веке способность писать простые программы весьма полезна: иногда с помощью компьютера нужно сделать что-то несложное, а готовой программы для решения этой задачи нет. Увы, вряд ли умеет. Насколько мне известно, в школах сейчас начинают с языка Лого. Может быть, для абстрактного изучения базовых принципов программирования этот язык и хорош, но для решения практических задач он не слишком пригоден. После «детского» Лого обычно переходят к изучению «серьёзного языка» – Паскаля или Си. Согласно сложившемуся стереотипу, Бейсик – это слишком «детский», «несерьёзный» язык, и поэтому не стоит тратить на него время. В результате получается так, что многие ученики пусть и сдают зачёты и экзамены по программированию, но в дальнейшем скоро забывают хитрости синтаксиса «серьёзного языка», и становятся чужды программированию, полагая, что это «не для их ума».

Всё вышенаписанное – не только мои мысли. Примерно то же самое говорил мне опытный преподаватель НГТУ, специалист по графическому языку программирования LabView Е.Д. Баран. В качестве решения он предлагал вместо C++ на первом семестре обучать студентов LabView, который отличается интуитивной понятностью и довольно низким порогом вхождения. Со своей стороны, я предлагаю знакомить школьников и студентов с языком QBasic. Пусть факультативно, пусть мимоходом – всё равно этого будет достаточно, чтобы привить многим вкус к прагматическому программированию.

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

Когда я учился в школе, а это было начало-середина 90-х, компьютеры ещё воспринимались как экзотика. Во всяком случае, систематических занятий по программированию у нас ещё не было. И тем не менее, я на своём 286-м самостоятельно изучил язык QBasic, располагая минимумом учебных пособий. Как? С помощью самого QBasic'а! (Далее – QB.) Этой маленькой DOS-овской программки. Снабжённой, надо заметить, замечательной гипертекстовой русскоязычной справкой. Открываешь в QB какую-нибудь программу, ставишь курсор на непонятный тебе оператор, нажимаешь F1 – и читаешь про него маленькую статью, нередко с практическими примерами использования этого оператора. Написал сам несколько операторов, нажал Shift-F5 – и безо всякого компилирования видишь результаты работы твоей программы. Если ты ввёл что-то неправильно, QB сразу же сообщит тебе об этом. Вот третий признак ПП: он настолько прост и понятен, что средний человек может освоить его сам, без опытных наставников, располагая лишь самим средством программирования и минимумом учебных пособий.

Итак, сведём воедино три признака прагматического программирования:

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

2. Практическая ориентированность: неспециалист в области программирования может решать некоторые реальные задачи в своей предметной области, либо просто писать программы для развлечения или самовыражения.

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

Теперь перейдём от теории к практике. Как начать работу с QB пользователю современного компьютера? Windows 7 и более новые не позволяют напрямую запускать DOS-овские программы. Самое простое в этом случае – использовать эмулятор DOS-овской машины DOSBox. DOSBox бесплатен, распространяется под открытой лицензией GNU, существуют его версии под Linux, для Windows есть «портабельные» версии (работающие без установки). Скачайте «портабельный» DOSBox v0.74 с сайта http://dosbox.ru.uptodown.com/windows и распакуйте его, например, в каталог D:\Dosbox. С настройками по умолчанию DOSBox вполне работоспособен, однако для удобства работы желательно его настроить, о чём мы скажем дальше.

В каталоге DOSBox запустите файл DOSBoxPortable.exe. На экране появится два консольных окна: DOSBox Status Window с отладочными сообщениями и DOSBox 0.74 с командной строкой виртуальной машины, в которой загрузился DOS. По умолчанию в виртуальной машине есть виртуальный диск Z:. Чтобы работать с QBasic, нужно монтировать в систему каталог с этой программой, присвоив ему букву диска. Например, вы скопировали файлы UNISCR.COM, UNIKBD.COM, QBASIC.EXE и QBASIC.HLP в каталог D:\BAS. Эти файлы можно взять отсюда:


http://nostalgy.net.ru/cyr/uni-full.zip

http://nostalgy.net.ru/program/qb-rus.zip


Затем в командной строке DOSBox введите команду:


mount c d:\bas


После этого в виртуальной машине появится диск C:. Вы можете перейти на него и посмотреть его содержание командами:


C:

dir


Если всё правильно, запускайте русификатор и сам QBasic командами:


UNISCR

UNIKBD /K:RSRC,LSLC

QBASIC


Без русификатора UNISCR вместо русских букв вы увидите непонятные символы. Без UNIKBD вы не сможете в DOSBox (и в «чистом DOS») переключаться с латинской раскладки на русскую комбинациями клавиш: левые Shift+Ctrl / правые Shift+Ctrl.

После команды QBASIC появится заглавный экран такого вида:


Нажав Esc, приступаем к работе. В поле ввода набираем код программы на языке QBasic, либо открываем готовую программу через меню «Файл». Для того, чтобы получить справку по всем операторам QBasic, нажмите Shift+F1 и перейдите к пункту «Предметный указатель». Для того, чтобы получить справку по оператору в коде программы, встаньте на него курсором и нажмите F1. Что удобно, в QBasic работает выделение фрагментов текста клавишами курсора при нажатой Shift. Копирование выделенного блока в буфер – Ctrl+Ins, вставка из буфера – Shift+Ins. Перемещение блока в буфер – Shift+Del, удаление блока – Del. Для запуска набранной программы нажмите Shift+F5.

Вот, собственно, и вся основная теория. Теперь рассмотрим некоторые тонкости. Скорость эмуляции виртуальной DOS-машины по умолчанию задаётся средней. Она измеряется в условных единицах – «циклах» – и отображается в заголовке окна DOSBox 0.74. Изначально скорость 3000 циклов. Чтобы ускорить работу DOSBox (например, если надо скорее завершить расчёты при моделировании), неоднократно нажимайте Ctrl+F12, чтобы замедлить – Ctrl+F11. Для того, чтобы не вводить каждый раз команды типа mount и т.д., запишите их в эквивалент AUTOEXEC.BAT – секцию [autoexec] файла dosbox.conf, который располагается – в нашем примере – в каталоге D:\DOSBOX\Data\settings\

Откройте в «блокноте» dosbox.conf и после строчки [autoexec] впишите следующее:


mount c d:\bas

c:

uniscr

unikbd /K:RSRC,LSLC

qbasic


Теперь сразу после запуска программы DOSBoxPortable.exe у вас будут автоматически стартовать русификатор и QBasic.

Рассмотрим несколько простых и полезных программ на языке QB. Первая генерирует 20 случайных целых чисел, лежащих в диапазоне от 0 до 10.

Код программы сопровождается комментариями, которые начинаются после одинарной кавычки '


CLS 'Очистка текстового экрана

RANDOMIZE TIMER 'Инициализация генератора

'случайных чисел RND по таймеру компьютера

'(без этого каждый раз будем получать

'одну и ту же последовательность "случайных"

'чисел

FOR i = 1 TO 20 'Цикл. Переменная i при каждом

'прохождении цикла увеличивается на

'единицу, принимая значения от 1 до 10.

'В цикле выполняются операторы, лежащие

'между строками FOR и NEXT

x = CINT(10 * RND) 'CINT - округление до

'ближайшего целого числа, выдаваемого

'оператором RND и умноженного на 10.

'И если RND лежит в диапазоне [0;1], то

'10*RND - в [0;10].

PRINT i, x 'Вывод на экран переменных i и x. Эти

'переменные выводятся в одну строку,

'разделяясь табуляцией. При каждом

'повторном вызове PRINT, если в конце строки

'оператора нет запятой или точки с запятой,

'происходит перенос строки. Точка с запятой

'разделяет символы одинарным пробелом.

'Пример: PRINT i; x,

NEXT i 'Конец цикла

SLEEP  'Пауза вплоть до нажатия любой клавиши

END  'Конец программы


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

Ниже показан генератор номеров билетов, в котором каждый новый билет сравнивается с предыдущими, и если обнаруживается совпадение, этот билет формируется заново, и так до тех пор, пока не сформируются все m неповторяющихся билетов:


CLS

m = 20 'Количество билетов

DIM x(m) 'Объявляем массив-строку,

'состоящую из m чисел. В массиве будут

'записаны номера билетов

FOR i = 1 TO m 'Основной цикл, в котором

'генерируется номер билета

10 x(i) = CINT(RND * (m - 1)) + 1 '...и вновь

'генерируем билет... до тех пор, пока не будет

'получен уникальный номер билета

FOR j = 1 TO i - 1 'Вложенный цикл, в

'котором проверяется уникальность

'каждого вновь созданного номера билета

'путем перебора и сравнения с

'предыдущими номерами

IF x(i) = x(j) THEN GOTO 10 'Если

'обнаружен повтор номера, идём к

'метке 10...

NEXT j

PRINT i; x(i)

NEXT i


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

В этих программах мы использовали готовый генератор случайных чисел RND, встроенный в QB. А как вообще работает генератор? Наибольшее распространение сейчас получили программные генераторы псевдослучайных чисел на основе линейного конгруэнтного алгоритма. Его легко реализовать и на QB:


CLS

X = 0 'Начальное значение последователь-

'ности псевдослучайных чисел (ПСЧ)

A = 2 'Множитель

C = 4 'Приращение

M = 7 'Модуль

FOR i = 1 TO 15

X = (A * X + C) MOD M  'Следующее ПСЧ

'получается из предыдущего

'Функция MOD возвращает остаток от

'целочисленного деления числа (A * X + C) на

'M. Например, 13 MOD 5 = 3, потому что

'ближайшее меньшее 13 число, делящееся на 5,

'равно 10. При этом образуется остаток:

'13-10=3

PRINT i, X

NEXT i


Запустив эту программу, получим последовательность: 4, 5, 0, 4, 5, 0, 4, 5... Это совсем не похоже на случайные числа! На самом деле всё нормально. То, что мы увидели – период генератора. Он очень короткий, и равен 3: через каждые 3 числа всё повторяется. Чтобы всё было нормально, нам просто надо сделать период таким, чтобы он был больше, чем то количество «случайных» чисел, которое нам надо получить. Период генератора не превышает значения модуля M. Если нам надо 1000 чисел, надо обеспечить условие: M > 1000. Но этого недостаточно. Период может оказаться и меньше M, если не выполнены определенные условия. Они изложены в теореме Халла-Добелла, и их рассмотрение выходит за рамки настоящей статьи. Отметим только, что для получения максимального периода нужно определенным образом выбирать константы A, C, M. Попробуйте, например, запустить генератор с переменными A = 21, C = 24, M = 75, и определите его период.

Если вы повторно запустите программу, последовательность чисел не изменится. Потому-то такие числа и называются псевдослучайными: их получают с помощью алгоритма, в котором нет никакой случайности. Как быть, если нам нужно каждый раз получать разные цепочки чисел? Инициализировать генератор. То есть, менять исходное значение числа X (в нашем примере исходное X=0). Кстати, это-то и происходит при вызове оператора RANDOMIZE TIMER в QBasic. Вы можете вместо строки X=0 вставить в программу такую строчку:


INPUT "Введите начальное значение ПСЧ: "; X


Теперь при запуске программы с клавиатуры надо ввести число и нажать клавишу Enter.

Наш генератор выводит целые числа. Но в ряде случаев нужен «стандартный» генератор, формирующий числа с плавающей запятой, распределённые в диапазоне [0;1]. Это легко сделать. Замените в программе строку с оператором PRINT:


PRINT i; X / (M - 1)


Кстати, вы можете заметить, что QBasic странно выводит числа с плавающей запятой, если они по модулю меньше 1, например -.1621622 – опуская ноль слева от десятичной точки. А если число по модулю меньше 0.1, QBasic переходит к экспоненциальной форме вывода, например 8.108108E-02, что означает 8.108108*10-2 или 0.08108108. Впрочем, так делают и многие другие языки программирования.

Следующая практическая задача, которую, возможно, вам понадобится решить, это файловый ввод-вывод информации. Ведь результаты работы программы иногда нужно не просто видеть на экране, а распечатать, передать по сети или обработать с помощью другой программы (например, я часто использую для этого MS Excel). Простой файловый ввод-вывод в QB осуществляется с помощью уже знакомых нам операторов INPUT и PRINT. В следующем примере мы будем вводить в программу начальное значение ПСЧ и количество генерируемых чисел из файла SEED.TXT, а получаемые случайные числа выведем в файл RANDOM.TXT (эти файлы будут располагаться в той же папке, что и сама программа QBasic). В файл SEED.TXT надо предварительно любым ASCII-редактором, например «Блокнотом», записать два числа через запятую (можно без пробела, или без запятой):

7, 12


OPEN "SEED.TXT" FOR INPUT AS #1 'Открываем

'файл SEED.TXT для ввода информации, иденти-

'фикатор файла - #1

OPEN "RANDOM.TXT" FOR OUTPUT AS #2

'Открываем файл RANDOM.TXT для вывода

'информации, идентификатор файла - #2

CLS

INPUT #1, X, N 'Считываем из файла #1

'переменные X, N

A = 21

C = 24

M = 75

FOR i = 1 TO N

X = (A * X + C) MOD M

PRINT #2, i; X / (M - 1) 'Пишем результаты

'работы в файл #2, а не на экран

NEXT i

CLOSE #1, #2 'Закрываем файлы #1 и #2


Для чего нужно использовать файлы для ввода «параметров конфигурации» программы, если можно менять значения переменных в коде самой программы? Это бывает полезно, если мы пожелаем скомпилировать программу. IBM DOS QBasic 1.0 версии, входящий в состав MS-DOS, не позволяет этого делать. Но существует самостоятельное приложение QuickBasic 4.5, в котором есть компилятор:

http://nostalgy.net.ru/program/qb45.zip

С его помощью можно получать исполняемые файлы, которые работают значительно быстрее, чем программа, интерпретируемая в среде QB. Ведь иногда скорость работы – к примеру, при моделировании или иных громоздких расчётах – имеет значение. Особенно при использовании эмулятора DOSBox.

Для того, чтобы получить exe-файл, откройте и отладьте BASIC-программу в QuickBasic 4.5. Затем выберите пункт меню Run, в нём – Make EXE File... В открывшемся меню выберите режим Stand-Alone EXE File («самостоятельный EXE-файл») и нажмите кнопку Make EXE. Если компилятор не найдёт в программе ошибок, вы получите готовую DOS-овскую программу в виде исполняемого кода, размером несколько десятков килобайт. На сегодняшний день это очень скромный объём, но можно уменьшить и его, используя другие Basic-компиляторы, например Almost Basic. Впрочем, это выходит за рамки данной статьи, а практической значимости практически не имеет.

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

http://users.freebasic-portal.de/freebasicru/user-files/FreeBASIC-1.05.0-dos.zip

FreeBasic 1.05 снимает ряд ограничений, присутствующих в традиционном QB, что бывает важно при громоздких расчётах. Подробнее о различиях языков FreeBasic и QBasic здесь:

http://users.freebasic-portal.de/freebasicru/helprus/LangQB.html

В частности, FreeBasic не выводит числа меньше |0.1| в экспоненциальном формате, то есть ряд чисел имеет общий вид, что довольно удобно.

Компилятор позволяет включить режим совместимости с Quick Basic, благодаря чему почти исчезает необходимость в переделке готовых QBasic-программ. Как использовать компилятор FBC? Скопируйте QBasic-программу (в нашем примере LKG.BAS) в папку с файлом FBC.EXE. Запустите эмулятор DOSBox и смонтируйте в нём папку FreeBasic. Введите команду:


FBC LKG.BAS -lang QB


Если FreeBasic не найдёт ошибок в коде программы LKG.BAS, он сформирует в той же папке исполняемый файл LKG.EXE.

Необходимо заметить, что FreeBasic, а также программы, скомпилированные с его помощью, не будут запускаться в DOSBox (и в «чистом DOS») без файла CWSDPMI.EXE, находящегося в той же папке. С другой стороны, CWSDPMI не нужен, если работать в DOS-окне Windows версий 9х или 2000/XP. Скачать CWSDPMI можно, в частности, с этого сайта:

http://zmn.botaniklife.ru/freesoftware.html

На этом мы завершаем первый урок «прагматического программирования» на QBasic. Продолжение – в следующем номере...


Михаил Бабичев (Антиквар)


### Scroll'ы бывают разные


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

В начале января в почту прилетает письмо от ААА с файлами и описанием демо: музыка, картинка, .GIF и ссылка на демо с описанием: «Выдери скролл, поменяй параметры и вставь в демо».

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

Раздумья были долгими, описание выйдет быстрее.

Для скролла отведено 8 байт или 8*8=64 пикселя. Но нужно учитывать размер букв 8х8 пикселей, тогда буквы не вылетят за край экрана.

Получается амплитуда 64-8=56 пикселей. Синус – функция периодическая, с диапазоном значений [-1..1]. Поэтому генерируется таблица 256 байт (PureBasic):


CreateFile(0,"zaasin.data")

For i=0 To 255

a.a=Int(28+28*Sin(i*#PI/128))

WriteAsciiCharacter(0,a)

Next i

CloseFile(0)


Теперь вывод на экран. Как он будет реализован? Набираю код:


zu:

ei:halt

ld a,0:out ($FE),a

ld (back_sp+1),sp

dup 192

ld sp,0

pop hl:ld (0),hl

pop hl:ld (2),hl

pop hl:ld (4),hl

pop hl:ld (6),hl

edup

back_sp: ld sp,0

ld a,7:out ($FE),a

jp zu


Здесь скорость выполнения кода реализована по старинке, видно, что вывод на экран оставит время для остальных действий демо – анимация картинки и воспроизведение музыки.

Куда разместить данные, которые будут скопированы с помощью стека?

Высота экрана 192 пикселя или 64*3 – тут решение напрашивается само собой. Данные для анимации хранятся в странице 0, я использую страницу 1, которая адресована $C000-$FFFF.

Получается, что:


$C000-$C008 - линия 0

$C100-$C108 - линия 1

...

$FF00-$FF08 - линия 63


Для второй половины выйдет:


$C008-$C010 - линия 64

$C108-$C118 - линия 65

...

$FF08-$FF10 - линия 127


И для линий 128-192 можно добавить 8 байт.

Эти данные расположены по линиям, например $C000-$C018.

Такая организация позволит быстро очищать буквы для скролла.

Подготовка формирования процедуры выглядела так:


;form output

ld hl,ou

ld de,$4018

ld bc,$C000

f1:

ld (hl),$31:inc hl

ld (hl),c:inc hl

ld (hl),b:inc hl

push de

dup 4

ld (hl),$E1:inc hl

ld (hl),$22:inc hl

ld (hl),e:inc hl

ld (hl),d:inc hl

inc de,de

edup

pop de

ld a,c

cp 16

jr nz,nxt_c

ld a,4*3

f2:

ld (hl),$D5:inc hl

dec a:jr nz,f2

nxt_c:

call nbde

inc b

jp nz,f1

ld b,$C0


ld a,c

add a,8

ld c,a

cp 24:jp nz,f1

ld (hl),$31:inc hl

ld (ous+2),hl

inc hl,hl

ld (hl),$C9:inc hl

....ниже кода:

nbde INC D:LD A,D:AND 7:RET NZ

LD A,E:ADD A,#20:LD E,A:RET C

LD A,D:SUB 8:LD D,A:RET

ous: ld (0),sp

ou


Прежде чем начать рисование, нужно подготовить данные.

Каждое значение из таблицы синуса можно разбить на:

X/8 – побайтное смещение для букв;

X mod 8 – значение сдвига данных 0-7.

При сдвиге байта вправо получится, что данные выйдут за пределы 8 бит, поэтому понадобится 16 бит.

Для простоты были подготовлены lookup table, где хранились нужные значения.

Например, по адресу $B001,$B101 хранится 1,0 по адресам  $B201,$B201: 0,128 (сдвиг значения 1 вправо 1 раз).

Картина будет такой:


N:00011000.00000000 значение байта

0:00011000.00000000 сдвиг 0 адреса $B000-$B100

1:00001100.00000000 ..

2:00000110.00000000

3:00000011.00000000

4:00000011.00000000

5:00000001.10000000

6:00000000.11000000

6:00000000.01100000 сдвиг 7


init:

;pregenerate shifts

ld hl,$B000

ld b,l

ro1:

push bc

ld d,l

ld e,0

ro2:

ld a,b:or a:jr z,ro3

srl d:rr e:djnz ro2

ro3:

pop bc

ld (hl),d:inc h

ld (hl),e:dec h

inc l:jp nz,ro1

inc h,h

inc b

bit 3,b

jp z,ro1

;синусы

ld hl,st

ld de,$AE00

i1:

ld a,(hl)

and 7

add a,a;*2

or $B0

ld (de),a:inc d

ld a,(hl):inc hl

srl a

srl a

srl a

ld (de),a:dec d

inc e

jp nz,i1


Заняли данные 4096 байт.

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

Процедура рисования букв в странице выглядела просто:


;calc position

sip:    ld hl,$AE00 ; здесь хранятся старшие байты адреса таблиц сдвига

inc l,l;,l

ld (sip+1),hl

exx

sva1:

ld hl,$AD00; буфер текста для шрифта

inc l

ld (sva1+1),hl

exx

xor a

ld (ds+1),a

pi:

ld d,$C0 ; цикл 64

hu:

ld b,(hl) ; адрес таблицы сдвига

exx

ld a,(hl)

inc l

exx

ld c,a

inc h

ld a,(hl) ; смещение на 8 байт

ds: add a,0

ld e,a

dec h

inc l

ld a,(bc),(de),a

inc b

inc e

ld a,(bc),(de),a

inc d

jp nz,hu

; 64 линии нарисованы, осталось прибавить 8

ld a,(ds+1)

add a,8

ld (ds+1),a

cp 16+8

jp nz,pi


Осталась только печать букв, разобраться будет несложно.


Прим. ред.: упомянутые в статье исходники и бинарники можно скачать здесь:

http://dgmag.in/N22/Scroll/zaaa.zip

В заголовке использовано изображение из New Year Demo:

https://zxaaa.net/view_demo.php?id=11161


Sh


### «Самозагрузочные» игры


В наше время все привыкли к стандартной процедуре инсталляции и запуска программ: сначала запускается установочный пакет, он копирует файлы на жёсткий диск и делает нужные настройки, ну а потом мы просто запускаем основной исполняемый файл программы (для Windows – какой-нибудь .exe). Но в начале 80-х ситуация была несколько другая. Тогда существовали игры (а может и другие программы), которые распространялись на загрузочных дискетах. Т.е. пользователь просто вставлял дискету в дисковод, включал свой IBM PC-совместимый компьютер, и всё – загружалась игра. Своеобразный вариант Plug'n'Play – подключил (вставил дискету) и играй. По-английски такие игры называются PC Booter games. Т.е. тут была такая же система, как с картриджами для приставок. Только вместо них были дискеты, которые содержали в себе и операционную систему, и программу, так сказать, «в одном флаконе». Собственно, как таковой ОС там и не было – просто программа, непосредственно (или через BIOS) общающаяся с аппаратурой.

При этом открыть такую дискету, скажем, под DOS'ом не получилось бы – на них использовалась своя нестандартная «файловая система».

Такой подход давал программистам, во-первых, полный контроль над ресурсами компьютера – не надо было делить их с ОС; во-вторых, он был чем-то даже проще для пользователей – им не надо было разбираться с установочными дискетами, думать, какой файл запускает игру и т.п. В-третьих, такая система позволяла делать довольно надёжную защиту от копирования, т.к. для дискет мог использоваться какой-нибудь нестандартный формат, и добраться до файлов игры потенциальному взломщику было проблематично.

Сейчас найти такие игры очень трудно – фактически, единственный сайт, где они до недавнего времени были собраны – Retrograde Station (retrograde.trustno1.org). Но он, к сожалению, закрылся. Однако UFO, к счастью, в своё время скачал содержимое этого сайта (https://yadi.sk/d/2GJPlxftUhQVa), за что ему огромнейшее спасибо! Я сделал на базе архива от UFO онлайн-копию сайта по адресу: http://retrograde.inf.ua/ . На этом сайте выложено больше сотни образов загрузочных дискет с играми. Плюс для многих выложены ещё и DOS-адаптации, также тут есть программы, нужные для запуска этих игр и работы с образами дискет.

Большинство игр предназначены для компьютеров уровня первых IBM PC или XT, т.е. 8088/86-процессор, CGA-монитор, 640 КБ (или даже меньше) ОЗУ, флоппи-дисковод эдак на 360 КБ.


Инструментарий

Итак, что нам понадобится, чтобы запустить подобные игры? Конечно, можно воспользоваться каким-нибудь «крутым» эмулятором типа PCEm. Однако он иногда сложноват в настройке, да и последние версии не работают на компьютерах без SSE2.

Я предпочитаю пользоваться более компактным и простым PicoXT – см. обзор в №8 журнала. Скачать его можно здесь:

http://old-dos.ru/dl.php?id=10975

Дальше просто выбираете File –> Floppy Drive A: –> Insert и указываете образ с игрой. Собственно, всё – должна пойти загрузка. В меню эмулятора можно настроить частоту и прочее.

Автор сайта Retrograde Station также рекомендует воспользоваться программой Flopper:

http://www.oldskool.org/pc/flopper/distribution/flop_102.zip

Она требует чистый MS-DOS (хотя бы из состава Win9x), причём нужна именно чистая загрузка – без himem.sys и прочего.

Установка программы, скажем так, не очень простая. Запускаем install.com, дальше нам понадобится чистая дискета (сгодится обычная 1.44 МБ 3.5"). Следуем указанием установщика, вставляем дискету, жмём Enter. Теперь нам надо загрузиться с этой дискеты. Потом грузимся как обычно, снова запускаем install.com, установщик считает с дискеты файл VECTABLE.DAT (как я понял, в этом файле установщик сохраняет наши оригинальные векторы прерываний). Всё, дискета больше не понадобится, теперь можно пользоваться эмулятором. Для этого нужно или запустить его в виде flopper image_file, или запустить без параметров, тогда вам покажут меню, где можно загрузить образ. Кстати, это меню (в большинстве случаев) можно вызвать и прямо из игры, нажав F12.


Программа имеет встроенную «замедлялку» для быстрых процессоров. Уровень замедления настраивается в том же меню.

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

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

«А как же реальное железо?» – спросите вы. Что ж, попробуем и на нём.

Правда, возникла одна проблема – образы в основном объёма 160 и 180 КБ, предназначены они для 5.25"-дисководов. А у меня сейчас под рукой такого не оказалось. Есть только 286‑я машина с 3.5" 1.44 МБ дисководом. Попытка просто записать с помощью RaWrite образ на 1.44 МБ дискету не увенчалась успехом, что и не удивительно, т.к. не совпадает количество дорожек и сторон (у 1.44 МБ две стороны и 18 секторов на дорожке, а у 160/180 КБ – одна сторона и 8/9 секторов на дорожке соответственно). WinImage такие образы вообще не открывает и не хочет записывать. Пришлось написать свою программку, которая преобразует форматы образов.

Она очень «сырая», это даже не альфа-пререлиз, так что особенно на неё не рассчитывайте. :-)

Скачать можно здесь:

http://dgmag.in/N22/pcbooter/IMGCONV2.zip

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

Лучше предварительно посмотреть информацию о форматах дискет здесь:

https://en.wikipedia.org/wiki/List_of_floppy_disk_formats

Пока этот конвертер проверялся только на преобразовании двух образов 160 KB –> 1440 KB.

После преобразования нужно чем-то записать полученный образ на обычную 3.5" 1.44 МБ дискету. С этой задачей справилась RaWrite v2.0 for DOS:

http://old-dos.ru/dl.php?id=8434

(Запускать строго из-под чистого DOS.)

После всего этого игры Goody и Freddy Fish (см. ниже) нормально загрузились с дискеты 3.5" 1.44 МБ на моём 286-м. Правда, скорость слишком большая – всё-таки 20 МГц для таких игр многовато.


Наконец, сами игры

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

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

При этом в первую очередь я обратил внимание на те из них, для которых нет DOS-адаптаций.

Итак, приступим.


Ghostbusters

Издатель/разработчик: Activision

Год выпуска: 1984


Игра по мотивам кинофильма «Охотники за привидениями». Изначально вам дают кредит в $10000, и на эту сумму нужно купить автомобиль и разное оборудование. Ну а дальше приступаем к ловле привидений.

С этой игрой, кстати, было больше всего проблем, потому что она требует джойстик. Пришлось воткнуть в PCI звуковую карту на чипе CMI8738 с game-портом, подключить туда мой джойстик Db Boeder, установить драйвера, откалибровать. После этого из-под DOSBox всё-таки удалось пройти дальше главного меню. Хотя всё равно джойстик там работает как-то странно...


Portal

Издатель/разработчик: Activision/Nexa Corporation

Год выпуска: 1986


Странная игра. Как я понял, сюжет такой: вы вернулись из столетнего путешествия по Галактике, и обнаружили, что все люди куда-то исчезли, Земля пуста и заброшена. Вам предстоит выяснить, что же произошло, копаясь в базах данных компьютерной сети Worldnet.


Championship Lode Runner

Издатель/разработчик: Broderbund Software

Год выпуска: 1984


Кто же не слышал про Lode Runner и его многочисленных клонов (к примеру, про «Антошку»)? Но это не оригинальная игра, а какая-то не совсем обычная вариация. Впрочем, суть та же – бегаем по лестницам и платформам, собираем золото, стараясь не сталкиваться с врагами.


Narco Police

Год выпуска: 1990

Издатель/разработчик: Dinamic Software/Iron Byte


Вы играете за полицейских будущего, борющихся против наркобаронов. Жанр можно обозначить, скажем, как тактический шутер с видом от третьего лица. Цель – уничтожить базу наркоторговцев, управляя тремя спецотрядами бойцов наркополиции. Игра имеет даже некоторое подобие 3D. Управление мне показалось не самым лёгким, так что нужно читать мануал.


Trivia 101

Издатель/разработчик: IBM/Digital Learning Systems, Inc.

Год выпуска: 1984


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

В принципе, основное назначение программы – генерировать вопросы и засекать время. Ну и вести счёт.


Rasterscan

Издатель/разработчик: Mastertronic

Год выпуска: 1987


Цель игры – отремонтировать сильно повреждённый космический корабль под названием Rasterscan. Управляете вы неким шарообразным роботом, причём делать это очень сложно, да и не умеет он ничего ремонтировать вначале – нужно сначала отремонтировать его самого.

Логическая игра, причём головоломки там довольно сложные.


Hellcat Ace

Издатель/разработчик: Microprose

Год выпуска: 1984


Авиасимулятор. Вам предстоит сражаться с японскими самолётами во времена Второй мировой войны (например, есть миссия «Перл-Харбор»). Управление вашим Hellcat достаточно простое – не надо взлетать и садиться, просто цельтесь и уничтожайте вражеские самолёты.


Goody

Издатель/разработчик: Opera Soft S.A.

Год выпуска: 1987


Симулятор вора. Цель игры – ограбить банк, для чего вам понадобится сначала добыть нужные инструменты.

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

Кстати, игра имеет русскую локализацию под названием «Город приключений».


Fleet Sweep

Издатель/разработчик: Mirror Images Software

Год выпуска: 1983


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


Freddy Fish

Издатель/разработчик: Mirror Images Software

Год выпуска: 1983


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


Заключение

Очень жаль, что эпоха таких «самозагружающихся» игр закончилась. Было бы интересно увидеть что-то такое и в наше время... Но, с другой стороны, для загрузочной флешки или DVD разработчикам вместе с игрой пришлось бы тащить кучу драйверов для всего «зоопарка» современных видеокарт и прочего железа. То ли дело раньше – CGA, EGA, VGA, ну, ещё парочку. :-) Да и другого железа тогда было не так уж много типов.

В общем, надеюсь, что прочитав всё это, вы тоже заинтересуетесь играми PC booter – попробуете их запустить, поиграть, может быть, найдёте аналогичные отечественные игры (мне не попадались), ну и поделитесь впечатлениями – в своей статье или хотя бы в комментариях к этой. :-)


uav1606


### Истории из жизни


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


История первая: триллер под скрип модема


Поздний вечер, пустая квартира, свет зажжён только в одной комнате, где стоит включенный компьютер. Тишина, сидящий за компьютером человек мерно водит мышь по столу, клацая периодически кнопкой. Тишину нарушает звонок телефона. Кажется, самое время подпрыгнуть с перепугу, но нет – звонок был оговорен, и после нескольких трелей телефона щёлкает релешка модема и в динамике раздаётся скрежет, свист, бульканье. Это звонит модемом товарищ – мы договорились попробовать поиграть по модему. В Doom 2 не получилось – поганец Win-модем не отказывался звонить и снимать трубку, но после запуска игра ненадолго зависала, а потом оказывалось, что по уровню могу ходить только я, но не стоящий рядом персонаж товарища. Решили тогда попробовать более современный Quake 2. У него уже нет своих средств для установки связи через модем, поэтому за связь между компьютерами теперь отвечает Windows. А потому игру удалось запустить без особых проблем (даже сейчас не вспомню, какие манипуляции проделывал).

И вот игра запущена, карта загружена – первый уровень – самое начало. Вроде бы избегал карту вдоль и поперёк, но когда оказался на абсолютно пустой базе без врагов, стало не по себе. Где-то прячется мой товарищ, которого надо найти и успеть пристрелить прежде, чем он сам меня обнаружит и начнёт палить. Начинаю искать – обхожу всё доступное пространство, пытаясь представить, как же он будет выглядеть. Волнуюсь. Ещё больше волнуюсь, когда никого не могу найти. Обшариваю все углы, но никого нет. Возвращаюсь в начало – обшариваю там – тоже никого, но ждать на одном месте не хочется. Иду снова к подобию бассейна. В какой-то момент в спину раздаётся стрельба. Не успеваю обернуться, как меня уже показывают лежащим на полу. Я мёртв. Вторая попытка – снова не могу его найти, и снова меня атакуют. Но в этот раз стреляют спереди. Стреляет... пустота. Виден только огонь, но ни человека, ни робота – ничего такого не вижу. Несколько раз попадаюсь. Потом психую и начинаю палить «на выстрел». Порой получается – невидимый враг (в буквальном смысле невидимый ☺) тоже ловит пулю, и игра сообщает об успехе. При этом в игровом чате появляются сообщения: «Ты меня не видишь? Не видишь? Не видишь!!!» – среди пустой базы с недобрым невидимкой – это пугает ☺. Итоговый счёт 10:4 в пользу невидимки, а то и 13:4. На том и закончили.

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

Так что, и «невидимке» тоже досталось. ☺


История вторая: о том, до какой степени может «устареть» операционная система


Старые жёсткие диски могут таить в себе массу интересного и полезного. Поэтому, прежде чем отформатировать винт под установку винды, ДОСа или полуоси, а то и чего ещё, стоит оглянуть, что же было до тебя. Так поступил и ваш покорный слуга, когда обзавелся несколькими почти новыми Seagate Medalist’ами на 10 ГБ. Так как downgrade-компьютер – 5х86 под управлением Windows 95 – разобрать для подключения второго жёсткого диска было проще, чем открывать корпус основного четвёртого пенька, то решено было приобретённый винт подключить к старому компьютеру.

Жёсткий диск нормально определился БИОСом материнской платы, появился в «Моём компьютере» – можно было начинать исследование содержимого.

Потихоньку копаюсь в диске. Ничего особо интересного – установлена была или Windows 98, или же Windows 2000 на FAT32. Вроде бы, максимум был установлен офисный пакет, архиватор и что-то ещё. Однако не это привлекло моё внимание. Гораздо больший интерес вызывали всплывающие сообщения о не найденной библиотеке – в духе: «Приложению не удалось запуститься, так как библиотека xxxxxxxx.DLL не была найдена». До подключения диска такого не было. Какая-то системная плюха – случайно удалилась библиотека, и системный процесс никак не может запуститься, хоть и периодически старается?

Тут вдруг обращаю внимание, что каждая папка кроме подпапок и файлов содержит exe-шник со значком, напоминающим папку. Оказалось, что я в пылу кликанья по папкам иногда кликал по этим хитрым значкам, которые имели такие же имена, как и каталоги их содержащие. Т.е. в каталоге C:\Windows лежал такой файл: Windows.exe. И запуск этого файла приводил к сообщению об ошибке.

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


Андрей Шаронов (Andrei88)


### Просто разный юмор


Чудеса «пиксельной графики» – угадаете персонажей?


### Над журналом работали


Дизайн/вёрстка/главный редактор – uav1606

Редактор – Вячеслав Рытиков (eu6pc)


Авторы:

Михаил Бабичев (Антиквар)

Андрей Шаронов (Andrei88)

flaz14

Вячеслав Рытиков (eu6pc)

Дмитрий Колмагоров (Temga)

Павел Ярославцев (paha_13)

Олег Павлов

uav1606

Sh


Сайт журнала:

http://dgmag.in


Раздел журнала на «Железных Призраках Прошлого»:

http://www.phantom.sannata.ru/articles/dgmag/


Группа ВКонтакте:

http://vk.com/dgmag


E–mail главного редактора:

uav16060 [cobaka] mail.ru