stories.andreymal.org опять
Кратко о том, что случилось: в процессе допиливания сториза Орхи намеренно привязал его к используемой им самим платформе и лишил технической возможности пилить сториз большинство потенциальных разработчиков, в том числе и меня. Образовавшуюся от такого технического вандализма пуканную тягу пришлось срочно перененаправить на допиливание своего форка, чтобы не улететь разглядывать Плутон вслед за New Horizons. Не уверен, есть ли теперь в этом смысл, ибо на гитхабе с недавних пор тщательно имитируют бурную деятельность (правда, дальше этого дело у них пока не идёт), но не пилить своё не мог. В первую очередь сейчас пилил всякое техническое.
Что же я натворил теперь (в порядке технической важности):
Портировано с Django на Flask. В отличие от джанги, фласк не только позволяет отклоняться от «генеральной линии партии», запиливая всякие свои велосипеды, но и даже почти поощряет это. Запилить здесь API теперь — как нефиг делать, чего на джанге мы с Орхи не осилили.
Нормальная кроссплатформенность сервера. Мне удалось запустить и потыкать это всё на следующих платформах:
— Arch Linux (куда ж без него)
— Mac OS X 10.10
— FreeBSD 10/11
— Windows 8.1/10 (скачивание рассказов не ломалось!)
Почти наверняка и на каких-нибудь других юниксах работает. Плюс за счёт Pony ORM поддерживаются СУБД MySQL, PostgreSQL, Oracle и SQLite3; имеется механизм переноса данных между разными СУБД.
Переписан почти весь javascript. Все переходы по ссылкам и отправки форм теперь выполняются через AJAX (по образу и подобию PJAX и TurboLinks). Сильно меньше jQuery, несильно меньше bootstrap'а, местами сильно больше быстродействия за счёт AJAX. (Нет, это не SPA в привычном смысле. Нет, SPA не будет. Да, SPA — ересь. Да, смайлопак я тоже считаю ересью, но с ним ничего не поделать) (Для Орхи и Гибоникуса исходники NSFW.)
Переделаны комментарии с нуля. Ответы, голосование, скрытие заминусованных, подсветка новых, РЕДАКТИРОВАНИЕ, вот это вот всё. Плюс из ЖЖ утащены пагинация и скрытие веток (настраивается в профиле.) Не без косяков пока, но сториз не табун, может их и не надо фиксить, не знаю)
Начало переноса валидации с Django-Forms/WTForms на Cerberus. Сильно облегчает вьюхи, снижает вероятность появления багов и уязвимостей, упрощает разработку API.
Базовая поддержка интернационализации. Местным, конечно, нафиг не надо, но в данном случае запиливать проще, чем не запиливать. Правда, сейчас всё рано доступен только русский язык, потому что на английский переводить некому.
Нормальный механизм объявлений. А не через django-pages, насильно пихаемый в верх главной страницы, как раньше. И уж тем более не через рассказы *mother-of-celestia.jpg* У каждого объявления есть красивый адрес и комменты.
Можно пихать картинки в описание рассказов :)
Многочисленные мелкие исправления багов и уязвимостей, оптимизации и всё такое. В процессе портирования много чего нашлось. Часть отправил обратно в ponyFiction, часть нет. (Ну и без новых багов, появившихся при портировании, тоже не обошлось.)
Что со всем этим делать дальше — хз.
Этот пост на stories.andreymal.org
P.S. Если кому-то пишет ошибку 502 — почистите кэш DNS.
Что же я натворил теперь (в порядке технической важности):
Портировано с Django на Flask. В отличие от джанги, фласк не только позволяет отклоняться от «генеральной линии партии», запиливая всякие свои велосипеды, но и даже почти поощряет это. Запилить здесь API теперь — как нефиг делать, чего на джанге мы с Орхи не осилили.
Нормальная кроссплатформенность сервера. Мне удалось запустить и потыкать это всё на следующих платформах:
— Arch Linux (куда ж без него)
— Mac OS X 10.10
— FreeBSD 10/11
— Windows 8.1/10 (скачивание рассказов не ломалось!)
Почти наверняка и на каких-нибудь других юниксах работает. Плюс за счёт Pony ORM поддерживаются СУБД MySQL, PostgreSQL, Oracle и SQLite3; имеется механизм переноса данных между разными СУБД.
Переписан почти весь javascript. Все переходы по ссылкам и отправки форм теперь выполняются через AJAX (по образу и подобию PJAX и TurboLinks). Сильно меньше jQuery, несильно меньше bootstrap'а, местами сильно больше быстродействия за счёт AJAX. (Нет, это не SPA в привычном смысле. Нет, SPA не будет. Да, SPA — ересь. Да, смайлопак я тоже считаю ересью, но с ним ничего не поделать) (Для Орхи и Гибоникуса исходники NSFW.)
Переделаны комментарии с нуля. Ответы, голосование, скрытие заминусованных, подсветка новых, РЕДАКТИРОВАНИЕ, вот это вот всё. Плюс из ЖЖ утащены пагинация и скрытие веток (настраивается в профиле.) Не без косяков пока, но сториз не табун, может их и не надо фиксить, не знаю)
Начало переноса валидации с Django-Forms/WTForms на Cerberus. Сильно облегчает вьюхи, снижает вероятность появления багов и уязвимостей, упрощает разработку API.
Базовая поддержка интернационализации. Местным, конечно, нафиг не надо, но в данном случае запиливать проще, чем не запиливать. Правда, сейчас всё рано доступен только русский язык, потому что на английский переводить некому.
Нормальный механизм объявлений. А не через django-pages, насильно пихаемый в верх главной страницы, как раньше. И уж тем более не через рассказы *mother-of-celestia.jpg* У каждого объявления есть красивый адрес и комменты.
Можно пихать картинки в описание рассказов :)
Многочисленные мелкие исправления багов и уязвимостей, оптимизации и всё такое. В процессе портирования много чего нашлось. Часть отправил обратно в ponyFiction, часть нет. (Ну и без новых багов, появившихся при портировании, тоже не обошлось.)
Что со всем этим делать дальше — хз.
Этот пост на stories.andreymal.org
P.S. Если кому-то пишет ошибку 502 — почистите кэш DNS.
340 комментариев
Спойлер
В любом случае, оценки +1/-1 — зло (см. комменты к предыдущему посту)
Хорошо, думайте.
А может и
Нет
Ибо никакая система не может быть объективной при необъективности голосующих, что и показано в твоём комментарии выше.
Хотя иногда бывает, что чем больше недовольных, тем лучше. Фидбэка больше.
Нет, лучше, когда большая часть недовольных высказывает своё недовольство, а не когда их в принципе больше.
А голосование за то какую систему делать. Предложить варианты, показать наброски/примеры.
Хотя уже и так слишком много танцев вокруг этой голосовалки.
Какой сториз юзать? Один кривой, другой пустой, на третьем шлак, четвёртый чё за хрень вообщеlesswrong.com/lw/mm/the_fallacy_of_gray/
И да, если ещё не читал — можешь почитать… —
Вот весь смысл поста.
скрин
С другой стороны, маленькое число пользователей означает мало статистики. Довольно сложно посчитать какие-либо корреляции, если у каждой пары пользователей, кроме очень маленькой доли, будет 1-2 общих оценки, если вообще не 0. Так что если тебе не жалко будет потраченного на это времени в случае неудачи, которая вполне возможна, то попробовать стоит, но в принципе очень важным это не выглядит.
Но были мысли запилить импорт, чтобы ориентироваться хоть на что-то, а не от балды по сути, как сейчас
(Здесь кто-то должен ответить, что я не могу пилить рейтинг, не владея данными, но я это уже на гитхабе читал, так что не надо)
В принципе другую систему ты мог увидеть на гитхабе. Она основывается на опыте табуна и сториза. Подтвердить или опровергнуть числами я её не могу. Будем проверять импирикой.
Вариант 2: Вывод меню в виде выезжающего списка при заходе с телефона.
Но поиск обязательно должен быть в шапке
Ну не знаю, мне на фимфикшене неудобно.
Но XSLT всё равно б-гомерзкий
Скрин
Тогда как при переходе по обычному адресу (http) всё в порядке.
От меня ещё какая-нибудь информация требуется?
Ну блин.
Дату публикации главы на странице с главой? Ну не знаю, думаю что это ни к чему.
Таки на github репо есть? Я бы глянул.
То есть Джанго теперь свободен?
Надеюсь, вы это исправите?
Можно обойтись каким-нибудь легковесным сервисом, например.
Тем более с моими новыми комментами это сделается за час-другой ^_^
Табуняша настолько суров, что хранит сообщения и комментарии в одной таблице о_о
Я бы предложил поднять просто почтовый сервер и отправлять все сообщения через него.
Тоже костыль, но, по крайней мере, ничего хранить в базе не придётся.
Моё дело предложить. Полагаю, это уже тема для холиваров.
Так же не знаю, есть ли на сториезе нормальная реализация для соавторства и бета-вычитки. Если нет, то это было бы нелишним.
А что должно быть для беты? Просто доступ к рассказу или ещё какие-нибудь свои комменты или что-то ещё?
Но окей
RIP автору этих книг в этом месяце прошлого года
1)Как я понимаю, сортировка «по релевантносни» ещё не реализована, вместо неё сортировка по дате?
2)Позиции, что предполагают выбор из многих вариантов почти бесполезны (жанры, персонажи, события), ибо, при выборе нескольких позиций, ищут рассказы, подходящие хоть под один из них (логика ИЛИ), а поиск фанфиков, содержащих обе категории (логика И) или же не содержащие какой-либо пункт (логика И НЕ) невозможен в принципе. Получается очень ущербная логика поиска.
Более-менее нормальная логика поиска есть на фикбуке (там используется логика И и логика И НЕ, логика ИЛИ отсутствует). Я понимаю, что для реализации чего-то подобного нужно кардинально изменить интерфейс этих пунктов поиска, но нынешняя система чрезвычайно идиотская.
Поля происхождение, статус рассказа, активность, рейтинг, размер рассказа реализованы нормально.
В общем, поиск — геморрой.
2) Вообще я ожидал, что число совпадений будет влиять на вышеупомянутую релевантность, а оказался облом. Прошло время выкуривать документацию Sphinx только бы не пришлось на солр/еластик переезжать...
А на фикбуке поиск просто по-уродски выглядит, так делать тоже не стоит)
Это я тоже ещё не умею.) Стоп, исходников дерпибуры в открытом доступе нету, что ли?
А вообще, было бы интересно посмотреть на движок дерпибуры. Бвло бы, но я не знаю слов Ruby и тем более RoR :D
И попутно сборники выкачал stories.andreymal.org/accounts/8/
Как так получилось, что картинки есть, а кнопок на сайте нет?
Тупость однако.
Что ещё хуже — одни и те же картинки в репозитории и на сайте, сцуко, разные! (Веон постарался?) Мод Пай на ЕП сейчас такая
Ещё несколько дней придётся всю эту хрень выгребать, прежде чем займусь предложениями из комментов(
Пример
Спойлер
В том числе и из-за этого:
Спойлер
Это при разрешении 1366:768.
А ещё его (как и почти все подобные окна) можно растянуть за границы страницы, мне это кажется странным:
Спойлер
При наведении курсора на вышеуказанное заспойлерованное окошечко и быстром убирании курсора обратно перелистывается на следующий рассказ (поводите туда-сюда-туда-сюда… даа...). Это баг или фича? И ещё подсказки «Next» и «Previous» кажутся странными на полностью русскоязычном сайте.
Это всё тоже перепишется
Спойлер
Нужно проверить разные варианты названий и описаний рассказа на всякие противные исключения.
Спойлер
Спойлер
После устранения ошибки комментарий лучше удалить.
.comment-text{word-wrap: break-word;}github.com/andreymal/mini_fiction
github.com/andreymal/stories.andreymal.org (да-да, там Vagga. Но она опциональная и нет, это не в связи с первым апреля)
В процессе пришлось прикрутить много всякого, среди которых то, что вроде как и нафиг не нужно (вон выше по комментам проблем поважнее хватает), но нужно для вменяемости архитектуры, гибкости и упрощения поддержки, так что пришлось пилить.
— Выкинуты из репозитория картинки персонажей, теперь создаются чеез админку. Мод Пай пофиксил, а старательно нарисованного Флэма протерял армейским способом, загрустил и фиксить второй раз не захотел :(
— Контактов одного типа теперь можно добавлять несколько. А ещё легко создавать новые типы контактов.
— Нормальная загрузка аватарки вместо костыля с Табуном.
— Почта выкинута в отдельный процесс и не будет тормозить юзеров, так что теперь можно спокойно пилить уведомления, о которых выше просили.
— То, на что я когда-то ругался в смайлопаке, здесь реализуется без проблем: поправкой пары конфигов и созданием своего base.html можно запилить свой крутой дизайн вместо дизайна ЕП (который тоже частично выпилен вместе с понями в другой репозиторий).
— Куча оптимизаций и багфиксов, в том числе фиксы поиска (которые в ponyFiction не бэкпортировал, мухаха).
— Накатан каркас для тестов и аж ЦЕЛЫХ ПЯТЬ!!! штук самих тестов, которые при любом изменении запускаются в Travis CI, и теперь, если я вдруг что-то сломаю, меня незамедлительно обматерят. Когда будет хотя бы 60-70% покрытие, лол. На смайлопаке, кстати, тоже.
— Зарелизено на PyPI: pypi.python.org/pypi/mini_fiction
Спойлер
Я однажды психану и переверстаю всё с нуля, ибо с этой смесью из бутстрапа и костылей вокруг бутстрапа работать очень тяжело
Geet уже сразу адаптивная.
Webpack не оч.
Если получится авторизоваться, может конкретнее мысль выражу ._.
Вот я тут наверстал
Всяко лучше, чем прилипающая к краям аватарка.
Когда скачиваю фанфики в .fb2 в конце каждого абзаца стоит вопросительный знак. Причем, и на табунском, и на Вашем, Андреевском. Это баг или фича? И нужно ли оформить в виде нормального багрепорта или этот комментария достаточно?
Спасибо.
Как скоро движок получает профайлы из EP?
Ибо я, видать, не понял чего-то х)
Ибо я авторизоваться не могу.
Поле «Пару слов о себе» в настройках профиля для нормальных экранов стоит по умолчанию растянуть пошире.
При наведении мышки на кнопки «уведомления» и «добавить рассказ» на них появляется «затенение», на кнопках «та библиотека» и «табун» — еле-еле заметно подсвечивается текст, а на кнопках «справка», «поиск» ,«главная» и «правила» ничего не происходит, почему?
Второе — потом
Третье — см. комменты выше
Спойлер
А при собственно попытке входа вот это:
Спойлер
Понятия не имею, почему, просто констатирую факт. Может, это исключительно моя проблема…
Насколько помню из той статьи, речь шла о строгости стандарта, и о том как его за это не взлюбили :D
w3c раньше его довольно активно продвигали.
Хороший пример — иконки для современных браузеров:
Валидатор очень сильно ругается на такой код.
СпойлерЕ
сли в выражении «от того» можно заменить «того» на «этого» или же добавить после него слово «самого» (то есть, получится «того самого») без потери смысла, то писать в данном случае нужно раздельно.
Если «оттого» можно заменить на «потому что» или «по причине», то в этом случае нужно писать слитно.
Никакое.
А вот слово «оттого» применено в 1 значении — значении наречия.
Ладно, мне уже наплевать на
логику и здравый смыслправила русского языка. Может с этим кто другой справится…тип того
СпойлерЧасть 1
-----Глава 1
-----Глава 2
-----Глава 3
Часть 2
-----Глава 4
-----Глава 5
И при этом есть смысл дать возможность скрывать/показывать содержимое каждой части по нажатии на неё. Но это уже свистелки-перделки.