Ретроностальгия: почему мой веб-сайт выглядит как Windows 9x

Автор оригинала: Ash Kyd
  • Перевод
Уже долгое время я хотел обновить свой веб-сайт, но я не дизайнер, поэтому знал, что мои попытки усовершенствования уже имеющегося выльются в сумбурную мешанину.


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

Что касается дизайна… то почему бы не отдать дань уважения одной из самых значимых операционных систем моей юности: Windows 9x. И почему бы ради забавы не сделать его таким, чтобы он умещался на дискете?

Популярность ретроностальгии


Windows 9x — это общее обозначение систем с Windows 95 до ME. Они были довольно некачественно построены на основе MS-DOS и во многом оказались отстойными. Но в своё время они совершили революцию, и у нас не было других примеров для сравнения.

Эстетику дизайна, особенно эпохи Windows 98, стоит оценить своими глазами.


Когда-то дизайн UI был интересным, не забывайте об этом

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

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


Я говорил об этом на октябрьской митапе QueerJS в Амстердаме.


«Ребята, он запускается с дискеты»


Кроме того, весь сайт спроектирован так, чтобы умещаться на 3,5-дюймовую дискету, вставленную в компьютер Raspberry Pi с установленным nginx, находящийся на полке под телевизором у меня дома.

Это означает, что весь сайт всегда будет умещаться в 1,44 МБ (или меньше), как будто пришёл к нам прямиком из 90-х.

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

Также он использует Netlify для сборок и Cloudflare в качестве CDN, поэтому высока вероятность, что вам не придётся ждать, пока данные считаются с дискеты. Но никогда нельзя знать этого точно! Меня такая перспектива немного будоражит.

React и open source


По большей мере этот сайт создан с помощью Preact (быстрой 3-килобайтной альтернативе React, имеющей такой же современный API). Контент создавался с помощью Hexo, а затем постепенно совершенствовался, поэтому можно отключить Javascript, и сайт почти полностью останется функциональным.

При создании интерфейса я вдохновлялся наиболее ностальгическими частями Windows 98 и ME, которые были моими любимыми ОС в годы формирования личности.

Если откровенно, то это был ужасный выбор, потому что модель подъёма состояния/рендеринга (p)react неидеальна для таких больших приложений, и в результате я пришёл к архитектуре, которая очень неэффективна и плохо поддерживается. Но теперь это уже не очень важно, в принципе, сайт работает довольно неплохо.

Компоненты UI и часть приложений выпущены на Github как библиотека под названием ui95. Она довольно шероховатая, но её можно использовать как библиотеку для создания собственных сайтов и приложений, а также как учебный инструмент. Любопытно, что Артур Бьен работал над библиотекой компонентов, стилизованных под Windows 95, поэтому, вероятно, её тоже стоит попробовать.

Некоторые приложения созданы сторонними разработчиками, в том числе Paint, и изначально я планировал добавить Webamp, но он слишком объёмен и не поместился в выбранный мной размер. Лицензионную информацию можно посмотреть в каждом из приложений.



На правах рекламы


Серверы для размещения сайтов — это про наши эпичные! Все серверы «из коробки» защищены от DDoS-атак, скорость интернет-канала 500 Мегабит, автоматическая установка удобной панели управления VestaCP для размещения сайтов. Лучше один раз попробовать ;)

VDSina.ru
Серверы в Москве и Амстердаме

