Burn the Lighter #04
24 сентября 2012

Insight - интернет на Спектруме, размышления moroz1999.

<b>Insight</b> - интернет на Спектруме, размышления moroz1999.
██████▓▓▒▒░░:                  ▄  ▄▄▄▄ ▄▄▄   ▄ ▄▄▄   ▄   ▄ ▄▄▄▄▄
████▓▓▒▒░░:                    █ █   █ ▄▄▄██ █ █▄▄▄█ █▀▀▀█   █

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

  Встречайте...

:░░▒▒▓▓██████████████████████████████████████████████████▓▓▒▒░░:
:░░▒▒▓▓██▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀▀██▓▓▒▒░░:
:░░▒▒▓▓██            Наше окно в чужой мир             ██▓▓▒▒░░:
:░░▒▒▓▓██                     или                      ██▓▓▒▒░░:
:░░▒▒▓▓██            Чужое окно в наш мир?             ██▓▓▒▒░░:
:░░▒▒▓▓██▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄▄██▓▓▒▒░░:
:░░▒▒▓▓██████████████████████████████████████████████████▓▓▒▒░░:

          ■.▄.■ by moroz1999 featuring nix./site ■.▄.■

  Ну-с, сегодня у нас под Spectranet есть  один  рабочий  клиент
Twitter, один рабочий клиент IRC и одна  рабочая  мультиплеерная
игра. Но как можно  назвать  карточку  для  выхода  в  интернет,
которая  не  даёт  возможности  полазить  по  его  просторам   с
практически такой же простотой, которая  имеется  в  современных
веб-браузерах?

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

  Итак, цель этой статьи - попробовать поднять дискуссию на тему
наилучшей реализации веб-серфинга  на  базе  ZX  Spectrum.  Тема
довольно актуальная, так  как  буквально  на  днях  в  свободную
продажу поступила Spectranet, самостоятельно реализующая  TCP/IP
стек для передачи инфы.

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

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

███████████████████████████████████▓▓▓▒▒▒░░░: Бэкграунд проблемы

moroz1999:

  Поскольку Spectranet в ближайшее время, по  всей  вероятности,
наиболее  распространится  на  западе,  в  том  числе  и   среди
владельцев  фирменных  машин  с  48K  памяти,   на   техническую
реализацию   веба   на   Спектруме    накладываются    серьезные
ограничения:
  1. Стандартный  экран  не  позволяет  отображать  огромные   и
     сложные структуры.
  2. Малый объем памяти не даёт особых возможностей  для  работы
     со "взрослым" HTML-ом.
  3. Цветовые  ограничения и медленная скорость конверсии делают
     просмотр png/jpg графики почти нереальным.

  Эти  три  пункта  делают  просмотр  HTML  страниц   совершенно
невозможным: например, главная страница  Speccy  Live  весит  92
килобайта, а это еще легковесный пример.

