• Записи 1545
  • Теги 109
  • Комментарии 3323

Лог жизни

Первые разочарования в Mastodon

Вчера попытался с наскока сделать те три исправления в Mastodon, но не получилось. Долго ломал голову над роутингом: оба URL (для локальной ленты и для пользовательской) вызывали один и тот же контроллер home#index, где в самом файле вообще почти ничего не было. И только потом дошло, что подгрузка ленты сообщений делается с помощью JavaScript! Это сразу заставило задаться вопросом: а будет ли работать без него. Оказалось, что нет. И это было серьёзным разочарованием. Одно дело отступить от принципа «на моём сайте только мой код» (от него я уже пару раз отступал, когда создавал tipiruem, typforum и socionics.me), а совсем другое — от принципа graceful degradation и того, что хорошо сделанный сайт должен работать без JavaScript. В общем, теперь даже не знаю, что делать…
Попытался даже сделать расклад на Таро с вопросом «как повлияет уход на Mastodon на мой Путь». Выпал перевёрнутый Иерофант (VI аркан), а также самопроизвольно выпали перевёрнутый Король Мечей и прямая Королева Пентаклей (хотя сейчас точно не помню, реально прямая или я перевернул). С учётом того, что Иерофант — это, вообще-то мой сигнификатор, это очень плохой знак…
Но есть и позитивный момент. Изучая код Mastodon, узнал про формат HAML и нашёл для него парсер на PHP. Причём очень экономный в плане памяти: тестовый пример с его использованием занимает всего 560 Kb памяти! Если вернусь к работе над своим frameworkом, буду его использовать, так как он значительно ускоряет то, чего я терпеть не могу — написание HTML-кода.

6 комментариев:

Нет
Гость
0

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

А теперь посмотри на ситуацию с Mastodon, равно как и с Wordpress, фреймворками и прочими готовыми решениями сторонних разработчиков: ничего не напоминает? Правильно — с их использованием та же самая проблема, что и с закупкой импортных комплектующих вместо производства своих. И их использование ведёт к тем же самым проблемам: к зависимости от этих самых готовых решений со всеми вытекающими, к недостаточной гибкости, проблематичности реализации какого-либо недостающего функционала в силу крайней трудозатратности доработки чужого огромного и к тому же переусложнённого проекта. И в любом случае это решение не твоё, тебе придётся всё время подстраиваться под извращения изменения, навязанные разработчиками проекта и адаптировать под них свой код. И такой сайт будет очень скучным — никакого уникального функционала в таком сайте не будет, это всё равно будет типовой узел Mastodon, коих тысячи, с типовым функционалом, которым никого не удивишь. Такой сайт сольётся с серой массой тысяч таких же и его просто не заметят. Смысл создания своего сайта как раз в возможности реализации любого нестандартного функционала, нестандартной архитектуры, нестандартного пользовательского интерфейса и т. д., возможно даже чего-то принципиально нового. Это и есть то единственное, чем личный сайт может кого-либо заинтересовать — тем, чего нет на других сайтах, но зато есть у тебя. Создавая очередной типовой сайт, ты обрекаешь его на судьбу ещё одного необитаемого острова в океане Интернета.

Но какая вообще необходимость использовать Mastodon, если он использует открытый протокол ActivityPub, который можно легко реализовать на своём собственном движке/(микро)фреймворке, который ты знаешь досконально? Или не так уж и легко? Если протокол сложен в реализации, то… не может ли это стать причиной его гибели и не стоит ли в таком случае поискать ему альтернативу?

4X_Pro
0
Гость написал(а):
Смысл создания своего сайта как раз в возможности реализации любого нестандартного функционала, нестандартной архитектуры, нестандартного пользовательского интерфейса и т. д., возможно даже чего-то принципиально нового.

Всё это верно. Но проблема в том, что прежде чем начинать делать что-то нестандартное, нужно сделать некоторую базу: то же редактирование и вывод контента, регистрация/авторизация пользователей, восстановление паролей и т.п. Но это требует времени, и, самое главное, регулярности деятельности. У меня ты же знаешь как: берусь за что-то, пару дней делаю, потом сносит потоком жизни в сторону, и возвращаюсь только через пару месяцев, а то и лет. Собственно, если как-то решить эту проблему, то написать свой движок перестанет быть проблемой.
А так — сложно даже приблизительно прогнозировать, когда я смогу сделать своё сообщество…
И ещё момент: я в принципе не умею делать интерфейсы, которые воспринимаются как удобные и современные. Именно из-за интерфейса я и стал смотреть на Mastodon.
Гость написал(а):
Но какая вообще необходимость использовать Mastodon, если он использует открытый протокол ActivityPub, который можно легко реализовать на своём собственном движке/(микро)фреймворке, который ты знаешь досконально? Или не так уж и легко? Если протокол сложен в реализации, то… не может ли это стать причиной его гибели и не стоит ли в таком случае поискать ему альтернативу?

Собственно, я его изначально вообще хотел в IntB реализовать. Но там ключевой момент в том, что ActivityPub использует push-модель, а не pull. И протокол требует, что если отправка потерпела неудачу сразу, повторять её через какое-то время. А в IntB такое предусмотрено чуть менее чем никак. Хотя я пытался сделать такую штуку как асинхронные задачи, но так до ума не довёл, отчасти потому, что воспринимал их как костыль. (Вообще, основной источник появления костылей — это добавление тех функций, которые в принципе не предусматривались изначально.) Второй момент — это обязательное требование HTTPS, на который, как ты знаешь, я переходить как-то не очень хочу.
А в остальном в нём ничего особо сложного нет, если разобраться с тем, как происходит подписывание сообщений цифровой подписью и определение адресов API с помощью webfinger.

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

Зависит от степени нестандартности возможного будущего функционала. У меня эта граница находится на достаточно низком уровне: использование библиотек (но не фреймворков) только для того функционала, в котором не понадобится ничего менять, а если и понадобится, то мало что — в остальных случаях свой и только свой код.
Нет
Гость
0
4X_Pro написал(а):
Вообще, основной источник появления костылей — это добавление тех функций, которые в принципе не предусматривались изначально.

И это ещё одна причина, по которой я не хочу использовать фреймворки и тем более готовые движки/CMS — слишком многое в них должно быть заранее предусмотрено. Что в принципе невозможно, и в итоге возникает множество искусственных ограничений на ровном месте, страдает многовариантность их использования.
4X_Pro
0

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

Нет
Гость
0

Пока что нет, но возникнут ли потом и какие именно — неизвестно…

Написать комментарий
Прикрепить файлы: (не более 4 файлов, не более 102400 Кб каждый, 102400 Кб всего)


Задать вопрос