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

    @rPman
    На сервере у вас уже есть (должны) быть инструменты, для определения авторизации пользователя (не доверять же одним кукам), например сохраненный идентификатор сессии у пользователя в базе, вот эти данные и очищайте, одним запросом к базе на сервере.
    Ответ написан
    Комментировать
  • Делать скрин браузера пользователей. Есть такое?

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

    click jacking уже работает (прозрачный iframe подставляется под курсор мышки нужной стороной), но в слепую, а будет - нет.
    Ответ написан
  • Возможно ли осуществить с сайта #2 вход на сайт #1 на простой форме входа?

    @rPman
    сайт #2, на котором проходит авторизация должен предоставлять механизмы (специальные запросы доступные только другим сайтам #1), сообщающие что вот такой то пользователь (идентификатор, создаваемый на старте авторизации еще в #1) ввел верные данные (и его роль админ/пользователь/гость...).
    Ответ написан
    Комментировать
  • Нарушение прав доступа при чтении по адресу 0x39383835 как исправить?

    @rPman
    Черт, неужели нельзя переделать код на использование & а не *, в идеале вообще избавиться от malloc и free а организовать код чтобы освобождение было автоматическим, или переместить логику в классы и деструкторы.

    Причина может быть страшнее - где то порушена память heap но узнаете вы об этом когда станет совсем поздно - т.е. в другом кучке кода.
    Ответ написан
  • Работа с файлами в C++. Как считать построчно из файла такие строки?

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

    @rPman
    Либо вы гарантированно сохраняете события но медленно их обрабатываете либо наоборот.
    Для начала не усложняйте систему - попробуйте писать в лог на каждое событие, если скорости диска будет не хватать, изменить способ хранения, последовательно исключая то что тормозит (например файловую систему, при записи в файл реально происходит несколько операций, в т.ч. в разных частях диска).
    upd: 16байт записи, дешевый ssd+ntfs:7674 rec/sec, старый hdd+ntfs:425 rec/sec

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

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

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

    @rPman
    Делайте идентификаторы такими, чтобы можно было гарантированно их разбить на группы, например с шагом N (макс количество серверов) а стартовое значение сиквенсов у каждого сервера разное (от 1 до N) - назовем это стартовое число 'модуль индекса', таким образом вы сгруппируете данные, и перемещать их можно будет группами, по принадлежности индекса своему модулю индекса (получить его можно взял модуль от индекса по N, если N- степень двойки, то достаточно будет битовой маски).

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

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

    Кстати, точно помню, в oracle можно было настроить репликацию данных по условию... не удивлюсь если это есть и у других, тогда за перенос данных между серверами будет отвечать внутренний механизм sql-сервера - это на порядок эффективнее и надежнее чем самописные инструменты.
    Ответ написан
    Комментировать
  • Node.js+request почему время на отправку первого запроса больше, чем последующие?

    @rPman
    Есть большой шанс что HTTP канал с сервером не закрывается, это дает заметный бонус на последующие запросы.
    Попробуйте делать запросы к разным серверам. А для бенчмарков лучше поднимать свой http сервер.
    Ответ написан
    Комментировать
  • Как установить Windows 10 параллельно с Linux?

    @rPman
    предполагается что с разбиением диска вы справитесь сами.

    установщик винды заменяет своим загрузчиком загрузчик linux, но ничто не мешает загрузиться после установки windows в live linux с usb/cd и вернуть grub обратно, на сколько я помню проблем с загрузкой windows из grub нет.

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

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

    p.s. в некоторых случаях винда может пожить в виртуалке, мало того, можно вообще на ноуте поднять что то типа cytrix и уже в нем запускать linux/windows и т.п., при должном везении даже видеокарту перебросить в windows получится, т.е. игры или тяжелые приложения будут работать как на реальном железе.
    Ответ написан
    Комментировать
  • Машинное обучение. Какой алгоритм выбрать?

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

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

    @rPman
    Ответ написан
    Комментировать
  • В каком формате чисел работать с Bitcoin в PostgreSQL?

    @rPman
    Все зависит от того, где вы будете работать с базой, т.е. на каком языке и какими библиотеками будете пользоваться.
    Универсальный случай - не доверяйте нецелым числам, в какой то момент вы можете получить очень неприятные округления!
    Пользуйтесть целыми числами int64 (и самостоятельно делите на 10^8 при выводе и учитывайте если будете проводить умножения на такие же целочисленные значения , например при умножении на стоимость в другой валюте, которая будет храниться так же)

    Если будете пользоваться php, пользуйтесь строковым представлением числа и методами BCMath - bcadd, bcdiv, bcdiv,..) таким образом даже на 32-битных системах (вам могут попасться такие виртуалки) вы не получите преобразование числа в float
    Ответ написан
    Комментировать
  • Как правильно купить биткоины для теста оплаты?

    @rPman
    для тестов есть тестовая сеть bitcoin, где можно намайнить блок за минуты на видеокарте, бесплатно и очень просто
    upd: кошмар, тестовая сеть нагружена, сложность difficulty=1.3кк, видеокарта месяц майнить будет

    localbitcoins, какие личные встречи, вы что? на столько удобного способа приобрести/продать в России я еще не встречал, банковские переводы, электронные кошельки типа yandex.money или webmoney (кстати у последних есть своя биржа по купли/продажи, bitcoin там представлен wmx = 1/1000 от биткоина), кстати курс у продавцов на localbitcoins очень даже неплохой, и вам никто не мешает вместо использования чужих курсов, выставить свое предложение и ждать когда к вам заглянет желающий продать вам монеты (выставляйте курс лучше, т.е. менее выгодный вам, чем у других, так как количество предыдущих ваших сделок определяют доверие к вам как к участнику)
    Ответ написан
    Комментировать
  • Застрял платеж уже третий день. Что делать?

    @rPman
    в electrum тоже можно менять комиссию прямо в окне перевода (для мобильного клиента как я помню где то в настройках опция есть)

    23-26-го сеть опять была зафлужена, forklog.com/kolichestvo-nepodtverzhdennyh-tranzakt...
    Ответ написан
    Комментировать
  • Почему новый сайт на WP сразу же попадает под Brute force?

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

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

    @rPman
    на onclick/onchange поля ввода (в зависимости, когда именно нужно делать запрос) ставите обработчик javascript которые используя ajax с помощью какой-либо библиотеки, тот же jquery (или более низкий уровень XMLHttpRequest без библиотек) а на сервере на этот запрос вы уже делаете sql запрос и возвращаете результат.

    Не рекомендую делать запрос на каждое событие, ставьте ограничение - не чаще чем раз в X секунд, например вместо прямого запроса делать его внутри setInterval, отменяя предыдущий.
    И помните что запросы ajax асинхронные, т.е. некоторые ответы могут прийти позже других (такие вы по логике не должны выводить, так как уже получили более новый)
    Ответ написан
  • Можно ли опубликовать демо-версии игры в iTunes и Google Play?

    @rPman
    не понимаю, какая может быть проблема?
    бесплатные приложения, которые не собирают деньги, могут давать ссылки куда угодно, могут быть чем угодно - даже если это тупо ссылка на ютуб видео.
    Ответ написан
  • Можно ли запустить игры на Virtualbox?

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

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

    при использовании xen/vmware/kvm в принципе есть возможность пробросить видеокарту как оборудование внутрь виртуальной машины и приложения бдут использовать ее на полной ее скорости, но для этого требуется дорогое железо (материнка, процессор с поддержкой виртуализации и ограниченное количество видеокарт, чаще серверные - дорогие)
    https://habrahabr.ru/post/137327/

    точно помню, когда citrix представляла эту технологию, использовался дорогой ноутбук с intel процессором и видео
    Ответ написан
    Комментировать
  • Как с помощью JavaScript можно определить скорость интернета пользователя?

    @rPman
    Интернет в вашем случае почти наверняка 2 параметра - скорость загрузки (сервер->клиент) и пинги, это можно сделать просто сделав пару запросов (большой файл и файл 0 размера) на свой сервер (обычным ajax), замерив время.

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