Обломыч:

  А о сайтах, сделанных на Flash`е, вообще можно не  зарекаться.
Конечно,  можно  попробовать  написать  клиент,  который   будет
грузить программы как сайты. Можно.  Но  вот  только  кто  такие
сайты будет готовить? Более того, просматривать как  дискмаговые
статьи, так и интернет-страницы гораздо удобнее и  эстетичнее  в
каком-нибудь ZX Format`е  или  даже  Enigm`e,  чем  в  оболочке,
слабанной на Бейсике. :)

█████████████████████████████████▓▓▓▒▒▒░░░: Предлагаемое решение

moroz1999:

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

  Что это может быть? 

  В качестве транспорта необходимо воспользоваться уже имеющейся
в  Spectranet  реализацией  TCP/IP.  Это  позволит  при  желании
оторваться от Spectranet и задействовать любую  другую  железку,
если таковая вообще появится.

  В  качестве  основного  рабочего  протокола  передачи   файлов
разумно будет не изобретать велосипед и остановиться на  старом-
добром HTTP 1.0, потому что:
  1. Это позволит воспользоваться огромным  количеством  всякого
     PC-софта типа Apache или nginx.
  2. Можно заюзать кучу готовых  и  продуманных  фич  стандарта.
     Например, отправлять  с  запросом  свой  User-Agent,  чтобы
     сервер мог автоматически распознать ZX-браузер и отдать ему
     какой-то  свой   контент.   Для   длинных   текстов   можно
     задействовать Content-Range, чтобы  браузер  мог  в  нужный
     момент подчитать следующую порцию контента и не упираться в
     ограничения по памяти.

  Вместо полномасштабного HTMLЧ/5 необходимо использовать что-то
в разы более легковесное и  привычное  формату  ZX  -  например,
какой-то из текстовых форматов журнала или газеты.

  Требования, которые сходу приходят в голову:
  1. Гиперссылки
  2. Расширяемость и человекочитаемость
  3. Саппорт скачиваемой с сайта музыки
  4. Саппорт иллюстраций
  5. Раскрашиваемость текста

  Наиболее близок к этому варианту, imho, Quick HyperText.  Если
кто-то не знаком с его возможностями,  то  можно  скачать  Quick
HyperText System v0.65 by Coders' Academy'2004 с Virtual TR-DOS.

  Резюмируя первичное видение, под жесткие аппаратные требования
отлично подошла бы связка HTTP+упрощенный HTML  наподобие  Quick
HyperText. Спектрумовский веб-сайт в ZX браузере выглядел бы как
классический журнал или газета - с иллюстрациями в  формате  ZX-
графики  и  под  скачанную  с  сайта  AY-музыку.  Куски   текста
подчитывались бы на ходу во время скроллинга текста, файлы можно
отдельно скачивать на локальный диск, если необходимо.

  Отсутствие обратной совместимости QHT  с  HTML  и  настольными
браузерами - совершенно незначительная вещь, так как  содержимое
можно генерировать на сервере в нужном формате в зависимости  от
платформы. А можно и вовсе  закрыть  доступ  с  PC,  сделав  его
эксклюзивным для "правильных" платформ.

Обломыч:

  Ещё  один  наглядный  пример  использования   гипертекста   от
Vitamin`a - газета  TaganNews,  хотя  наиболее  наглядным  стоит
считать его последний, восьмой, выпуск. Это так, к сведению.

  Кстати говоря,  вспоминая  нашу  с  Морозом  переписку,  стоит
упомянуть также то, что была идея  сделать  стандарт  страниц  в
духе  Insanity  или  бeccul`a  Будущего/Psychoz`a,   в   котором
страницы будут идти сплошным текстом на  48  символов  в  строку
(ascii-картинки, соль и перец по вкусу),  а  справа  от  него  -
служебные  символы  (49-й -  обозначение   строки   с   ссылкой/
картинкой, 50-й и 51-й - цвет  строки/абзаца,  с  использованием
гигаскрина).  В  самом  начале  текста  можно   будет   написать
собственно адреса  страниц,  которые  и  будут  привязываться  к
ссылкам.

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

████████████████████████▓▓▓▒▒▒░░░: Просмотр остального интернета

moroz1999:

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

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

  Так,  например,  можно  написать  на   PHP/Python/чем   угодно
небольшую софтину, которая сливала бы HTML и  дико  упрощала  бы
его до QHT, кэшируя на какое-то время на серваке. То  есть,  ZX-
браузер от такого сервака получал бы отличнейший текст в том  же
виде,  что  и  специально  заготовленном  заранее.  Можно   даже
распознавать наличие CSS для распечатки на принтере и  применять
его предварительно, выкидывая всякие колонки и меню.

Обломыч:

  Вообще,  если  метод  получит   достаточное   распространение,
конвертацию можно  организовывать  прямо  на  сайте,  что  будет
довольно практично для таких ресурсов  (де-факто,  баз  данных),
как WoS Infoseek Database, Speccy Live, ZXPress,  ZX-Art  и  так
далее, поскольку апдейты у  них  случаются  чуть  ли  не  каждую
неделю, а врукопашную делать спектрумовские версии  страничек  -
геморройно.

███████████████████▓▓▓▒▒▒░░░: Что нужно сделать в первую очередь

moroz1999:

  В первую очередь нужно сделать простейший HTTP клиент, который
умел бы отправлять запросы через тот  же  Spectranet  и  парсить
ответы, вываливая содержимое в оговоренную область памяти. После
этого можно было бы  чисто  как  proof  of  concept  попробовать
прикрутить к нему просмотрщик QHT,  а  потом  уже  решать,  куда
двигаться  дальше   -   прикручивать    новые    теги,    менять
инфраструктуру или развивать пакеты для работы с контентом.

  Какие клевые применения могут быть у этой технологии?
  1. Запись образа TRD на дискету прямо с Virtual TR-DOS
  2. Просмотр работ с ZX-Art прямо на реале
  3. Прослушивание музыки с ZX-Tunes прямо с живого AY
  4. Ведение подпольной новостной ленты,  доступной  только  ZX-
     браузерам
  5. Новый толчок для ZX-прессы, которую  можно  будет  собирать
     прямо на сайте - это ли не то, что когда-то задумывалось  в
     Scenergy?
  6. Запуск кода из онлайна по типу флэш-роликов? Заодно получим
     первые трояны на ZX? :)

