Задать вопрос
  • Зависает процесс php из командной строки, что сделать?

    @rPman
    в крон задании сохраняйте pid процесса в файл (запускайте через & и сразу берите pid из переменной $!), а соответственно перед этим, убиваете процесс с pid из этого файла (если он есть).
    Ответ написан
  • Система личных сообщений (шардинг)?

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

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

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

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

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

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

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

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

    p.s. не советую работать лично, пусть риски недовольства правообладателя, если не договоритесь, берет кто то другой
    Ответ написан
    3 комментария
  • Есть ли бесплатный стриминговый сервер аудио?

    @rPman
    На текущий момент для веб лучшие решения крутятся вокруг webrtc, народ пилит обычно сервера на nodejs.
    Первый же пример из гугла webrtc audio streaming:
    https://github.com/enjikaka/webrtc-audio-stream
    Ответ написан
    6 комментариев
  • Как красиво оформить адрес проживания?

    @rPman
    m-k-m

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

    p.s. если вам нужны запросы по элементам адреса, не городите велосипед, возьмите КЛАДР. настоятельно рекомендую не дублировать базу у себя а использовать рядом лежащую, кажется там есть готовый api для этого, а вы пользуйтесь его идентификатором, но помните, там не все адреса (это может создать миллион проблем, из-за которых люди дублируют кладр у себя в базе, но тогда начинается геморой с ее обновлениями, можете продублировать структуру но данные первично загружайте из кладр)

    p.p.s. https://habr.com/post/214945/
    https://habr.com/post/140378/
    Ответ написан
    Комментировать
  • Как защитить информацию которая имеется в ограничено количестве копии "Инсайд"?

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

    Таким пользуются и вебсервисы, это просто для реализации.

    Например база данных - на запрос единицы данных ставьте лимиты времени (лучше на некоторое их количество), таким образом чтобы за 24 часа всю базу просканировать автоматическими системами не получилось бы.
    Ответ написан
    Комментировать
  • Как по 2-мерной матрице вычислить представляющую ее функцию f(x,y)?

    @rPman
    В универсальном случае, как ни странно, на текущий момент такой функцией являются нейронные сети, на хабре была статья про исследователей, эксперементирующих с восстановлением видео с использованием мизерной функции (нейронной сети, причем там получались считанные килобайты на все видео).
    https://habr.com/post/372337/

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

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

    @rPman
    У разных виртуалок свои сетевые устройства, объедините их в бридж (в win это зовется сетевой мост), можно объединить вместе с физической сетевой картой, тогда с точки зрения сети эти виртуалки станут просто отдельными устройствам в локальной сети, и ваш dhcp сервер (роутер) выдаст им каждому свой адрес (и будет работать NAT если используется).
    Ответ написан
    Комментировать
  • Как правильно хранить таблицу с тарифами по часам?

    @rPman
    Каждый час - свой атрибут в таблице (т.е. 24-атрибута, а их значения в таблице - цены), ведь в запросах эти данные будут подставляться конкретным значением, а значит это можно делать генерируя сам запрос (это не повлияет на скорость его исполнения), зато не будет перегруженной структуры, лишних индексов и оверхеда на работу с ними = плюс к скорости и простоте разработки.
    Ответ написан
  • Почему заблокировали аккаунт разработчика Google Play и как действовать?

    @rPman
    Во первых, вопрос, у вас нет смартфона android? Вы прописывали свой аккаунт на нем? Вы точно говорите правду? У народа по 3-5 аккаунтов, просто так созданных, может быть и вы создали и забыли, а спамеры пароль расковыряли и пользуются? А аккаунты связаны с вашим поведением, ip, или даже в одном браузере (куки) логинились.

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

    p.s. Ситуация с гуглом ужасна и отвратительна идеологически, и дальше будет хуже. Мы (не только программисты) зависимы от этого монополиста, на столько сильно что это может влиять на нашу жизнь негативным образом и плохой abuse-support этому только способствует.
    Ответ написан
  • Как найти координаты белых областей на картинке через JS?

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

    По завершению у вас метод вернет список областей, являющихся белыми.

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

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

    @rPman
    Слишком дешевые сервисы могут показать фигу и послать молча нафиг. Малые гарантии работы сервиса, слабые скорости процессора из-за оверселлинга и прочее прочее.

    Например пользуюсь второй год quadhost.net vps, с оплатой за весь год (12 и 24 евро за год за машины с 1 и 2гб оперативки, с безлимитным интернетом, дешевле найти почти не реально), так вот через месяц после оплаты второго года, одну машину мне остановили с отпиской что сильно тратится процессор, и игнорируют все мои вопросы в тикетах по этому поводу.
    Ответ написан
    3 комментария
  • Как вычислить бонус большой покупки?

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

    @rPman
    Можно сделать 2 primary раздела, один (первый) отформатировать под UDF (это файловая система для перезаписываемых компакт дисков, будет читаться на любых ОС, причем в режиме только для чтения), второй - обычный fat32 или exfat (для флешек больше 32гб).

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

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

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

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

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

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

    @rPman
    Переносите диск копированием, есть куча утилит от платных (acronis) до бесплатных (типа clonezilla), для резервного копирования, которые позволяют правильно клонировать диск (если железо отличается, возможно понадобится установить заранее драйвера для контроллера и удалить старый, включив стандартный от майкрософта, иначе получите синий экран при запуске). Затем вставляете оба диска и устанавливаете GRUB, он сам найдет и пропишет в меню запуска обе операционки. Ставьте GRUB на раздел с winxp (или на третий диск или даже флешку, я был свидетелем странной конфигурации, где загрузчик был установлен на компакт диске), она попроще относится к нему, win10 может при очередном обновлении что-нибудь у чудить и удалить его, починив свой раздел запуска.

    НО! Виртуализация winxp наиболее предпочтительный вариант, особенно на будущее. Почти все приложения для содания виртуальных машин имеют мастер переноса установленной внутрь виртуалки.

    Бонусом идет легкий перенос между железом (буквально 1 файл скопировать) на будущее, потому что состав виртуального железа не будет меняться заметно, даже при кардинальном апгрейде железа (даже при смене архитектуры, как минимум будет работать, но может быть медленнее, если к примеру запускаете x86 на arm).

    Недостаток - небольшое замедление работы приложений (сильнее - если нужны вычисления, чуть менее - работа с диском) и почти полное отсутствие доступа к 3D-видеокарте. Некоторые виртуалки эмулируют 3D-ускорение, но поддержка слабая, обычно работает для CAD-софта но плохо поддерживаются современные игры и конечно же запуск вычислений на GPU. При поддержке железом и некотором везении с видеокартой, возможен перенос доступа к устройствам, видеокарты или чего то экозотического, хитрых контроллеров или даже нестандартных лицензионных ключей, через переброс pci/pci-e/usb напрямую внутрь виртуалки, т.е. пойдут и игры и необычные приложения.
    Ответ написан
    Комментировать
  • Есть распознователь речи для Windows?

    @rPman
    Поддержки распознавания русского в windows нет до сих пор, есть сторонние движки, они слабоваты.
    Не хуже гугла с русским работает только яндекс. Фреймворки платные.

    Есть специальное windows voice recognition api, вы работать с ним, но еще раз это прослойка до движка, который нужно установить на машину клиента. Без прав администратора это невозможно, либо это свой движок со своим api.

    Попробуйте движок хрома (возможно он частично или полностью онлайн)
    https://developers.google.com/web/updates/2013/01/...
    вы можете сделать свое приложение на его базе, тогда простейшими атрибутами html5 вы сможете этим управлять.
    Ответ написан
    Комментировать
  • Передача данных на сайт без перезагрузки?

    @rPman
    ключевые слова:
    javascript
    ajax
    websocket

    p.s. ладно вы и сами это поняли. Вы должны формировать страницу не на серверной стороне в php, а на клиентской, в javascript на onload (фреймворков шаблонизаторов пруд пруди, но никто не мешает вам делать все самим), и опрашивая либо по таймеру сервер (плохая практика) либо используя вебсокеты, ожидать от сервера данных.
    Ответ написан
  • Как передать управление аккаунтом телеграм программе?

    @rPman
    Какими инструментами, приложениями или библиотеками можно воспользоваться, чтобы оперативно отслеживать новые сообщения на публичных каналах telegram?
    там решение https://github.com/TehDmitry/tg-cli

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