Задать вопрос
  • Как правильно составлять заключение по состоянию серверной?

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

    Если температура воздуха в серверной выше 18 градусов и определенный уровень влажности и пыли, то это выше стандартов (серверное оборудование рассчитано именно на такую температуру), логичное следствие - дорогое железо тупо сдохнет раньше времени, и в гарантии могут даже отказать!
    Ответ написан
    Комментировать
  • Как принимать bitcoin платежи на сайте?

    @rPman
    итак, 2 главных правила:
    1. приватные ключи адресов, выдаваемых пользователям НЕ ДОЛЖНЫ храниться на веб-сервере, мало того, так как вы не выдаете монеты, храните их лично на своем (владельца сервиса) аппаратном кошельке
    2. bitcoind с ключом -prune 512 после прогрузки блокчейна будет занимать на диске примерно 6 гигабайт и через api будет полноценно работать с wallet.dat и адресами в нем в режиме просмотра и проверки прихода депозитов, запускать так же на сервере рядом с веб, на текущий момент этот демон может работать даже на малинке (файловую систему лучше использовать по сети на быстром файловом сервере, ибо у малинки только ОЧЕНЬ медленный usb), правда первичную загрузку лучше проводить на быстрой машине.

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

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

    Это самый правильный и простой способ организации приема платежей.

    p.s. ждите релиза lightning network, скоро это станет стандартом де факто для приема платежей

    p.p.s. Если у вас есть задача переводов от вас, то реализуйте ее на отдельном сервере, коммуникация между веб-сервером и этим платежным сервером должна проводиться через специальный модуль безопасности (и разработанный для этого api), перепроверяющий все что только можно, в идеале разработанный разработчиками, отличными от тех кто делал веб-сервер.
    Ответ написан
    3 комментария
  • Причина поломки ноутбука и как быть, неудачный ремонт?

    @rPman
    Почти наверняка ноут проснулся в сумке, для обновления системы, перегрелся и помер (вспоминаю историю из интернетов, когда ноут у человека залило так шоколадкой).

    В этот момент в нем могло сдохнуть много чего, на скринах почти наверняка смерть видеокарты и/или контроллера дисплея... не представляю как такие вещи можно детектировать и чинить эффективно.

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

    @rPman
    Все зависит от цели логирования, т.е. что хотите добиться?

    Без относительно этого, чем легче будет фильтровать лог (т.е. больше машиночитаемых атрибутов) тем удобнее будет разрабатывать новые инструменты по его анализу. Т.е. анализировать plain text это дикий геморой.

    Сохраняйте в логе как можно подробнее по полям (а может быть целую сложную структуру БД разработайте) что где когда и почему происходит.

    p.s. пример лога - дублирование структуры базы данных, с добавлением новых ключевых полей, таким образом чтобы любое изменение в таблице порождало новую запись в логовой. Добавьте понятие пользовательская сессия и записывайте в каждую таблицу отдельным полем ее id (сессия это кто, с какой машины, когда залогинился, когда завершил работу) дополнительно дату изменения и собственно тип изменения (create/modify/delete). В некоторых случаях можно оптимизировать хранение данных, если modify записи будут хранить только измененные поля а delete - только идентификаторы, но работать с такой структурой сложнее.

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

    Такая log-база данных это write once, позволяет подобрать технологии хранения максимально эффективные именно для этого. Никто не мешает на время анализа копировать интересующие данные в отдельную базу (in memory например, за последние сутки-неделю) и работать с этим подмножеством эффективнее. Однозначно напрашивается отдельное размещение базы на другом железе (как минимум другом диске).
    p.s. совет, храните рядом с этой базой, в оперативной памяти (при включении компьютера ее можно восстановить из лога), слепок (а лучше много, по ключевым событиям) идентификаторов таблиц последних изменений (просто список id, например в виде таблицы {event_id, table_id, id_value}) тогда состояние на ключевые моменты сможете вытаскивать запросом с трудоемкостью O(1) а не n или n^2 (от количества изменений в таблице).

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

    Скорость роста такой базы на порядок выше (подобный подход использовался выборочно для некоторых таблиц в продакшне, сотни пользователей, 10-гигабайтная БД, лог - в 8 раз больше). Не жалейте места на дисках, оно дешевле чем проблемы, которые оно поможет решить.
    Ответ написан
    2 комментария
  • Существуют ли готовые бесплатные решения для реализации видео-хостинга?

    @rPman
    Совсем полностью готовое чтобы прямо кнопочка красивая - конечно же нет.
    Но По отдельности все вышеозначенное уже есть

    Ключевые слова для поиска: peertube, webtorrent, webrtc - решают не только задачу хостинга, интерфейса и прочего но и задачу уменьшения нагрузки на сервер за счет p2p технологий хранения данных на клиентах.

    Конвертацию вполне решают пакеты на основе ffmpeg но как я сказал в виде инструментов, реализовывать под именно ваши хотелки придется самим.
    Ответ написан
    2 комментария
  • Если материнская плата поддерживает оперативную память частотой до 1800 MHz можно ли к имеющейся плашке ОЗУ на (1333 MHz) добавить ещё одну такую же?

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

    1333 это как бы минимально допустимый стандарт (для dd3), т.е. уж с ним память будет работать практически любая, вот если вы захотите поднять частоты,...
    Ответ написан
    Комментировать
  • Как можно реализовать возможность открыть один сайт через разные ip?

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

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

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

    Как бонус - одновременная работа.

    p.s. чтобы одновременно работать под разными ip без использования прокси, то в linux нужно будет использовать cgroups или иные механизмы изоляции, а в общем любые виртуальные машины, на ваш вкус.
    Ответ написан
    4 комментария
  • Как оптимизировать скорость записи множества больших файлов в linux?

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

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

    p.s. файловые системы со сжатием или online deduplication (типа zfs) тем более не позволят вам управлять процессом создания, точнее это нужно будет делать утилитами файловой системы.

    upd. забыл еще напомнить, на файловых системах Copy On Write (типа zfs/btrfs/...) предварительное размещение файла бессмысленно, даже вредно, так как любая запись будет проходить в новое место на диске.
    Ответ написан
    Комментировать
  • Как получить цвет ссылки, который грузиться с стороннего сервиса?

    @rPman
    Вы явно где то ошиблись, не важно, как dom строится, с помощь javascript или загружается прямо из файла, javascript должен иметь к самой его последней версии.

    Исключение, доступ к iframe, со стороннего домена.
    Ответ написан
    Комментировать
  • 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 и выдача исходников).
    Ответ написан
    Комментировать