LINUX.ORG.RU

Подскажите CMSку моей мечты

 


12

9

Сразу скажу, не уверен, что такое вообще существует в природе, ибо требования у меня противоположны всему, что сейчас воспринимается как мейнстрим. В общем, нужна CMS для сайтов, которые заведомо _не_ относятся (и никогда не будут относиться) к категории «высоконагруженных». При этом имеются два совершенно категорических требования:

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

2) ничего тьюринг-полного на стороне клиента; JS, HTML5, CSS3 запрещены под страхом смертной казни, то есть если CMS генерит что-то из перечисленного, то она не рассматривается вообще, вот то есть даром не нужна; в идеале — генерит XHTML и использует мелкий CSS-файлик на десяток классов;

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

3) Язык реализации. В идеале она вообще должна быть написана на C или C++ с использованием минимума (лучше — zero) внешних библиотек, но такого, скорее всего, не бывает. PHP я терпеть ещё готов, Perl с его системой библиотек и dependecny hell — уже с трудом, что касается Питона, Руби, Джавы и прочей экзотики — мне проще будет её самому написать. Или без сайта обойтись.

4) Хранилище. Идеальная с моей точки зрения CMS не использует никакие СУБД вообще от слова совсем, то есть даже SQLite. Для хранения всего и вся — обычные текстовые файлы в обычных директориях.

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

При этом она должна обязательно поддерживать настраиваемую навигацию, блоки, появляющиеся на определённых страницах (на всех или на некоторых), а также пользовательские комментарии (крайне желательно, чтобы пользователи могли заходить со своими OpenID — да, я имел в виду именно OpenID, а не OAUTH).

Если кто видел что-то подобное, киньте ссылочку :-)

★★

Автор хочет CMS, в которой все нужно делать руками, при этом автор ничего не хочет делать руками? Миленько.

LupusAlbus ()
Ответ на: комментарий от Croco

где я Go возьму под Openwall Linux? Самому ещё и Go собирать? Увольте-с.

но ведь этот дистр позиционируется как source-based

anonymous ()
Ответ на: комментарий от blackst0ne

Хватит изобретать велосипед и экономить на спичках.

Правильно, лучше будем микроскопом гвозди забивать. Для хранения комментов притянем реляционную СУБД, забирать будем нагенеренный ормом джейсон аяксом через жс-фреймворк. Ниче не упустил? Может еще пару слоев стоит навернуть для упрощения?

bread ()
Ответ на: комментарий от MadDeer

У ТС'а то может и нет, а у посетителей его сайта он есть.

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

Croco ★★ ()
Ответ на: комментарий от ravdinve

Но опять же, я не понимаю, почему ТС так против БД.

1) Потому что это затраты времени на её развёртывание и администрирование. И вот только не надо мне рассказывать, что затрат времени никаких на самом деле нет, и там всё просто, и всё понятно, и всё тривиально, и т.п. Я собственному опыту доверяю больше. Этот грёбаный MySQL моего времени уже сожрал столько, что хочется кого-нибудь убить.

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

3) Потому что бекап текстовых файлов — это одна команда и без останова сайта, а бекап БД — это куча нелепых плясок и таки останов сайта на время оных плясок.

Croco ★★ ()
Ответ на: комментарий от anonymous

но ведь этот дистр позиционируется как source-based

Мне пофигу, как и где он позиционируется. Меня больше интересует количество времени, которое мне придётся убить, чтобы развернуть то или иное решение. Как-то раз я хотел под Openwall'ом задеплоить ejabberd, угрохал день на бесплодные попытки собрать Erlang, потом плюнул и поставил jabberd2. С тех пор решения, созданные на экзотических языках (а также на пусть и популярных, но ублюдочных; это про питон) просто не рассматриваю. Жизнь слишком коротка.

На всякий случай: да, разумеется, PHP — тоже дичайший бастард, но он простой как три копейки и собирается (в виде внешнего интерпретатора) в одно касание. Поэтому сию нечисть терплю, хотя если я на PHP сам начну писать, то пристрелите меня немедленно.

