Задать вопрос
  • Как отобразить 1000 изображений?

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

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

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

    @rPman
    создаете список ваших архивов в виде текстового файла, каждый файл в новой строке
    создаете xxx.bat файл:
    @echo off
    for /f %%a in (путь_и_имя_файла_со_списком_файлов) do "c:\program files\7-zip\7z.exe" e "%%a" *.pdf

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

    7z.exe x ... - будет распаковать файлы с каталогом в архиве, в котором они находятся

    for /r c:\dir %%a in (*.7z) do .... - будет искать все архивы в каталоге c:\dir и его подкаталогах (т.е. файл со списком архивов не надо будет создавать)
    Ответ написан
    6 комментариев
  • Git pre commit как отследить что файл не попал в commit?

    @rPman
    исключите .gitignore из комитов, и делайте с ним что хотите, при необходимости опубликовать изменения, убирайте ваш файл из этого списка, и по новой.
    Ответ написан
    Комментировать
  • Как выводить PayPal на разные счета в РФ?

    @rPman
    Токсичность финансовой системы не даст вам спокойно жить! Уходите от фиата в нерегулируемую область, хоть те же криптовалюты (пусть ваши клиенты сами заморачиваются со вводом выводом, там стейблкоинов как грязи уже, волатильность не так страшна).

    Только так, иначе 'вопросы с банком' будут возникать в любом случае, рано или поздно.

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

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

    Регулярные переводы - вот уже и попадаете под статью получение регулярных доходов без образования ЮЛ. Много мелких примерно одинаковых переводов - вы торговец наркоты. Суммы больше 600к? срочно предоставьте документы откуда деньги и прочее прочее. Каких только вывертов я не наслушался, типа муж жене переводит свою белую зарплату, сумму, порядка 100т.р. и его перевод блокируют, отбирают 13% процентов и впаривают какую то чушь,.. заставляя месяцами бродить туда сюда в банк и что то доказывать.
    Ответ написан
  • Как объединить 2 андроид планшета или телефона?

    @rPman
    Будет не очень но попробовать можно

    Сначала соединить устройства в одну wifi сеть, что то мне говорит что дополнительный роутер, запиатаный от автомобильной сети будет лучше чем точка доступа на одном из этих устройств, но эксперимент провести ничто не мешает.

    Затем, любым remote control хоть тем же teamviewer или anydesk или просто vnc подключиться в режиме только просмотр к ведущему планшетнику и запускать на нем (можно отключить передачу звука, чтобы не было какафонии).
    ----------

    Еще вариант, планшетники принимать miracast не могут, но можно найти портативный монитор (такие есть и по цене терпимые от 3-4 т.р. может чуть дороже если надо с аккумулятором), докупить к нему hdmi донгл miracast/airplay за 600-1000р и расшарить (дублировать) экран ведущего android телефона/планшетника на этот монитор, на небольшом расстоянии это работает без проблем. Поддержка передачи видео по воздуху уже давно почти стандарт, но проверить наличие именно у вас тоже рекомендуется до покупки монитора.
    Ответ написан
    Комментировать
  • Windows SAPI: как задать ударение?

    @rPman
    Этот xml - это Semantic Markup Language (SML) стандарт, в sapi как я понял поддерживается его упрощенное подмножество, когда я тим пользовался, у меня много что не работало, то ли голосовой движок был не полноценным (а это для русскоязычной реализации обычное дело, кстати советую rhvoice) толи действительно sapi корявое.
    Начните от сюда https://docs.microsoft.com/en-us/previous-versions...

    попробуйте теги
    <emphasis level=“strong/moderate/none/reduced”> и <emphasizesyllable affect=“pitch/duration/both”>
    Ответ написан
    Комментировать
  • Как реализовать рассылку на Вайбер, Вотсап, Телеграм?

    @rPman
    Легально проверить наличие - последовательно добавлять телефоны в контакт лист своего телефона и смотреть на реакцию чат-приложений.

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

    Пример бота рассылки сообщений - на базе web telegram, приложение эмитирует буквально добавление контакта, ввод посимвольно текста и прочее, само собой с фиктивных аккаунтов, ибо после спам деятельности они будут забанены почти моментально.
    Ответ написан
    2 комментария
  • Как через прямое подключение lan кабеля узнать пароль от ssh?

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

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

    Но если вы не следите за этим, то злоумышленник может воспользоваться атакой man in the middle, установив между вашим ноутбуком и сервером свое оборудование (например подсунув вам фиктивный открытый wifi или подсунув в разрыв кабеля свой сервер, такие существуют, и помещаются в сетевом разъеме) то подсунув по вашему адресу свой сервер злоумышленник может украсть ваш пароль.

    Вот пример утилит для этого www.securrity.ru/terms/631-mitm-attack.html

    p.s. если злоумышленник смог проникнуть к вам на ноутбук, ваши пароли будут украдены без каких либо проблем простым кейлогером или заменой утилит на зараженные.
    ----------

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

    @rPman
    Список реализаций тут lua-users.org/wiki/LuaImplementations
    Например это https://github.com/chkn/AluminumLua

    Вы можете вообще не добавлять никаких библиотек к вашему контексту и добавлять свои методы в вашем коде которые будут вызываться на функции в lua.

    p.s. библиотеки опенсорс, всегда можно поправить код в том месте где файл открывается.
    Ответ написан
  • Можете подсказать программу для бекапа (WIN)?

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

    Обычные архиваторы умеют даже инкрементальную упаковку, когда выбираются файлы измененные/созданные после указанной даты, пакетный файл на запуск архива будет содержать 2-3 строчки (в зависимости от выбранного языка, например windows bat просто неудобен для хранения даты последнего запуска, поэтому будет еще пара строчек).

    p.s. обсуждение примеров использования 7zip в виде одной строки
    https://superuser.com/questions/544336/incremental...
    Ответ написан
    Комментировать
  • Как сделать систему баннеров?

    @rPman
    Добавьте в таблицу баннеров пользователям поле - время показа, при показе обновлять это поле на текущее время.

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

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

    @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/...) предварительное размещение файла бессмысленно, даже вредно, так как любая запись будет проходить в новое место на диске.
    Ответ написан
    Комментировать