• Websocket как изменить входящее сообщение?

    @rPman
    попробуйте подменить метод на свой, что то типа такого:
    https://stackoverflow.com/questions/40341197/how-t...
    WebSocket.prototype.oldSend = WebSocket.prototype.send;
    
    WebSocket.prototype.send = function(data) {
         console.log("ws: sending data");
         WebSocket.prototype.oldSend.apply(this, [data]);
    };
    Ответ написан
  • Пагинация комментариев (одна страница). Как решить проблему после удаления/добавления комментов?

    @rPman
    Постраничная навигация должна быть не по номерам страниц, а номерам первых комментариев на очередной странице, т.е. в идентификаторе в url должен быть именно этот идентификатор а не номер страницы. При получении несуществующего 'первого' комментария, делать поиск по ближайшего наибольшего id (select ... where id > @current_page_id limit 1), то потребует инкрементального id (а так все и делают) это значит и сортировку комментариев на странице делать можно по нему, и вообще выборку.

    Недостатки - сложно получить N-тую страницу, так как придется перебирать всю базу, но обычно никто не заморачивается с этим и обходятся первые M страниц, затем многоточие, затем ссылка на последнюю и количество страниц считать от общего количества комментариев.
    Ответ написан
  • Как сделать общение между двух пользователей анонимным?

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

    Пример такого текст/аудио/видео чата - talky.io основан на открытых технгологиях и webrtc (данные не уходят на сервер, а гуляют только между клиентами напрямую)
    Ответ написан
  • Как определить интересы пользователя?

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

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

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

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

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

    @rPman
    Сделать дополнительную колонку с датой, которая будет по формуле брать дату с колонки А если в колонке B или C есть даные, и оставлять пустой, если нет., выбрать эту колонку в графике в качестве источника данных (для оси Х) и скрыть ее в таблице, чтобы не мешала (дозаполнить ее вниз 'с запасом')
    Ответ написан
  • Безопасны ли чужие ключи от винды?

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

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

    @rPman
    Если вам нужен фиат (баксы, евро, юань,..):

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

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

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

    Если вам нужны криптовалюты:
    На каждый платеж генерируете новый адрес (можно заранее пул создать и крутить его, освобождая адреса по таймауту в несколько суток, если пользователь не стал платить, только предупредите об этом). Получили перевод (дождались нужное количество подтверждений), отметили что товар продан, все.
    Ответ написан
  • Где легально смотреть фильмы и сериалы?

    @rPman
    Гугл (поисковик), буквально, старается изо всех сил и у него получается неплохо, если универсально.
    Мало того, часть легального проката доступно почти сразу для покупки в гугл плей.

    Но очень много контента ЛЕГАЛЬНО НЕ ДОСТУПНО на русском языке...
    Ответ написан
  • Есть ли универсальный конструктор сущностей для Laravel?

    @rPman
    Не делайте так, осильте динамическое создание таблиц и полей в базе данных, это просто. Какая разница что вы напишите в коде кнопки 'insert into entities ...' или 'create table / add field'? Зато итоговая производительность у вас будет максимальная и инструменты по работе с данными нативные.

    Максимум будут проблемы - при частичном резервном копировании/восстановлении, настройке репликации и сложности поддержки клиентов с разными версиями (в веб это почти не актуально, кроме высоконагруженных сайтов высокой доступности)
    Ответ написан
  • Что лучше в процессоре: многопоточность (xeon) или тактовая частота (core i)?

    @rPman
    У вас многопользовательский доступ и приложения на php с rest архитектурой - ооднозначно и без вариантов - многопоточность.

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

    @rPman
    физическое лицо? легально - никак
    Юридическое лицо? с гемороем для пользователей
    Ответ написан
  • Как пустить весь трафик с локальной Win 7, через удаленный сервер на Ubuntu (настроить свой прокси)?

    @rPman
    ВЕСЬ трафик - только с помощью VPN

    Но если ваши приложения умеют socks прокси, то все очень просто - запускаете ssh подключение к вашему удаленному ubuntu серверу, с ключом -D1080 (1080 это локальный на вашей windows порт, н котором у вас будет прокси), или настроив в putty SSH -> Tunnels -> Dynamic и прописать source port 1080.

    Все, теперь достаточно в ваших приложениях указать прокси localhost:1080 и все будет работать (осторожно, некоторые приложения не умеют резолвить DNS через прокси, а в браузерах надо отдельно крыжик ставить)

    p.s. udp так не проксировать
    Ответ написан
  • Как сохранить открытый excel файл?

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

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

    Направления к размышлению для решения вашей задачи:
    - посмотрите решения от майкрософта office.live.com, это облачное решения (и кажется включая локальный сервер, за дорого) позволяющий открывать пользователю документ в браузере с интерфейсом почти идентичным десктопному приложению, кстати там есть бесплатные лимиты.
    - сформируйте документ таким образом, чтобы макросы в нем контролировали изменения и заливали их в каком то формате к вам на сервер, работать это будет в ограниченном списке ситуаций но хотя бы будет.
    Ответ написан
  • Постоянное обновление в реальном времени куска кода, полученного по XMLHttpRequest?

    @rPman
    если у вас 1 клиент, то setInterval - нормально, иначе нагрузка на сервер квадрат от количества пользователей

    Правильно
    - использовать (устаревший способ) - http long pooling (когда клиент спрашивает у сервера, есть ли события, а тот удерживает соединения, выдавая туда пробелы раз в минуту, а как появится событие - выдает его и закрывает http, т.е. клиент тут же его переоткрывает для следующего)
    - либо, лучший способ - websocket, примеры ищите их тьма, но нужно чтобы сервер был websocket, настоятельно рекомендую, если вам надо php - phpreact
    Ответ написан
  • Безопасно ли добавлять членов семьи на Google?

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

    Если вы даете кому то пароль - то этот человек сможет использовать ваш аккаунт на своих устройствах по максимуму.

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

    Вы готовы доверить на столько свою будущую жизнь вашим родственникам?

    А через пять лет? Десять?
    Ответ написан
  • Как создать детектор чихания?

    @rPman
    Собираете данные обучающей выборки (сотню другую чихов, кашлей, хлопков в ладоши и просто фоновых звуков). Затем, с помощью готовых алгоритмов получаете спектр звука на интервале (2-3 длины типового чиха), и натравливаете на это дело нейронку.
    Ответ написан
  • Как поместить значение в ассоциативный массив по "пути" состоящем из ключей-значений массива?

    @rPman
    Без цикла можно использовать array_reduce только массив отреверсить
    $a=['key1','key2','key3'];
    $value='test';
    $r=array_reduce(array_reverse($a),function($c,$i) use ($value) {return [$i=>(is_null($c)?$value:$c)];});
    var_dump($r);
    Ответ написан