Croco ★★ ()
Ответ на: комментарий от ritsufag

Кто гарантирует что в комментарии его не добавят?

Тот же, кто гарантирует, что в комментариях не будет (работающих) html-тэгов. Этот «кто-то» называется фильтр.

Croco ★★ ()
Ответ на: комментарий от ravdinve

А какие у тебя сайты? Можно пару ссылок?

Вот ровно пару и можно:

http://www.stolyarov.info http://www.unicontrollers.com

У меня и другие есть, но там нет CMS'ок. А эти оба — сюрпрайз — на друпале, первый на пятом, второй на шестом. Из пятого я тэги <script> вырезал быстро и безболезненно, из шестого — долго и мучительно. Седьмой уже насквозь весь в JS, хрен вырежешь, а пятый и шестой давно end of life. Да и вообще MySQL 5.1.* уже как бы староват для новых инсталляций, а более поздние все на cmake, ночной кошмар package maintainer'а, особенно когда понимаешь, что оно на самом деле не нужно.

В общем, те сайты, которые по ссылкам — они как-нибудь свой век доживут, но вот сейчас потребовалось ещё парочку поднять, и я с удивлением понял, что делать это тупо не на чем.

Croco ★★ ()
Ответ на: комментарий от anonymous

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

У меня об этом представления, судя по представленной шкале, ещё более оригинальные. Я мало того, что создателей C++11/14 держу за международных террористов и мечтаю расстрелять, так я ещё и создателей самого первого стандарта C++, того, в котором STL сделали частью стандарта, тоже за тех же террористов держу, даже ещё худших, которых вообще надо на кол посадить, потом снять, вылечить и снова посадить, и так раз десять.

Пожалуй, если в CppCMS используется Boost, то мне моей толерантности не хватит, чтобы с этим работать.

Croco ★★ ()
Ответ на: комментарий от anonymous

видишь комментарии? я нет

Это потому что их там нет, представляешь?

Croco ★★ ()
Ответ на: комментарий от ggrn

есть тот же дискас,

Нету никакого дискас, не-ту. Вообще нету. У тех, кто ходит на мои сайты, JS выключен, а всякое вебдванольное дерьмо может быть ещё и зафильтровано (как, например, лично у меня на квартирном роутере зарезан по ip-адресу docs.google.com)

Croco ★★ ()
Ответ на: комментарий от Twissel

http://stolyarov.info/

curl -I http://stolyarov.info/ | grep Last-Modified

Last-Modified: Tue, 07 Feb 2017 17:37:01 GMT

sleep 5
curl -I http://stolyarov.info/ | grep Last-Modified

Last-Modified: Tue, 07 Feb 2017 17:37:06 GMT

Last-Modified для вида, а сл-но 304 не используется. Ну и

Expires: Thu, 01 Jan 1970 00:00:01 GMT

сл-но на заголовки вообще насрать.

Cache-Control: store, no-cache, must-revalidate, post-check=0, pre-check=0

Но кэша, очевидно, нет нигде, ибо даже при повторном запросе чисто к http://stolyarov.info/ (про доп. запросы вообще молчу) имеем over 2 second ожидания. При его кол-ве контента (32,4 KB) даже стандартных 0.2ms - _намного_ больше, чем достаточно.

Server: Apache/1.3.34 (Unix)
2017

На сайте для понта стоит w3c-checker, ибо

http://validator.w3.org/check?uri=http://stolyarov.info/;accept=text/html,app...
Result: 11 Errors

И т.д. и т.п.
Итого, 2ТС: на фоне всего этого ваши «хотелки» смотрятся не более, чем пафосный высер «мастера». Советую спуститься с небес на землю, пока еще не поздно, и взять то, что советуют (под ваши абсурдные требования уже посоветовали годноту).

znenyegvkby ()
Ответ на: комментарий от Croco

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

э... ну ты понял.

znenyegvkby ()
Последнее исправление: znenyegvkby (всего исправлений: 2)

чувак заканчивай уже с тяжелыми веществами

anonymous ()
Ответ на: комментарий от Twissel

Никогда не стоит недооценивать предсказуемось тупизны (с).

