Задать вопрос
  • PHP7. Двухуровневое кеширование + форк?

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

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

    Поднимите на базе php вебсервер (или даже вебсокет сервер или оба, react вполне себе технология, с плюшками от nodejs, асинхронщины и прочее) в том случае ваши данные будут всегда в оперативной памяти и контролируемы вами (т.е. вы можете управлять кешированием (управление блокировками) на уровне логики приложения, вплоть до полного хранения в оперативной памяти в переменных, а не базы данных как прослойки), само собой нет необходимости выставлять этот сервер в сеть, пусть проксирующим будет ваш основной вебсервер, контролирующий пользователей на уровне запросов и даже авторизации, а ваше react приложение - отвечать за логику.

    Из недостатков подхода, полученный бонус к скорости заметно отдалит необходимость перехода к многопроцессорной реализации, так как по умолчанию это single thread приложение (но само собой никто не мешает вам запускать несколько бакенд но блокировками управлять так же придется с оглядкой на это), т.е. разрабатывая приложение об этом почему то многие стараются не задумываться сразу, типа зачем и так все круто, но потом будет больно.

    В некоторых случаях скорость может подняться тысячекратно.

    Классический же подход позволяет 'из коробки' использовать многопоточность и даже кластерную реализацию чуть ли не на администраторском уровне.

    upd. исправил в ответе redis на react (глупо попутал термины)
    Ответ написан
    Комментировать
  • Где лучше создавать динамичные сайты?На CMS или с нуля?

    @rPman
    Разработка веб приложения это:
    * дизайн
    * верстка (требуется специалист умеющий css/html)
    * фронтэнд - клиентская сторона
    * бакэнд - серверная сторона
    (а еще тестирование и юзабилити дизайн)

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

    Главное отличие 'все сам с нуля' от 'использовать готовый фреймворк/cms' - в варианте готовый фреймворк вы получите все готовое но основное время вы будете тратить не на свою задачу, а бороться с особенностями и глюками этого готового решения. Грубо говоря вы получите что то готовое, много, голова кружится как легко и быстро вы это сделаете, но потом будете тратить много много времени чтобы добавить маленькую фичу, не предусмотренную разработчиком. И главное, поддержка со временем. Мало какой фреймворк живет дольше трех лет, какой там, через год разработчик посчитает что он сделан на устаревшей технологии и решит все переделать, забросив прежнее решение. А отсутствие поддержки это проблемы в кубе в продакшене.

    Но если вы делаете свое решение, то поддержкой этого решения так же придется заниматься вам самим. Думайте об этом, когда будете оценивать 'стоимость' решения.

    Истина где то посередине.
    Ответ написан
    Комментировать
  • Возможно ли создать безошибочную идентификацию устройства?

    @rPman
    Скрытый приватный ключ в специальном чипе на устройстве.

    Пример такого устройства - sim-карта, или специальный чип в смартфонах iphone и некоторых android, содержит секретный ключ, вытащить который невозможно, имеет чип, позволяющий шифровать данные этим ключом (асимметричные алгоритмы шифрования). Сервер может проверить что данные зашифрованы верным ключом.

    https://en.wikipedia.org/wiki/Hardware_security_module

    https://developer.android.com/training/articles/ke... - если аппаратного хранилища нет, его предоставит операционная система, это не так надежно но все же стоимость взлома высокая
    https://developer.apple.com/documentation/security...
    https://social.technet.microsoft.com/wiki/contents...
    и т.п.

    Для windows стандарта не придумали, да и устройства по умолчанию не поставляются. Для intel можно конечно покопаться, инструменты проприетарные есть, используются для хранения ключей oem и т.п. но эти инструменты обычно используются производителем железа (ноутбука) и скорее всего уже залочены.

    Для десктопных машин используется практика usb hasp ключа, или usb ключ представляющийся в системе как клавиатура и генерирующий time code (коды, привязанные ко времени, например как google authenticator), сами устройства дешевые, уникальные, можно найти специальные программируемые (секретный ключ можно записать один раз и отправить клиенту), стоят не дорого (дороже доставка).

    https://en.wikipedia.org/wiki/YubiKey
    Ответ написан
  • Как при асинхронной обработке с помощью нейросетей не подтягивать каждый раз веса?

    @rPman
    Смотрю примеры на github там все выглядит не так как у вас:
    https://github.com/pjreddie/darknet/blob/master/ex...

    там же прямо в примере показана однократная загрузка нейросети и конфигов а затем последовательно подставляются картинки
    Ответ написан
  • Как организовать отказоустойчивость бота (long running process)?

    @rPman
    Ваш бот обычный процесс cli php? какие проблемы, запускать его с помощью простой команды
    while(true);do php main.php;sleep 1;done
    Будет бесконечно пытаться запустить php main.php с паузой между запусками 1 секунду.

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

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

    @rPman
    Только сколхозить, если ssd 3.5" то их можно разместив вертикально по краям диска (они какраз могут поместиться там, например слева на приступке очень точно помещяется) вставить в 'распорку' дополнительно любой мусор.

    Ненадежно, неудобно, некрасиво, но схема рабочая для дома и офиса.
    Ответ написан
    Комментировать
  • Как настроить настроить rdp из другого здания к домашнему ПК на роутере mikrotik?

    @rPman
    dyndns.
    На роутерах обычно для этого есть соответствующие настройки, например dlink роутеры за бесплатно имеют возможность использовать домены 3 уровня в *.dyndns.com, и конечно же настройка перенаправления портов в роутере (rdp это tcp 3389), часто в роутерах это зовется сервера в локальной сети или что то такое.

    Не вздумайте так делать, не выносите сервисы, предназначенные для локальной сети доступными в мировую сеть, в лучшем случае вы можете получить просто запрет на вход из-за попыток брутфорса вашего пароля, в худшем, через очередную дырку (а их в т.ч. для rdp протокола обнаруживают постоянно) к вам проникнет зловред.
    Ответ написан
    4 комментария
  • Big прайсы, обновлять или удалять и заново записывать?

    @rPman
    Вложите логику формирования цены (ту часть что меняет ее часто) в базу, в виде коэффициентов, таким образом чтобы достаточно было изменять общие из них а те что хранятся у товаров были постоянными.

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

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

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

    @rPman
    Дайте определение вашему 'нулевая активность' это и будет ваше условие фильтрации.

    p.s. задача в общем виде решения не имеет, это вечная борьба щита и меча.
    Ответ написан
  • Как максимальный объем microSD по факту?

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

    Но теоретически возможен искусственный лимит, определенный в софтварной части устройства, которая собственно обрабатывает логику и поддерживает exfat... зачем это может понадобиться производителю - очень просто, разграничить категории устройств по сегментам low end/mid end/high end, потому что на практике им уже очень сложно чем то другим это делать. Например людям подходит устройство не шибко производительное но с хорошим и емким хранилищем, производителю не нравится что люди этой категории покупают дешевое а не дорогое устройство, устанавливаем лимит на размер и вуаля - люди вынуждены покупать дорогое устройство.

    Если это linux устройство, подобный лимит, если он имеет место быть, с некоторой долей вероятности можно будет убрать перепрошивкой устройства, но тут должно совпасть столько условий, которые китайские/корейские производители уже давно не выполняют (лицензия GPL и выдача исходников).
    Ответ написан
    Комментировать
  • Можно ли проверять доступность сайта перед редиректом?

    @rPman
    не делайте так! особенно если у вас хоть какая то нагрузка.

    почти наверняка речь идет о нескольких хостах а не всем интернете, а значит вам достаточно отдельным процессом следить за доступностью и править конфиги програмно, apache2 reload работает неплохо.
    Ответ написан
  • Как по SSH с линукса на линукс получить доступ к GUI?

    @rPman
    ssh -R локальный порт:сервер в йдаленной сети или localhost:порт на этом севере имя@ssh-сервер

    получите подключение к вашему серверу с настроенным перенаправлением всех соединений к локальному порту на порт на сервер в удаленной локальной сети (или localhost если тот же сервер)

    на удаленной машине настраиваете удаленное управление (у ubuntu это vino сервер, включается просто чекбоксиком в настройках, это обычный vnc) на вашей машине любой vnc клиент (под windows берите например tightvnc), порт 5900 т.е. например:
    ssh -R 5900:localhost:5900 user@server

    а в tightvnc подключаетесь к localhost
    Ответ написан
    Комментировать
  • Автоматизировать заполнение форм с Android?

    @rPman
    Это серьезно? Обязательно с android?

    Это веб-сайт, пишите примитивное приложение на базе web компоненты, инжектируете на страницу свой javascript код и кликаете куда хотите им.
    Ответ написан
    Комментировать
  • Как определить размер папки на google drive, не скачивая на комп?

    @rPman
    Утилита, первый запуск выдаст ссылку подключения доступа к аккаунту
    gdrive-windows-x64.exe list -m 1000

    дальше выдаст список файлов и каталогов (1000 лимит вывода, увеличивайте если нехватает), сохраняете в текстовый файл и открываете экселем (таблица с колонками фиксированной позиции, с пробелами) или чем вам там удобнее, размер в human readble варианте, ну выкрутитесь как-нибудь (формулой в экселе например).
    ----------------
    Альтернатива:
    Плагин к total commander, загружаете, добавляете, подключаетесь, делаете поиск *, жмете 'на панель', выделяете все, смотрите внизу размер.

    Если плагин встретит каталог с символом / в имени, будет глючить и выдавать бесконечную рекурсию
    Ответ написан
    Комментировать
  • Возможно ли программно считать код из google authenticator или его аналога?

    @rPman
    ну задали бы в гугл вопрос а? это же не сложно!
    первый же результат - https://github.com/google/google-authenticator

    это HMAC-Based One-time Password если в гугл задать добавив java получим:
    https://github.com/jchambers/java-otp
    Ответ написан
  • Какую систему установить на процессор n2840?

    @rPman
    Для начала отключите все свистоперделки в интерфейсе OS, оно использует как минимум одну прозрачную текстуру над окном браузера, что на слабых устройствах гарантированно дает проблемы с производительностью - для начала проверьте как работает youtube после включения классической темы.

    Поставьте google chrome, это не панацея но практика показывает у него получше с поддержкой железа из коробки... как минимум это позволит понять, стоит ли пытаться решать проблему дальше или все, вариантов больше нет.

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

    p.s. на слабых машинах, youtube обычно серьезно нагружает процессор, т.е. простая загрузка данных (в режиме паузы), это шокирует но такова реальность, изменить ее может использование плагинов, подменяющих html5 проигрыватель на что то по шустрее (точно помню под linux ставил расширение для браузера, которое запускало youtube видео в отдельном окне mplayer, это сильно помогало), попробуйте погуглить browser plugin mplayer youtube. Правда есть проблема, эти расширения могут не уже поддерживаться.

    Очень хорошо поддержкой youtube и еще кучи стриминговых сервисов поддерживает консольная утилита youtube-dl, рекомендуется ее своевременное обновление (т.е. то что идет штатно с дистрибутивом ubuntu скорее всего не заработает или будет отсутствовать из-за борьбы гугла с подобным), например с помощью pip (в т.ч. на windows), т.е. вы сможете не только проигрывать видео по ее ссылке но и сохранять на диске (потоки video/audio по умолчанию оно их сшивает), освойте пару приемов с ffmpeg и напишите простейший скрипт bash/cmd и для просмотра видео вам будет достаточно пары нажатий на клавиатуре (что то типа скопировать ссылку в буфер и нажать комбинацию кнопок, запускающий ваш скрипт).
    Ответ написан
    2 комментария
  • Какое место занимает язык ассемблера среди языков программирования?

    @rPman
    Как самый простой с точки зрения реализации и собственно синтаксиса. Проще реально некуда, это почти линейная подмена ключевых слов - бинарными кодами соответствующих команд процессора.

    Кто то конечно вспомнит какой-нибудь brainfuck и прочий трэш, оно действительно синтаксически проще, но мне кажется вас не интересуют такие вырожденные случаи.
    Ответ написан
    Комментировать
  • После установки на декстоп Ubuntu рядом с уже установленной Windows 10, не могу зайти ни в UEFI, ни в Windows 10. Что не так?

    @rPman
    Еще есть биосы, со входом по F2. Это странно что вы не можете войти в биос.
    Кнопки не реагируют потому что клавиатура USB а в биосе оно отключено (разные материнки по разному этот момент отмечают, поищите)

    вы затерли раздел с UEFI? вам его нужно восстановить, для win это 100мб загрузочный раздел обычно создается автоматически.
    Ответ написан
  • Как сделать просмотр документов разных форматов в браузере?

    @rPman
    На сервере предварительно 'распечатайте' документы в pdf, это на текущий момент самый универсальный метод для просмотра документов, любых, без потери форматирования, причем очень часто не теряется текстовая информация, т.е. это не картинки.

    с pdf в браузере на порядок проще, есть javascript просмотрщики и у клиента обычно уже что то есть для этого, зачастую с автоматическим просмотром из браузера.
    Ответ написан
    Комментировать
  • Как сделать такое видео?

    @rPman
    Если бесплатные утилиты, я видел плагины к sketchup, позволяющие не только дизайнить трехмерную сцену но и анимировать процесс сборки.
    гуглить что то типа Construction Sequence Animation

    Это в смысле исключительно мышкошевелительно.

    А уж платных инструментов и/или с использованием языков программирования - и подавно много.
    Ответ написан
    Комментировать