Задать вопрос
  • Как защитить базу данных от взлома по строке подключения?

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

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

    p.s. парольная авторизация это пережиток прошлого ;) красивый пример - вы можете сделать авторизацию по qr-коду, генерируемым приложением на мобильном телефоне (а там таймкод по типу google authenticator) и снимать его через вебкамеру (подойдут даже самые дешевые, помню покупал одну за 70р, с подсветкой даже), коды авторизации выдавать пользователям при личной встрече.
    Ответ написан
    Комментировать
  • Какой софт использовать для анализа TCP/UDP соединений от приложений на Iphone, Ipad?

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

    @rPman
    Если вышеописанные советы (заливаете данные во временную таблицу а потом delete + insert + commit) будут сильно нагружать базу, попробуйте вместо удаления делать update (имеет смысл если ваш скрипт единственный, кто правит данные, тогда не придется блокировать таблицу), однозначно это будет на порядок быстрее, так как почти наверняка в старых данных и в новых изменения минимальны (цены и небольшое количество новых и удаленных товаров).
    Ответ написан
    Комментировать
  • Создать Скрипт/Программу которая ставит ставки с нормальным функционалом, что надо изучить?

    @rPman
    Если нет необходимости запускать свои приложения на сервере без интерфейса, т.е. например можно чтобы у вас был открыт браузер, то можно с помощью расширений браузера (или просто инжектить свой скрипт через консоль скрипт, если веб-приложение single page application) то вам хватит приложения на javascript, простого как валеннок.

    Например чтобы заполнить поле ввода текстом надо написать что то типа $('css selector контрола').value='блаблабла', кнопку нажать $('...').click( и т.п.)

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

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

    @rPman
    Если я правильно понял, это как opera mini (только для мобильных платформ)? Если найдете открытое, красивое и эффективное решение - поделитесь пожалуйста.

    Из готового мне на ум приходит только какой-нибудь кастрированный удаленный рабочий стол (или та же технология от Unreal engine pixel streaming, вы пишите приложение а оно в 1 клик может быть транслировано на пользовательские машины в виде видеопотока)
    Ответ написан
    Комментировать
  • Где можно найти примеры дизайна современных десктопных интерфейсов?

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

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

    Хорошо подумайте, десктоп ли у вас? Какое оборудование у вашей ЦА. А то видел я проект, который бездарно запилили на флексе (adobe flash) в браузере, под экран в fullhd 24"+ а у пользователей 15"-17" ноутбуки или квадратные мониторы, из-за чего практически все формы не влезают в экран (там был такой трэш, вида уезжающий вертикальный скроллинг, т.е. нужно крутить горизонтальным чтобы до него добраться, там много всякого было...).

    Хорошо подумайте, мышкой или пальцем (сенсорный экран) будут работать люди, это сильно меняет стиль и собственно работу интерфейса - кликать или жесты, делать ли мелкие контролы или страдать гигантоманией.

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

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

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

    Плоские и скудные контролы win10 это из мира мобильных пальцеориентированных, миниатюрных экранов смартфонов и планшетов, а так же веб. Тянуть их на десктоп - верх издевательства.
    Ответ написан
    1 комментарий
  • Почему компьютер выключается через 2 минуты после включения?

    @rPman
    Проверьте температуру процессора и южный/северный мост, вы можете мониторить все тупо в биосе, возможно высохла термопаста, достаточно ее заменить.

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

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

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

    @rPman
    Если у вас мало клиентов, то покупаете самый дешевый (от 1$/месяц) vps, ставите туда ffmpeg или vlc и парой команд запускаете трансляцию из файла.

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

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

    Достаточно давно, когда я изучал вопрос, все предложения были достаточно громоздкие и дорогие. Если у вас mac или android, то необходимо проверять совместимость, если это usb.

    Сейчас первое же попавшееся решение с хорошими отзывами, стоит порядка 5т.р.
    Ответ написан
  • Как уменьшить вес JS файла?

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

    p.s. я не верю что у вас 900кб все используются, это очень маловероятно
    Ответ написан
    Комментировать
  • Как соединить компы, чтобы данные по кабелю, а интернет по wifi?

    @rPman
    в windows с wifi не так красиво (там вообще в сетевых настройках при попытке отойти от стандартного начинаются сложности)

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

    @rPman
    Убирайте пиздец с вставкой значений в sql-код, пользуйтесь параметрами запросов. Иначе к вам приедут sql injection.

    По поводу значений формы, вам достаточно использовать условия в вырожениях, что то типа
    @$_POST['vidrab']==''?null:$_POST['vidrab']
    @ говорит что ошибку отсутствия нужно игнорировать, и значение в этом случае будет false, нестрогое равенство == скушает вместе с false еще и пустую строку. Если у вас комбобокс, то используйте конкретное значение 'не выбрано' и сравнивайте дополнительно с ним. Осторожнее с чекбоксиками, там отключенное значение - пустое.
    Ответ написан
    4 комментария
  • Какую разметку диска выбрать для soft-raid'a?

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

    В общем если вам не нужно шифрование lvm вам уже не понадобится.
    Ответ написан
    2 комментария
  • Как оптимизировать sql запрос товаров opencart?

    @rPman
    Это что за треш запрос вы привели в вопросе?
    В нем вложенные подзапросы в select это не просто бад практикс, это пиздец. Это так в opencart сделано или вы добавили? избавляйтесь от этого, понятно почему оно 20 секунд копается.

    Как минимум запрос по oc_review выносится легко. С запросами по oc_product_discount и oc_product_special наверное нужно что то делать, там limit стоит, Даже не разбираясь в структуре проекта и прочего, я бы эти данные выносил тригером в соседнюю таблицу (т.е. эти 'тормоза' были бы в момент заливки данных о товарах и скидках в базу), а на запросе брал бы информацию из нее.
    Ответ написан
  • Нужна 3D модель платы телефона, знаете где достать?

    @rPman
    В этом и состоит НИР ;) а если точнее это не научная работа а реверсинженеринг.

    Разбирайте телефон и пихайте платы в сканер, в 99% случаев вам хватит обычного офисного 2D сканера для бумаг и негативов (советую выбирать с высоким DPI). Затем по полученным изображениям обрисовывайте модель в вашем любимом векторном или 3D редакторе.
    Ответ написан
    Комментировать
  • Как сделать коробочную версию сайта?

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

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

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

    p.s. есть есть доступ в интернет и много клиентов, можно заставить пользователей (их инсталляций приложения само собой) следить друг за другом и контролировать неправомерные изменения, но это уже из разряда создания proof-of-что-нибудь и блокчейна ;) ха ха но именно это позволило решить проблему неправомерных изменений 'амбарной' книги bitcoin и аналогов.

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

    Про коробочную версию, у php есть штаный механизм упаковки всего проекта в phar файл (это zip файл), мало того, в 99% случаев для запуска приложения достаточно только php, запустив его с ключом -S поднимется упрощенный веб сервер (не подходит для высокой нагрузки). Так же при использовании sqlite база данных будет идти в виде одного файла, итого - весь проект можно передать двумя файлами и короткой инструкцией по установке, или же базу данных можно создавать автоматически при первом запуске.
    Ответ написан
    Комментировать
  • Возможно ли кодирование одного видео одновременно на ЦП и ГП?

    @rPman
    Это возможно.
    Делите видео на две части (длительность каждого должны соотноситься приблизительно как соотносятся производительность кодирования на cpu и gpu), и запускайте их кодирование сразу двумя процессами, с разными настройками использования cpu и gpu соответственно. По окончанию их работы, сливайте результат без перекодирования в один файл (некоторые контейнеры это позволяют делать простым копированием, например ts).

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

    @rPman
    atop, это не только текстовый интерфейс для просмотра нагрузки но и сервис, он собирает статистику в файлы
    Ответ написан
    Комментировать
  • Как отследить транзакцию на биткоин-кошелек с уведомлением на e-mail?

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

    Самое простое, ставите на своем сервере любой bitcoin кошелек, хоть официальный bitcoin core (в режиме -prune он сейчас на диске занимает порядка 5гб, а после 'прогрузки' блоков оно прекрасно работает даже на первой малинке, т.е. не требует ни памяти ни процессора, но нужен относительно быстрый диск, штатного usb не хватит, советуют использовать сетевой nas), в нем есть возможность повесить колбек (вызов вашего приложения) на появление транзакции в ваш кошелек. Так же в core есть функционал watch only кошельков, когда на чтение вам будет доступна вся информация даже без приватных ключей.

    p.s. в prune режиме по умолчанию вы можете отслеживать только транзакции в адресах, которые добавили в кошелек после прогрузки блоков, иначе вам нужно заново прогружать блоки, добавив адреса, пока сканируются самые первые.
    Ответ написан