znenyegvkby ()
Ответ на: комментарий от znenyegvkby

Ошибки уровня дет. сада, которые тебе указывает сам чекер

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

ошибки архитектуры

В упор не вижу ни одной. Страницы генерятся? Генерятся. Какие тогда претензии к Last-Modified, пардон? Или вот отсутствие кеша — ну я прям уже вот побежал там ещё кеширующий сервер ставить на дороге, ага. Заняться мне больше нечем. И с версией апача то же самое. Работает? Работает. А у второго конфиги в другом формате, у меня что, день в жизни лишний, чтобы с ними разбираться? Да ещё пакет из него делать (да, в Openwall веб-сервер не входит, всё ручками надо; а собрать и make install мне религия не позволяет, то есть чтобы что-то поставить, надо это что-то завернуть в RPM).

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

Croco ★★ ()
Ответ на: комментарий от Croco

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

Характеристика как специалиста явно не в твою пользу.

Потому что бекап текстовых файлов — это одна команда и без останова сайта, а бекап БД — это куча нелепых плясок и таки останов сайта на время оных плясок.

Чтобы сделать бекап БД, сайт останавливать не нужно. Да-да, сюрприз!
И плясок тоже нет. А чтобы они появились, нужно повысить нагрузку существенно. Но где найти столько маргинальных задротов, боящихся js, да ещё чтобы они на твой сайт пачками ходили?..

blackst0ne ★★★★★ ()
Ответ на: комментарий от Croco

А у второго конфиги в другом формате

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

в Openwall веб-сервер не входит

На openwall'е свет клином не сошелся.

Этот грёбаный MySQL моего времени уже сожрал столько, что хочется кого-нибудь убить.

На mysql'е свет клином не сошелся.

бекап текстовых файлов — это одна команда и без останова сайта, а бекап БД

— тоже одна команда и тоже без останова.

dexpl ★★★★★ ()
Ответ на: комментарий от Croco

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

Если у тебя задержка отдачи 34КБ статического контента около 2 секунд, то уже при небольшой нагрузке (а судя по твоему счетчику на сайте – нагрузки у тебя пока нет от слова совсем) твой поддиванный сервер начнет тупить как бабка у банковского терминала.

И с версией апача то же самое. Работает? Работает.

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

Страницы генерятся? Генерятся. Какие тогда претензии к Last-Modified, пардон?

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

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

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

znenyegvkby ()
Ответ на: комментарий от blackst0ne

Характеристика как специалиста явно не в твою пользу.

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

Чтобы сделать бекап БД, сайт останавливать не нужно. Да-да, сюрприз!

Представляешь, я это тоже знаю. Только я не знаю, как это правильно сделать. И НЕ ХОЧУ знать, понимаешь? С текстовыми файлами у меня проблем никаких нет, а СУБД мне _не_ _нужна_. Сайт, на котором двести страниц и полторы тысячи комментов, прекрасно может храниться в виде обычных файлов.

маргинальных задротов

Маргинальные задроты — это те, кто делают сайты с использованием JS и не знают слова «безопасность». Да, безусловно, это поголовно все, кто сейчас занимаются сайтостроением. А объяснение простое: человек, который может что-то ещё, сайтостроительством заниматься не станет, поэтому в области уЭбразработки остались одни идиоты.

Croco ★★ ()
Ответ на: комментарий от znenyegvkby

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

Совершенно верно. И не будет. Не будет, понимаешь? Мне нахрен не надо тратить время и силы на преодоление проблем, которые на моём сайте никогда не возникнут.

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

Попробуй на нём любой из эксплойтов. Завалить, может, и завалишь (после чего он по крону обратно встанет), а вот remote execution не получишь, хоть тресни.

Логика же у меня довольно простая: JS позволяет скомпрометировать машину, на которой я работаю и где есть много чего интересного, а якобы дырявый апач, который в сочетании с Openwall совершенно бесперспективен в плане эксплойтабельности, потенциально компрометирует мой сервак, где нет ничего (ВООБЩЕ ничего) сколько-нибудь security-sensitive. Ну переставлю я его, и?

