• Как хранить большие JSON массивы, которые постоянно обновляются (API)?

    NoSQL бд, например, MongoDB, подходят для хранения таких json документов.
    Ответ написан
    Комментировать
  • Как хранить большие JSON массивы, которые постоянно обновляются (API)?

    @rPman
    Задать сначала вопрос нужно, как именно используются полученные данные.

    Только ли для чтения или возможны изменения, или изменения только те что приходят от озона (т.е. вопрос, будут ли меняться данные после того как получены от озона)? есть ли поиск и фильтрация данных? Многопользовательский ли доступ или сервис для себя? Ожидается ли серьезная переделка в будущем с расширением функционала или это код на один раз, как часть эксперимента?

    А сами данные, в формате, получаемом от озона нужны в совместимом формате (не нужна ли агрегация данных с нескольких запросов?)?

    Тут конечно рекомендуют использовать базы данных, но в некоторых случаях это может оказаться оверкилом, и возможно, тебе будет достаточно хранить полученные данные прямо как есть в файлах (не объединяя их), и при запросе, просто считывать их полностью (можно сразу после получения данных, делать по ним индекс и складывать рядом тоже в файл)

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

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

    p.s. я воспринимаю хранение в файлах как использование nosql база данных, тем более что это очень даже быстро, и даже если хранение данных в режиме много файлов в одной записи

    p.p.s. хранение файлов в php формате (var_export) и подключение их include может оказаться самым быстрым способом из всех возможных, для readonly 'баз данных' (json или serialize медленнее в полтора два раза).
    upd. мне тут подсказали что есть еще более быстрый сериализатор php - igbinary и входит в поставку того же debian/ubuntu
    Ответ написан
    Комментировать
  • Как понять микросервисы?

    @deliro
    Как понять микросервисы?

    Прочитать соответствующую книгу (а лучше ещё парочку про DDD или хотя бы посмотреть этот доклад)

    Затем ответить на несколько вопросов:
    1. Почему вы решили, что микросервисы что-то вам дадут?
    2. Есть ли у вас настоящие причины для микросервисной архитектуры? (А именно: зоопарк технологий с невозможностью написать 99% на одном языке; более тысячи разработчиков; сложность выкатки монолита в виде часов прогонов CI/CD — тестов, билда, деплоя, стопоров выкатки в виде кучи проблем из-за разработчиков; вы такие же большие как гугл, убер, амазон и т.п.). Или вам просто нравится модное слово "микросервисы"?

    Не получится создать хорошую микросервисную архитектуру без умения создать хороший модульный монолит. В этом случае вы получите не только все проблемы плохого монолита: высокая связанность, каскадные падения, долгий CI/CD; но и все проблемы микросервисов: их надо оркестрировать (у вас же есть команда, которая будет поддерживать инфраструктуру?); каждому микросервису нужно своё CI/CD (и хорошее); сеть может (и будет) лагать и обрываться; длительность запросов увеличится на порядок(ки) (особенно если выбрать какой-нибудь JSON-RPC over HTTP); нужно предусмотреть failover strategy (например, идемпотентные ретраи. Вы же уже знаете про correlation id, саги и что делать, если прилетел network error на запрос в другой сервис "списать 10 баксов"?) и circuit breakers; трейсы и логи, которые не пришлось бы искать по сотням .log файлов от каждого сервиса; бизнес-логика расползётся по разным микросервисам и нарушит SRP (пофиг, что нарушит, важнее то, что это починить будет сильно сложнее). Список можно продолжать долго.
    Ответ написан
    11 комментариев
  • Сбор статистики php, mysql?

    karabanov
    @karabanov
    Системный администратор
    Используй Prometheus+Grafana или Zabbix.
    Prometheus вообще может миллионы метрик в минуту собирать.
    Ответ написан
    Комментировать
  • Пустить весь траффик через VPN (tunnelbear, openvpn) на windows?

    SignFinder
    @SignFinder
    Wintel\Unix Engineer\DevOps
    1. Включите опцию VigilantBear. Судя по описанию она блокирует любой трафик, проходящий не через TunnelBear.
    2. Непонятно почему вы не можете использовать встроенный файрвол. Вам всего лишь нужно описать весь входящий и исходящий трафик - для соединения tunnelbear с сервером и для пакетов внутри TunnelBear.
    Затем следующим после этих правил поставить запрещающие всё правила на вход и выход и командой из консоли включать их или выключать.
    Ответ написан
    Комментировать
  • Как сделать воркер для Телеграм бота?

    @Qualiant
    Судя по формулировке вопроса, вам пока что рановато реализовывать такие вещи.
    А ответ на ваш вопрос растянется на десятки тысяч символов.
    Ответ написан
    Комментировать
  • Возможна ли реализация кнопки копирования в буфер обмена в телеграмм боте?

    @Redeve
    Веб-макаке не хватит и 640гБ
    Невозможно, потому что у вас нет доступа к буферу обмена юзера. Я бы предпочел использовать маркдаун или html в сообщении, если нужно скопировать конкретную часть текста (например, код подтверждения или номер тикета).

    https://stackoverflow.com/a/62692293/14015987
    Ответ написан
    Комментировать
  • Разработка в виртуальной машине? Как разделить задачи на одном PC?

    @WayMax
    1. Да, лицензии нужно отдельно докупать.
    2. Поиграть проблематично будет.
    3. Никакой проблемы у вас нет, вы ее "надумали".
    Ответ написан
    Комментировать
  • Ситуация с RGB светодиодной лентой. Есть ли готовые решения? И общие вопросы по RGB лентам?

    @n12eq3
    у китайцев существует достаточно большой выбор контроллеров под ленты с различными эффектами. часто с пультами управления. можно поискать среди них с нужным эффектом. в любом случае накодить это достаточно просто.
    любой светодиод нормируется производителем на температуру кристалла до 100 градусов, подавляющее большинство - на +85. поэтому декоративное освещение на авто/мото никогда не устанавливается на горячие детали, т.к. лента откинется просто сразу и без вариантов. можно поискать место просто рядом, главное чтобы не было контакта с картером/выхлопом/коробкой, либо клеить на довольно толстый теплоизолятор.
    контроллер - распберри много ест, ненадёжна, сложна. использовать любую из ардуин, которая влезет по размеру, которые, впрочем, тоже не слишком подходят.
    для таких поделок самое правильное решение это кастомная плата с мозгами ардуины. в таком случае всё можно сделать компактно и правильно с точки зрения совместимости с электрикой байка, вместить в подходящий корпус. +остаётся низкий порог вхождения для написания кода самому + возможность найти дешёвого исполнителя (программера). если "повыпендриваться" - всё то же самое, но на STM.
    Ответ написан
    Комментировать
  • Лицензия для опенсурс win приложения?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Все лицензии, которые даёт выбрать github, допускают коммерческое использование.

    Вам подошла бы лицензия CC-BY-NC-SA - Creative Commons «Attribution-NonCommercial-ShareAlike»
    88x31.png
    Ответ написан
    1 комментарий
  • Горизонтальное масштабирование nginx статики?

    @Nc_Soft
    Самый нормальный вариант это шардинг, тоесть номер сервера на который льем картинку в случаи 10 серверов будет n = (id % 10 + 1), при этом делаем перекрестные бекапы, чтобы если что-то упадет раздавать с других серверов.
    Ответ написан
    Комментировать
  • Индексация мультиязыкового сайта без изменений в URL?

    @stas3572
    Если не принципиальна индексация обеих версий локализаций - определять поисковых ботов по UserAgent'у и отдавать соответствующий контент.

    Если нужна индексация обеих версий - то проще будет с урлами вида /en.

    Хотя впринципе, ничто не мешает делать винегрет, только чуть больше мороки:

    - определять «живых» пользователей, их язык, записывать/хранить в сессию+куки (можно еще в константу), по кнопке переключения языков перезаписывать (не забывайте - дать «чистую» ссылку на определенную страницу с опр. языковой версией не получится, только с get-параметром в урле);

    - определять «ботов», для ботов иметь something.com и something.com/en (основная морока - решите, надо ли вам иметь дубль) + не забываем про теги:
    <link rel="alternate" hreflang="x-default" href="http://something.com/">
    <link rel="alternate" hreflang="en" href="http://something.com/en" />

    Также в карте сайта можно указывать на мультиязычность. В общем смотрите Яндекс/Google доки по теме мультиязычных сайтов.

    Как то так)
    Ответ написан
    1 комментарий
  • Не могу разобрать код на PHP

    @lookid
    eval - фукнция, которая выполняет произвольный код. Например eval('print 1+ 1')
    base64_decode - декодирует и возвращает оригинальные данные
    $_POST - Ассоциативный массив данных, переданных скрипту через HTTP метод POST
    'n22ec2b' - ключ, по которому вы хотите получить данные, обычно поле формы

    а вообще это инъекция какая-то eval(base64_decode("...")), там может быть какой угодно вредоносный код
    Ответ написан
    2 комментария
  • Как сделать зачисление денег на баланс пользователя?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Нанять программиста.
    Если нет денег - пойти работать подавальщиком в макдональдс.
    Ответ написан
    Комментировать