Комментарии 45

    0
    Вспомнил древний сайт filimon.tk с подобной идеей (к сожалению, сейчас не доступен). Тогда еще и React не было. Автору, если читает, привет.
      +4
      Сайт просто шикарен! Особенно мне понравилась перезагрузка)
        0
        Там еще и работающий JS Paintbrush есть, можно даже файл с своего компьютера загрузить и выгрузить обратно!
          +1
          Это с открытым кодом: jspaint.app
            +1
            причем в этом пейнте даже оригинальная пасхалка с увеличением в 10 раз работает! :)
            (нужно ткнуть на белую линию под 8x)
              0
              Внимание к мелочам- уважаю
          +14
          Windows 9x — это общее обозначение систем с Windows 95 до ME. Они были довольно некачественно построены на основе MS-DOS и во многом оказались отстойными.
          Нет, Windows 9x не являлись надстройками над DOS. DOS была по сути загрузчиком для Windows. По этой логике Linux — надстройка над GRUB.
          Интересно, что спустя 20 миф все ещё жив. Особенно мне нравится суждение о «качестве» системы от человека, считающего что Windows просто надстройка над DOS. Ах да, пусть люди говорящие о качестве сами попробуют написать многозадачную ОС, с графическим интерфейсом, способную работать на 8мб памяти.
            +9
            При этом способную нативно запускать программы, скомпилированные под предыдущие версии Windows, с другим API (Win16), сохраняя их полную совместимость с новой ОС, вплоть до OLE, сетей и всех устройств мультимедиа. Это всё равно, что из 2021 года шеймить авиацию 60-х годов, поскольку те самолёты чаще падали.
              +4
              В добавок еще и совместимую с msdos кроме того самого win16, что по мне посложнее.
                0
                А вот как раз в этом месте — собака и порылась.
                Вопрос «является ли Windows 9x надстройкой над DOS или нет» — очень сильно в это упирается.
                На самом деле там два режима: если int 13h указывает в BIOS — DOS не используется, если не в BIOS — всё идёт через DOS (и начинает тормозить особенно сильно).
                А как иначе совместимость с загрузочными DOS-вирусами обеспечить?
                  0
                  Уточнение: если int 21h указывает в DOS — DOS не используется, если не в DOS, а в какого-то резидента — всё идёт через этого резидента (и начинает тормозить особенно сильно). Через сам DOS не идёт ничего никогда.
                    0
                    Во-первых всё-таки INT 13h (загрузочные вирусы загружаются раньше DOS и перехватить 21h никак не могут), а во-вторых — в этом случае вообще всё идет через DOS. Так как считается, что мы не можем знать — что ещё там какие резиденты натворили).
                      0
                      Гуглёж подсказывает, что если int 13h перехвачен, то действительно используется перехватчик; но только для HDD (MS не нашли незлонамеренных прог, перехватывающих работу с дискетами) и всё равно мимо DOS: 32-битный драйвер FAT будет обращаться к перехватчику int 13h.
                        0
                        Гуглёж подсказывает

                        До этой статьи догуглились?

                        Там тоже не все сложные случаи разобраны, но, в конечном итоге может как оказаться, что у вас Windows 9x как всё делает в защищённом режиме своими драйверами, так и вариант, когда всё обращение к железу (кроде графики) идёт и через DOS и через BIOS.

                        Отсюда и рассказы об «оболочке». Novell NetWare никто «оболочкой» не называл имено в силу отсутствия этих гибридных режимов: нет у тебя драйвера для конроллера HDD? Значит ничего работать не будет.

                        А Windows 9x не так: она вполне может использовать драйвера DOS при необходимости…

                        всё равно мимо DOS: 32-битный драйвер FAT будет обращаться к перехватчику int 13h
                        Это где так написано? Насколько я знаю всё равно всё идёт через DOS. Int 25 и Int 26.

                        Впрочем сильно спорить не буду: давно это было, да и я школе не сильно во всём этом копался. Но народную примету — если дикие тормоза, то нужно Windows 95 перезалить (у нас была налажена процедура, успевающая это сделать с сервера как раз за перемену) — запомнил накрепко.
                          0
                          До этой статьи догуглились?

                          И более того, эта же самая ссылка была в моём предыдущем комменте :)

                          она вполне может использовать драйвера DOS при необходимости…

                          Кажется, у нас расхождение в терминологии. Вы имеете в виду «драйвера в составе DOS» или «3rd-party драйвера для DOS»?
                          В первых никогда не возникает необходимости — эквивалентная функциональность встроена в саму винду; а последние она действительно может использовать, но сам DOS при этом не задействуется.

                          Это где так написано? Насколько я знаю всё равно всё идёт через DOS. Int 25 и Int 26.

                          Это я открыл VFAT.VXD в IDA и увидел, что обращения к диску идут через VxDCall IOS_SendCommand, а не через прерывания. В свою очередь, IOS.VXD дёргает непосредственно int 13h при необходимости, а 25h/26h не дёргает.
                            0
                            Вы имеете в виду «драйвера в составе DOS» или «3rd-party драйвера для DOS»?
                            Я имею в виду «драйвера для операционной системы DOS».

                            Вот те самые, которые «настоящие» операционки (Windows NT, OS/2 или там Unix какой) использовать не могут. Ни напрямую, ни через DOS, никак.

                            а последние она действительно может использовать, но сам DOS при этом не задействуется.
                            Что значит “не задействуется”? Вот взял я какой-нибудь Stacker for OS/2, который про Windows 95 ни сном ни духом. Как Windows 95 умудряется с ним работать, если она DOS не задействует? А как тогда вся эта конструкция работает? Драйвер Stacker'а требует наличия DOS…

                            Это я открыл VFAT.VXD в IDA и увидел, что обращения к диску идут через VxDCall IOS_SendCommand, а не через прерывания. В свою очередь, IOS.VXD дёргает непосредственно int 13h при необходимости, а 25h/26h не дёргает.
                            Ну откуда-то же берутся заявления Windows 95 can be installed on systems that use Stacker 2.x, 3.x, or 4.x; however, versions earlier than 4.1 do not support long file names.

                            Так что есть ощущение, что вы не все тайные тропы в Windows исследовали и она-таки может использовать куда больше DOS'а, чем положено «полноценным операционкам». Понятно, что всё это «только если прижмёт», в «нормальном» режиме она использует DOS только как загрузчик… но в этом случае непонятно зачем её «прибивать гвоздями» к одной, конкретной, версии DOS. А вот для такого интимного общения, когда DOS может использовать «по полной» — да, пожалуй зафиксировать версию DOS было бы неплохо.

                            OS/2 и Novell Netware могут у себя в Dosbox'е использовать любую версию DOS, к примеру. Именно потому что сами они в его услугах не нуждаются.
                              0
                              А как тогда вся эта конструкция работает? Драйвер Stacker'а требует наличия DOS…

                              В посте Чэня как раз об этом и написано: Windows создаёт mock-среду DOS специально для того, чтобы драйвера для DOS могли продолжать работать. Драйвер дёргает int 21h, а вызов на самом деле идёт в VFAT.VXD или ещё в какой-нибудь VXD. И наоборот тоже: код защищённого режима дёргает какой-нибудь VXD, а вызов на самом деле идёт драйверу, перехватившему int 21h до загрузки Windows.

                              Ну откуда-то же берутся заявления Windows 95 can be installed on systems that use Stacker 2.x, 3.x, or 4.x; however, versions earlier than 4.1 do not support long file names.

                              Вы уверены, что Stacker перехватывал int 13h, а не int 21h? Судя по тому, что в Q85194 написано «If you use any special drivers for your hard drive, such as Disk Manager or Stacker, make sure the drivers are in your new CONFIG.SYS and AUTOEXEC.BAT files», Stacker загружался после DOS.
                                0
                                В посте Чэня как раз об этом и написано: Windows создаёт mock-среду DOS специально для того, чтобы драйвера для DOS могли продолжать работать.
                                С этого момента — поподробнее. Какие именно слова вас навели на такие мысли.

                                Наоборот, вот это вот
                                When a program issued an int 21h call to access MS-DOS, the call would go first to the 32-bit file system manager, who would do some preliminary munging and then, if it detected that somebody had hooked the int 21h vector, it would jump back into the 16-bit code to let the hook run.
                                выглядит как «работа оболочки, а не полноценной OS».

                                Там даже у него разноцветная картинка есть и там видно, что в этом случае к железу обращение идёт через 16-битный DOS-драйвер, а не через что-то в Windows 95.

                                А IFSMGR — это как раз врезка в DOS (нифига не мокнутую DOS, а самую обычную), чтобы в нужный момент обратиться в Windows 95.

                                Вы уверены, что Stacker перехватывал int 13h, а не int 21h?
                                Это-то понятно, про INT 13h вы вроде бы правы, а я неправ.

                                Но и эта статья и страничка из MSDN и вообще все описания указывают на то, что Windows 95 может встать в таком кривом варианте, когда она и Int 21h и Int25h/Int26h и Int13h — вообще всё, что возможно — будет «пропускать» через DOS.

                                Чем не «оболочка»?

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

                                Word for DOS же операционкой не называют? А графические драйвера у него свои…
                                  0
                                  Там даже у него разноцветная картинка есть и там видно, что в этом случае к железу обращение идёт через 16-битный DOS-драйвер, а не через что-то в Windows 95.

                                  Верно: через 16-битный драйвер, написанный для DOS — а не через какие-либо компоненты самой DOS.

                                  Windows 95 может встать в таком кривом варианте, когда она и Int 21h и Int25h/Int26h и Int13h — вообще всё, что возможно — будет «пропускать» через DOS.

                                  Пропускать через перехватчики, загрузившиеся до Windows (то ли под DOS, то ли до DOS) — да, будет. Эти перехватчики могут быть кодом для DOS, но это не сама DOS.

                                  Какие именно слова вас навели на такие мысли.

                                  Notice that all the work is still being done by the 32-bit file system manager. It’s just that the call gets routed through all the 16-bit stuff to maintain the charade that 16-bit MS-DOS is still running the show. The only 16-bit code that actually ran (in red) is the stuff that the TSR and network driver installed, plus a tiny bit of glue in the 16-bit IFSMGR hook. Notice that no 16-bit MS-DOS code ran.
                                    +1
                                    Notice that all the work is still being done by the 32-bit file system manager. It’s just that the call gets routed through all the 16-bit stuff to maintain the charade that 16-bit MS-DOS is still running the show. The only 16-bit code that actually ran (in red) is the stuff that the TSR and network driver installed, plus a tiny bit of glue in the 16-bit IFSMGR hook. Notice that no 16-bit MS-DOS code ran.
                                    Ну это ему повезло так, что IFSMGR «отфутболил» запрос обратно в Windows.

                                    Там не mock'и, а драйвер специальный, который перехватывает переход из других драйверов (загруженных позднее) в DOS. Но у него получается не всегда.

                                    Могло и не повезти. В частности со Stacker'ом — точно не везёт, почему и длинные имена файлов становятся недоступны.
                                      0
                                      Верно: либо резидент вызывает функции DOS, и IFSMGR их перенаправляет в ядро Windows; либо резидент делает всю работу сам (возможно, задействуя BIOS), и тогда ядро Windows, равно как и DOS, остаются не у дел. Второй случай, по всей видимости, описывает ситуацию со Stacker — я думаю, он сам парсил каталоги ФС, а не использовал для этого функции DOS.

                                      Наверное, единственный случай, когда бы DOS задействовался после запуска Windows — это если резиденты при загрузке до Windows искали в памяти образ DOS и обращались непосредственно по этим адресам, не глядя на вектора прерываний. Какие-то вирусы точно вытворяли что-то такое для маскировки.
                                      0
                                      Верно: через 16-битный драйвер, написанный для DOS — а не через какие-либо компоненты самой DOS

                                      Для того, чтобы загрузить 16-битный драйвер, написанный для DOS — придется загрузить саму DOS. Более того, она уже загружена со всеми драйверами реального режима до запуска win.com.


                                      Что еще забавнее, вы говорите о DOS в v86mode, игнорируя системный DOS.

                                        0
                                        Никто не спорит, что DOS необходим для загрузки и 16-битных драйверов, и самой Windows. Дискуссия зашла о роли DOS в уже загруженной Windows.
                0

                Ох, меня недавно за точно такое же сообщение жестко заминусовали)

                  +1
                  Даже Windows 3.11 является ОС — умеет своими силами виртуализировать память. Но «профессиональная» NT, которой мы пользуемся до сих пор, стала гораздо надёжнее «потребительской» 9х.
                    0
                    И память, и устройства, и многозадачность, и межпроцессную коммуникацию… Конечно ОС.
                    0
                    Попробуйте самостоятельно найти информацию о том, в чём заключается принципиальное отличие линейки Windows 95/Windows 98/Windows Me от линейки Windows NT/Windows 2000/Windows XP/Windows Vista/Windows 7…

                    Замечу, что Windows 95 и Windows 98 сосуществовали с Windows NT, а Windows Me — с Windows 2000.
                      0
                      Они также сосуществовали с MacOS, с OpenVMS, с OS/390 и с чёртом в ступе — и дальше что? Среди всего этого только одна труъ-ОС, а всё остальное — надстройки?
                        +1
                        C Windows NT сосуществовала даже с Windows 3.1! Сейчас очень непривычно видеть NTFS и «современные» админские опции в «том самом» интерфейсе Win3x — реально, разрыв шаблона.

                        image
                        0
                        причем написать на WASM и запустить в браузере 8)
                          –1
                          До Windows 3х включительно, вроде, были надстройками.
                            0
                            Начиная с Windows/386 у неё своё собственное ядро с собственными драйверами устройств.
                              +1
                              Windows/386 — это вообще очень странный гибрид. Я про эту хохму совсем недавно узнал.
                              Вы можете поставить Windows/386 и, внезапно, использовать её даже на оригинальной IBM PC. И никаких драйверов устройств там не будет. Только нужно использовать для запуска win86.com.

                              Но при этом там есть отдельный файлик win386.exe. Который как раз и содержит дравера устройств, поддерживает вытесняющую многозадачности и всё такое прочее… такой себе «DesqView от Microsoft» и вот именно вот это оно запускает в одном из сеансов DOS win86.com (и всё остальное, что есть в Windows).

                              Так что правильнее говорить, что у Windows/386 в коробке есть нечто со своим собственным ядром.
                              0
                              До Windows 3х включительно, вроде, были надстройками.

                              А причем здесь Windows 3х? Речь в статье о Windows 9x.
                            +1

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

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

                                Вообще сильно бесят скрывающиеся по указателю мыши элементы. Просто ведёшь мышью по экрану, а на нём целая дискотека из них.
                                +2
                                Так, по сути научный подход применяли. Компьютер — это было круто, кто попало софт не писал, юзеры были готовы читать книги и осваивать компьютерную грамотность. Ценили качество и функциональность.
                                Нынче смотришь на старый виндовс, как на осколки вымершей высокоразвитой цивилизации…
                                +1
                                Это означает, что весь сайт всегда будет умещаться в 1,44 МБ (или меньше), как будто пришёл к нам прямиком из 90-х.


                                Когда-то в 1.44 МБ помещалась целиком операционка с пакетом программ и графическим интерфейсом, а теперь только сайт. :)
                                  0

                                  но этот сайт имеет некоторые фичи полноценной ОС...

                                    0
                                    Так он всего лишь имитирует некоторые элементы GUI от Windows.
                                  –1
                                  Очень круто!
                                    0
                                    прошлой оченью игрушку ProgressBar95 уже видел в гуглоплее)
                                      +1
                                      Сайтов в стиле интерфейсов Windows разных версий достаточно много.
                                      Вот несколько из них: Сайты в стиле интерфейса Windows.
                                        0
                                        Сайт очень понравился. Здоровья вам побольше и подольше, что бы побольше всего интересного сделать успели!

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

                                        Самое читаемое