получить любой элементарный хэш, хоть md5, чтобы потом сравнить

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

если твои труды станут знамениты

Уже давно.

нагрузка на сайт будет расти

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

Croco ★★ ()
Ответ на: комментарий от Stanson

Веб-макаки такие вебмакаки. :) Зачем это всё это дерьмище нужно для задач ТС? Какой нахер XSS и CSRF если жабоскрипта у ТС нету?

Просто вебмакаки не осилили какой-нибудь htmlspecialchars().

h578b1bde ★☆ ()
Ответ на: комментарий от dexpl

На openwall'е свет клином не сошелся.

Ещё как сошёлся. Именно его наличие позволяет мне довольно-таки комфортно жить на

семь лет как не сопровождаемой версии с известными дырами.

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

На mysql'е свет клином не сошелся.

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

— тоже одна команда и тоже без останова.

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

Croco ★★ ()
Ответ на: комментарий от Stanson

Совать БД туда где она нафиг не упёрлась - маразм.

Два чая.

h578b1bde ★☆ ()
Ответ на: комментарий от Croco

потенциально компрометирует мой сервак, где нет ничего (ВООБЩЕ ничего) сколько-нибудь security-sensitive
JS позволяет скомпрометировать машину, на которой я работаю и где есть много чего интересного

Уже сам вход на коннект к скомпрометированнуюой машинуе B, с «нормальной» машины А (ведь заходишь же ты на нее со «своей» машины) – де-факто, скомпрометирует и твою машину. Но я вижу, что доводы разума для тебя тщетны, а

если твои труды станут знамениты

Уже давно.

гордыня вопиет в тебе громче гласа разумности, то посему – я сливаюсь. По теме ничего сказать не могу, кроме выше предложенного. Лично я вижу только «самописный» вариант, но писать ты не будешь, т.к. «денег не платят»/«жизнь, зараза, короткая»/etc, поэтому покорнейше прошу меня извинить и на этом откланяться.

znenyegvkby ()
Последнее исправление: znenyegvkby (всего исправлений: 1)
Ответ на: комментарий от znenyegvkby

Уже сам вход на коннект к скомпрометированнуюой машинуе B, с «нормальной» машины А (ведь заходишь же ты на нее со «своей» машины) – де-факто, скомпрометирует и твою машину.

Чушь. Иди изучай security basics. В обратную сторону верно (заход со скомпрометированной машины на чистую — и обе становятся грязными), но в эту сторону — нет. Иначе в интернете вообще нельзя было бы работать.

но писать ты не будешь

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

Croco ★★ ()
Ответ на: комментарий от Croco

Иначе в интернете вообще нельзя было бы работать.

Любой выход в интернет – компрометирует твою машину, окстись и

Иди изучай security basics.

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

Ну дак вот не трать время зря, не сиди на ЛОРе. Скорее пиши ее, пока ниша свободна!

znenyegvkby ()
Ответ на: комментарий от Croco

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

СУБД, ИМХО, это просто очень удобно. Если вам не нравится MySQL, может в сторону MongoDB посмотрите? Под комментарии вполне себе.

ravdinve ()
Ответ на: комментарий от Croco

Croco

Вот ровно пару и можно:

http://www.stolyarov.info
http://www.unicontrollers.com

У меня и другие есть, но там нет CMS'ок. А эти оба — сюрпрайз — на друпале, первый на пятом, второй на шестом. Из пятого я тэги <script> вырезал быстро и безболезненно, из шестого — долго и мучительно. Седьмой уже насквозь весь в JS, хрен вырежешь, а пятый и шестой давно end of life. Да и вообще MySQL 5.1.* уже как бы староват для новых инсталляций, а более поздние все на cmake, ночной кошмар package maintainer'а, особенно когда понимаешь, что оно на самом деле не нужно.

В общем, те сайты, которые по ссылкам — они как-нибудь свой век доживут, но вот сейчас потребовалось ещё парочку поднять, и я с удивлением понял, что делать это тупо не на чем.

