Задать вопрос
  • Какую открытую платформу выбрать для блога?

    @motomac
    Если нужна полноценная современная замена WP, то ghost.org (либо hosted, либо self-host).
    Ответ написан
    Комментировать
  • MySQL слетают таблицы юзеров. Как написать скрипт для восстановления?

    @motomac
    Если это именно поломка таблиц (а не просто их очистка кем-то), то должен помогать REPAIR. Если так, то у вас скорее всего движком MySQL выступает допотопный MyISAM. Он очень подвержен повреждениям. Смените его на InnoDB, и повреждений не будет.
    Ответ написан
    Комментировать
  • Telegram web app, Данные юзера для игры!?

    @motomac
    После подключения JS SDK, который вы упомянули, вы можете получить информацию о юзере из Javascript, просто прочитав значение переменной `window.Telegram.WebApp`. Вернется вот такой объект. Если этот объект распарсить, в поле `user` будет объект юзера со всеми необходимыми полями.

    Имейте ввиду, что юзер теоретически может подделать эти данные, т.к. они приходят из его браузера. Потому Телега подписывает все, что вам передает полем `hash`. Вам надо будет его проверить: https://core.telegram.org/bots/webapps#validating-...
    Ответ написан
    Комментировать
  • Не могу поднять локально страницу на Laravel?

    @motomac
    По всей видимости, нет подключения к БД. Какую БД используете? Если MySQL, проверьте, запущен ли сервер MySQL, можно ли к нему подключиться, а главное правильный ли тип БД, адрес и пароли указаны в `.env`. Дока Лары очень подробно описывает процесс установки.
    Ответ написан
    Комментировать
  • Как правильно раздедить фронтенд и бекенд в монолитном проекте на php?

    @motomac
    А насколько большая команда разработчиков? Это я к тому, имеет ли смысл разделение на фронт+бэк? Если и фронт отдельно, и бэк отдельно очень сложные, и работать над ними будут две разные команды, либо будет несколько клиентов (фронт, мобилка, например), то да, определенно стоит разделить. Если же разработчиков немного, а фронт это только веб, я бы смотрел в сторону монолита на Laravel. Благо у него сегодня есть прекрасные инструменты для фронта (Livewire, тот же Vue из коробки). Просто затраты на согласование API, его расширение, апдейты, да и просто коммуникацию между фронтендерами и бэкендерами это довольно сильный тормозящий фактор и значительное усложнение всего. Выкатка одного мелкого изменения начинает затрагивать сразу несколько человек и кодовых баз. Иногда оно просто не стоит того.
    Ответ написан
    Комментировать
  • Какие есть аналоги ssh клиентов MacOS?

    @motomac
    warp.dev - альтернативный терминал на Rust
    https://panic.com/transmit/ - лучший для SFTP
    Ответ написан
    Комментировать
  • Какой виртуальный номер в США оформить для получения звонков и OTP-кодов (Amazon)?

    @motomac
    voice.google.com раньше позволял зарегистрировать номер. Правда, не уверен, что сейчас этот аттракцион неслыханной щедрости еще работает.
    Ответ написан
    Комментировать
  • Есть ли ресурс, где можно анонимно перекидывать файлы друг другу без регистрации и без использования облака и других хранилищ?

    @motomac
    Если прямо обязательно без промежуточного хранилища, то Resilio (бывший BitTorrent Sync).
    Ответ написан
    Комментировать
  • Управление устройствами IoT через веб-интерфейс (MQTT или HTTP)?

    @motomac
    По второму вопросу я бы не парился с поднятием собственного брокера и использовал какой-нибудь публичный. Например, www.mqtt-dashboard.com. Устройства подключаются к брокеру и пишут в один топик, ваш сайт/страничка подключается к тому же брокеру и подписывается на этот топик (MQTT over WebSocket). Для реализации этого можно использовать JS библиотеку https://www.npmjs.com/package/mqtt

    В обратную сторону аналогично. Устройства подписываются на другой топик и слушают команды, отправленные в него с вашего сайта/страницы.
    Ответ написан
    Комментировать
  • Реализация комментариев. Что вы можете сказать о Pusher?

    @motomac
    Pusher хорош, но платен. Недавно появилась бесплатная ему замена https://docs.beyondco.de/laravel-websockets/

    Но в целом для комментариев не вижу особого смысла в real-time'овости.
    Ответ написан
    Комментировать
  • На каких технологиях разрабатывать чат?

    @motomac
    Самый минимальный набор знаний и технологий это Node.JS на бэкенде и любой JS фронтенд (хоть jQuery, хоть ванильный JS), работающие по WebSocket. Самый простой вариант реализации вебсокетов библиотека socket.io. Примеров тьма. Запилить минимальный чатик на этом можно за пару вечеров при условии знания JS.

    Далее можно уже пилить хранение истории, регистрацию, например, добавив к бэкенду MongoDB или MySQL.
    Ответ написан
    Комментировать
  • Как поиграть в игры Gameboy Advance?

    @motomac Автор вопроса
    На Indiegogo появился интересный проект Linux-консоли. Зафандил и получил в числе первых. Доволен. Очень качественная штука. Рекомендую.

    https://www.clockworkpi.com
    Ответ написан
    Комментировать
  • Как правильно возвращать ошибки в своем API, Laravel?

    @motomac
    Если используете OAuth 2.0, можно ошибки возвращать в том же формате, дополнив своими кастомными секциями:
    {
      "error": "spaceshuttle_crash",
      "error_description": "Houston, we have problems",
      "error_uri": "https://nasa.com/error.html",
      "my_custom_error_code": 42
    }
    Ответ написан
    Комментировать
  • Выбор cms для заметок сис.админа?

    @motomac
    Перепробовал много всяких эверноутов и прочих симплноутов с куипами и остановился на https://paper.dropbox.com. По-моему, самый приятный, и markdown поддерживает.
    Ответ написан
  • Существует ли расширение Chrome с прокси с тонкой настройкой стран и сайтов?

    @motomac Автор вопроса
    Пока нашел только https://browsec.com. Их расширение для Chrome позволяет настроить сайты и страны (в бесплатном тарифе только один).
    Ответ написан
    Комментировать
  • Лучший форум на PHP?

    @motomac
    phpBB
    Плюсы:
    1. бесплатный
    2. стабильный и безбажный
    3. быстрый и легкий
    4. понятный

    Минусы:
    1. чуток отстает от современных трендов веб-разработки
    2. включает только форум. Всякие доп. модули типа фотогалереи в него не входят
    IPS
    Плюсы:
    1. современный (на острие трендов)
    2. имеется большое число доп. модулей типа фотогалереи, блогов и прочей (бесполезной) фигни

    Минусы:
    1. платный. Сперва купить, потом платить за подписку каждые полгода, либо жить без обновлений (нереал)
    2. большинство доп. модулей платные. Это и хорошо, и плохо. Плохо, потому что надо платить. Хорошо, потому что у разработчиков есть стимул
    3. тонны багов даже в старых стабильных версиях. Благо с подпиской техподдержка их фиксит по твоему требованию
    4. очень прожорлив к ресурсам
    5. непонятный. Админка - это ад. Настроек столько, что их невозможно запомнить, а иногда и понять их смысл. Неудивительно, что форум небыстрый.
    6. имеется проблема с переводом на русский. Лангпаки, конечно, есть, но их качество оставляет желать лучшего. Количество языковых строк в IPS исчисляется тысячами - неудивительно, что их невозможно легко перевести в едином стиле. С phpBB за многие годы у меня ни разу не возникало желания исправить стандартный русский перевод. С IPS я делаю это регулярно.
    7. слегка странная логика разработчиков. Наворотили миллионы функций, а самых элементарных типа массовой модерации списка тем в результатах поиска до сих пор нет и, видимо, не планируется. Да и в целом много шероховатостей и непонятностей для рядовых пользователей. Например, IP.Gallery - образчик альтернативной логики.

    В общем, если у вас нет планов сделать из форума космический корабль с миллионом (бесполезных) функций, то однозначно phpBB.
    Ответ написан
    3 комментария
  • Как подключиться к глобальному интернету Маска?

    @motomac
    Есть схожий и уже работающий проект Iridium. Для него уже есть в продаже готовые модули за 250 баксов:

    13745-01.jpg

    Думаю, SpaceX откроет все спецификации и позволит сторонним производителям делать такие трансиверы, что сделает их очень дешевыми. Платить скорее всего придется за пользование самой сетью. В Iridium так.
    Ответ написан
    Комментировать
  • SPA и REST API - как грамотно построить аутентификацию?

    @motomac
    Делаем два метода аутентификации: Resource Owner Password Credentials Grant и Refresh token grant.

    SPA отправляет логин/пароль юзера на первый endpoint. В ответ получаем access_token (например, JWT), refresh_token и expires_in. Сохраняем все это добро куда-нибудь, например, в Local Storage. Время жизни JWT-токена лучше ставить небольшое (например, 1 час), потому что отозвать его нельзя. Далее SPA при каждом запросе к API проверяет время жизни токена expires_in из Local Storage, и когда оно истекает, отправляет запрос на обновление токена (refresh_token). Все это прозрачно для юзера.

    Stateless, по-моему, и проще, и универсальнее. Если потом делать, например, мобильное приложение, API переписывать не придется.

    Вся фишка JWT по сути только в том, что не нужно дергать БД при каждом запросе к API. Делать это придется, например, только раз в час при refresh'е токена. Больше никаких существенных преимуществ перед традиционными токенами, хранящимися в БД, нет.

    Советую курить именно официальный RFC по oAuth2, а не всякие блогпосты а-ля "OAuth2 простыми словами". Сам через это прошел. RFC - самый понятный и доходчивый источник знаний.
    Ответ написан
    1 комментарий
  • Каков сценарий использования git для одного разработчика?

    @motomac
    Тоже использую develop ветку для подобного, но в последнее время все больше склоняюсь к мысли, что это не нужно.
    1. Пушить незаконченный код не хочется
    2. Придумывать этому незаконченному коду описание при каждодневной работе утомляет
    3. На историю коммитов потом смотреть больно

    Возможно, стоит попробовать дополнительно к гиту юзать какой-нибудь Dropbox и пушить только законченные осмысленные вещи.
    Ответ написан
    2 комментария
  • Дизайн REST API: Как сейчас принято передавать авторизационный токен?

    @motomac
    В спецификации OAuth 2.0 (если вы его используете) явно указывается формат:

    Authorization: Bearer <token>

    https://tools.ietf.org/html/rfc6749#section-7.1

    Думаю, не лишним будет следовать ему.
    Ответ написан
    Комментировать