Обломыч:

  Насчёт предпоследнего пункта: было  дело,  когда  станции  BBS
принимали  письма  для  ныне  неактивных  газет  типа  Oberon`a,
Nicron`a, Maximum`a, Lime Tree... Есть  подозрения,  что  теперь
фидбэк на прессу, игры и демы будет собираться подобным образом.
;)  Поэтому  не  мешало  бы  реализовать   такую   фичу   любого
современного  браузера,  как  ввод   текста!   Ещё   неизвестно,
получится  ли  перенести  на   Спектрум   пару-тройку   форумов,
посвящённых ему же, но к этому стоит стремиться. А пока придётся
довольствоваться комментариями на Speccy  Live  и  онлайн-версии
Krik`а.

  Говоря о софте, стоит упомянуть  о  непрекращающейся  холодной
войне между TR-DOS и  DivIDE.  Нет,  понятное  дело,  что  можно
сделать браузер на оба этих формата, но стоит также подумать и о
скачке софта, который будет  поставляться  и  для  отечественных
спектрумистов,  и  для  зарубежных!  Самый   надёжный   вариант:
распространять новые программы в виде BASIC-файла, с последующим
их переносом на дискету или обработкой и переносом  в  .tap  или
дискету +2/+3.

  Ну, а насчёт последнего пункта... Ну уж дудки! Спектрум у  нас
будет так же чист, как и Линукс. Хотя троянского коня  подсадить
на него можно, да... Только не закодированного на ассемблере, а,
как минимум, нарисованного. >:)

█████████████████████████████████▓▓▓▒▒▒░░░: Заключительное слово

Обломыч:

  Само собой, для того, чтобы  реализовать  данную  идею,  стоит
приложить немало усилий. И не по поводу того, что стоит  сделать
грамотный формат подачи страничек  -  это  ещё  только  половина
дела. Вопрос в другом: как *вы* поддержите данную идею? Захотите
написать на том же гипертексте  Витамина  спектрумовскую  версию
своей  веб-странички?  Легко!  Появится   желание   адаптировать
зарубежную железку под Пентевы или сделать  свой,  отечественный
вариант? Да  как  вам  угодно.  Появилось  желание  организовать
небольшой сервис по временному  хранению  ZX-файлов?  Это  дело!
Будет немного сложно реализовать, но тем не менее.

  Сейчас, конечно, Spectranet не настолько распространён. Причём
не то что среди ex-USSR, а ещё и среди  всей  остальной  Европы!
Хотя шоу только  начинается,  по-моему,  судить  о  перспективах
такой идеи, как интернет на  Спектруме,  ещё  рановато.  :)  Вот
когда  начнётся  засилие  сайтов  и  не   меньшее   засилие   их
посетителей, которые сидят, как минимум,  в  эмуляторе...  Но  я
чувствую, что до этого момента  ждать  осталось  недолго,  благо
Moroz1999  уже,  наверное,  пишет  гипертекстовый   формат   для
сопряжения со Spectranet`ом, вкупе с тестовой оболочкой! Так что
следите за новыми сообщениями по этой  теме  и,  как  говорится,
ждите наступления часа Икс!

moroz1999:

  На самом деле,  пока  ничего  не  пишу,  но  opensource  HTTP-
клиент - тема достаточно любопытная, чтобы ею заморочиться.

:░░░▒▒▒▓▓▓████████████████████████████████████████████▓▓▓▒▒▒░░░:

  P.S. Пока верстался данный текст, на просторах  интернета  уже
были афишированы первые шаги в направлении данной  идеи,  и  имя
им - WoSBridge. Правда, сейчас данный сервис находится в  стадии
ну очень раннего превью  и  рассчитан  только  на  использование
архивов Sinclair Infoseek, хотя я сомневаюсь, что  многим  будет
удобно одним только лазеньем по отдалённым от юзера папкам через
коммандную строку... :)



Другие статьи номера:

Incoming - новые игры: Mojon Twins' Covertape #1, Willy Meets The Beatles, VADE RETRO, RodLand (in color).

Insight - интернет на Спектруме, размышления moroz1999.

Credits - авторы газеты.


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Похожие статьи:
Раскрутка - описание игры ROBOCOP.
Сергей Щеглов - Замок: Часть 1
Interface - gamemakers questionnarie.
Разное - Amiga: вопросы и ответы.
Партийная зона 2 - результаты виртуального компо СC.999.999.

В этот день...   4 декабря