Очень, очень странный подход, на мой взгляд. Зачем вообще нужна CMS на столь простых проектах? У вас так часто меняется содержимое, что вам кровь из носа нужно его редактировать? Лично я бы сделать все это на статическом HTML, а динамические вещи реализовал бы при помощи jQuery.ajax(). Но вы не любите JS (почему-то).

ravdinve ()
Ответ на: комментарий от znenyegvkby

znenyegvkby

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

Шикарная цитата, запомню себе!

ravdinve ()
Ответ на: комментарий от ravdinve

СУБД, ИМХО, это просто очень удобно

СУБД (любая) — это дичайше неудобно, мерзко, противно и отнимает время. Даже если это SQLite.

Croco ★★ ()
Ответ на: комментарий от ravdinve

jQuery.ajax()

Руки оторвать. По кусочку. За сам факт возникновения подобной мысли.

Но вы не любите JS (почему-то).

Что, правда не понимаешь, почему?

Croco ★★ ()
Ответ на: комментарий от Croco

Croco

СУБД (любая) — это дичайше неудобно, мерзко, противно и отнимает время. Даже если это SQLite.

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

ravdinve ()
Ответ на: комментарий от h578b1bde

Уменьшение контраста между фоном и цветом текста это конечно хорошо, но не настолько же.

По мне так в самый раз — глаза не устают. Но на вкус и цвет фломастеры разные.

Если бы мир был устроен правильно, то внешний вид (в смысле appearance) информации выбирал бы не хозяин сайта, а пользователь. К сожалению, для этого сначала придётся перестрелять всех, кто считает, что занимается так называемым «веб-дизайном»; тогда, может быть, сначала появится некий унифицированный набор CSS ids и под него сотня-другая разных CSSов, а затем создатели браузеров вспомнят, как когда-то можно было в браузере настроить свой собственный stylesheet, а приехавшее с сайта игнорировать.

Croco ★★ ()
Ответ на: комментарий от ravdinve

Правда не понимаю. Объясните, будьте любезны.

Есть разница между данными и поведением. HTML — это данные; JS — поведение. Поведение предписывается, ни много ни мало, браузеру пользователя. А он, пользователь, вас об этом просил? Указывать ЕГО браузеру, что делать? А вы у него, пользователя то есть, разрешения спросили на то, чтобы плоды вашего воспалённого воображения в ЕГО браузере запускать? Когда вы на смартфон приложение ставите, у вас система сколько раз разрешения спрашивает? А ещё всякие ключи-подписи-сертификаты проверяет и вопит как резаная, если что-то не сошлось. А тут любая шваль, изучившая пять тэгов и три с половиной оператора, считает своим долгом в МОЁМ браузере развлекаться.

За это расстрелять мало, за это надо на кол сажать.

Croco ★★ ()
Ответ на: комментарий от Croco

Croco

Есть разница между данными и поведением. HTML — это данные; JS — поведение. Поведение предписывается, ни много ни мало, браузеру пользователя. А он, пользователь, вас об этом просил?

HTML - это не данные, это представление данных, давайте тогда будем более строгими в терминологии, да?

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

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

Да, я тоже застал Web 1.0, это было круто, но это именно что было. Я б еще понял, если бы вы ставили себе целью написать сайты, которые с компьютеров уровня Pentium MMX можно посмотреть...

ravdinve ()
Ответ на: комментарий от Croco

А Я что, спрашивать должен у пользователя, что ему нравится, а что нет? В законах какой-то страны написано это? Я исполняю СВОЙ код потому, что он МОЙ. Посетитель САМ зашел КО МНЕ на сайт и Я не стоял у него за спиной с паяльником. Подумать только, МОЙ код в любой момент времени исполняется на чьём-то устройстве! Не нравится МОЙ javascript, над которым Я работал два года, пусть посетитель катится лесом. Мой код - моё ДИТЯ. Если кому-то не нравится МОЁ дитя, за это Я готов не то, что расстрелять, а любого на кол посадить.

anonymous ()
Ответ на: комментарий от Croco

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

Ностальгия — это когда хочется вернуться, а некуда.

ravdinve ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.