Задать вопрос
  • Какой сервер используется в Ubuntu?

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

    собственно для расширения кругозора погугли что такое вебсервер однострочник
    Ответ написан
  • Как в JavaScript делать такие массивы?

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

    Например хранить можно список элементов в виде плоского массива, и в большинстве задач этого будет более чем достаточно

    Если нужно при этом знать, у какого элемента какой предок и какие потомки, то добавить поля parrent и childs со ссылками либо на сами объекты либо на их идентификатор (номер) в массиве всех элементов

    Если нужна связь с элементами html dom то в соответствующие элементы добавляй либо сасылку на сам dom элемент либо на его уникальный id
    Ответ написан
    Комментировать
  • Как правильно сделать индексацию базы mysql?

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

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

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

    p.s. Язык сложный для чтения, громоздкий и считается устаревшим.
    Ответ написан
    Комментировать
  • Как по запросу что то сделать у пользователя?

    @rPman
    server (php) -> client (browser) коммуникации возможны следующими способами:
    1. правильный - с использованием javascript и технологии websocket, для этого тебе нужен websocket сервер (запущенный рядом на сервере или даже где угодно) либо модуль веб сервера, позволяющий php серверу отправлять короткие запросы типа такого но не рекомендую так схему выстраивать)
    2. устаревший но в принципе рабочий - технология long pooling, в браузере так же должен быть javascript, обычный веб сервер должен уметь отдавать клиенту по запросу (а скажи ка мне что ты хочешь) желаемую команду, с бесконечным (до таймаута и повтор) ожиданием события, т.е. клиент запрашивает у сервера - есть от тебя команды, и при получении - считает что сервер прислал ее, а сервер при запросе задерживает ответ, высылая для приличия в канал пустышки, например пробелы раз в минуту. Этот способ очень универсальный и заработает на старых браузерах, в которых нет поддержки websocket, так же серверная реализация очень проста.
    кстати javascript может запрашивать эту страницу в основном двумя способами - ajax (обобщенно так зовут способы отсылки запросов из javascript к серверу) и добавление тега script с нужным url, а веб сервер туда возвращает что то типа msgReceivedCallback(json...данные);
    3. для прикола - очень старый способ, когда в браузерах не было даже javascript, с помощью фреймов и тега
    <meta http-equiv="refresh" content="10;URL=http:/site.ru">
    можно контролировать автоматическое обновление частей страниц, а с помощью настроек кеширования в заголовках, веб сервер контролирует частоту реальных запросов (а так же изменение времени обновления в этом теге), я помню даже вебчаты в локалке на этой технологии.
    Ответ написан
    Комментировать
  • Насколько безопасны cookies?

    @rPman
    доверять чему? какую атакую боишься?

    cookies это файлы, буквально, на стороне клиента, сам клиент имеет к ним полный доступ, читать, удалять, изменять (подделывать), поэтому абстрактного ОТ ПОЛЬЗОВАТЕЛЯ защититься с помощью cookies не получится, но в некоторых случаях с помощью этой технологии и обфусикации можно создать сложности рядовому пользователю для этих действий.

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

    @rPman
    У тебя всего четыре варианта
    - штатная витуализация win8..10 (на основе hyper-v), скорее всего он на основе устаревшего virtualpc
    - qemu/kvm
    - virtualbox (кстати умеет использовать kvm и hyper-v)
    - vmware

    советую попробовать virtualbox и выбрать в нем kvm (я часто вижу странные затупы в гостевом windows при выборе дефолтного варианта)
    и еще, настоятельно рекомендую в гостевой системе установить драйвера (дополнения ОС, бесплатно загружаются с офф сайта) и тогда можно установить к примеру virtio устройства сети и дисков, заметно снижают нагрузку на процессор и ускоряют работу
    Ответ написан
  • При использовании проверок на $_POST выходит ошибка ключей из массива. Что у меня в коде не так?

    @rPman
    Я тебе подправил твой вопрос, ты тегами code не попал собственно в публикуемый текст

    По теме вопроса, у тебя на любое открытие страницы идет попытка доступа к $_POST[...] но при простом открытии этот массив пустой
    делай хотя бы так:
    $name =$_POST["username"]??"";
    этот ?? делает так:
    isset($_POST["username"])?$_POST["username"]:""
    и ошибки не будет, а неизвестное значение подставится как ""
    Ответ написан
    Комментировать
  • Можно ли оплатить сервер на Hetzner на неделю а не на месяц?

    @rPman
    Нет, если период тарификации установлен в месяц

    мало того, бывает все гораздо грустнее, обычно есть дата тарификации, начало периода, начиная с которого нужно проводить оплату сервера, и если ты оплатил сервер не в этот день, то получается ты заплатил за меньшее количество дней, вырожденный пример - billing date у тебя 1-ое число а ты 30-го решил настроить сервер.. так вот заплатишь ты за эти 1-2 суток как за полный период.

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

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

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

    @rPman
    Сообщения об ошибках должны быть видны разработчику в dev консоли, потому что ошибки должны быть обработаны не только с точки зрения кода но и владельца сервиса в целом!

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

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

    @rPman
    file_put_contents(... FILE_APPEND) дописывает содержимое в конец без пересоздания и перечитывания файла
    это просто упрощенная запись конструкции
    fopen(...,'a');fwrite(...);fclose(...);
    если FILE_APPEND не указывать, то используется режим типа w+ (существующие файлы обрезаются в 0 размер, не существующие ошибки не вызывают)
    p.s. важное замечание file_put_contents FILE_APPEND работает очень медленно, синхронизируя каждую запись с диском, я помню переписывал код на использование fopen/fwrite плюс там можно гибко задавать буфер записи

    upd. на самом деле там используется просто режим 'a' и 'c' и чуть больше проверок
    С интересом обнаружил по исходникам что file_put_contents умеет писать array, объединяя без разделителя значения и пропуская ключи.... век живи век учись, не знаю зачем но смешно
    Ответ написан
    2 комментария
  • Некорректная работа жосткого диска?

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

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

    p.s. проблемный провод не мог повредить данные на диске! но могли быть ошибки во время копирования (случайно прекращается).
    Ответ написан
    Комментировать
  • Какая Linux без проблем встанет вместе с Windows 10(на один диск)?

    @rPman
    Практически все современные linux для загрузки используют grub, т.е. вне зависимости от выбранной ОС способ настройки и потенциальные проблемы - одни и те же.

    Настоятельно рекомендую grub (и EFI раздел linux если используется secureboot) не совмещать с загрузчиком windows и в идеале выделить любой носитель (хоть флешку или карту памяти, потребуется от силы несколько десятков мегабайт а для mbr legacy - всего 1) и для выбора с чего загружаться выбирать загрузочный раздел в BIOS. Саму же систему можно ставить куда угодно, я помню были даже решения, когда linux размещался в файле-контейнере на window диске (да это медленнее).

    Дело в том что конечно linux умеет предлагать выбор, что загружать, linux или windows. но майкрософту это не нравится ис периодичесттью раз в 1-2 года, с очередным обновлением приезжает какая то хрень и что то перестает работать, можно получить проблемы на пустом месте (например grub подменялся на майкрософтовский загрузчик и приходилось его восстанавливать), или вот - например у меня в прошлом году win10 отказывалась обновляться, ошибка маловразумительная причины гуглились в linux загрузчике но решения не подходили, я тогда помаялся и впервые решил проблему в win10 переустановкой, как это было когда то с winxp (скорее всего решение было но там был вопрос времени)
    Ответ написан
    Комментировать
  • Как подключиться к wss по такому адресу?

    @rPman
    wss - это websocket по https, тебе точно нужно вручную заниматься всем что касается шифрованием на php?
    настоятельно рекомендую для работы с websocket использовать уже готовые библиотеки например textalk websocket или ratchet pawl, вот почитай минитуториал на русском
    Ответ написан
  • Как при окончании загрузки страницы обновить блок div?

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

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

    Меняй данные сразу при загрузке страницы
    Ответ написан
    1 комментарий
  • Как сделать из int str?

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

    Про хранение на клиенте тебе уже подсказали

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

    При использовании таблицы-справочника sql запрос будет примерно таким
    select ... from profile p left join admin_cls a on p.admin=a.id
    Ответ написан
    Комментировать
  • Как перевезти .app файл в .exe?

    @rPman
    macbook не подходит для разработки windows приложений, как и наоборот, pc не подойдет для разработки под macos и osx.
    В твоем случае нужно запустить windows в виртуалке и уже из нее заниматься сборкой приложения

    p.s. если все же надо, ищи по ключевым словам macos windows кросскомпиляция, в зависимости от цели может ничего не получиться.
    Ответ написан
    1 комментарий
  • Почему подвисает интерфейс windows 10 при работе с 4к монитором?

    @rPman
    процессор случайно не перегревается (при использовании 4k выше нагрузка)?
    давно обслуживалось? чистка системы охлаждения и замена термопасты?
    Ответ написан
    Комментировать