Задать вопрос
  • Как сделать многостраничный сайт без PHP/python/React?

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

    Кстати многостраничным сайт может быть и с одной физической страницей, когда содержимое меняется с помощью javascript. Никаких фреймворков для этого не надо, максимум упростить себе жизнь, используя готовый шаблонизатор (можно найти минимальный в виде простенькой функции из десятков строк, а сами шаблоны хранить тут же в документе внутри <script type='text/html'>).

    Пример, рисуешь в пределах одного документа сразу несколько страниц, буквально разместив каждый в своем контейнере (div), указав им каждому стиль display:none, затем навигацию между страницами реализуешь с помощью anchor # (адрес страницы размещается в ссылке после #, такие ссылки не перегружают страницу с сервера но ловить изменения можно либо на onclick значимых ссылок либо по таймеру), поочередно меняя нужным частям документа на display:block и обратно.

    Если на странице есть информация 'о документе по ссылке', то заполняешь ее тем же скриптом, простейший пример document.getElementbyId('идентификатор').innerText или value позволит поменять значение на нужное.

    Если нужна коммуникация с сервером, используй ajax, который по факту внутри штатный XMLHttpRequest, и даже не сильно многословный код получится.

    p.s. 99% бонусов, получаемых от фреймоврков - это решение проблем с кроссплатформенностью и кроссбраузерностью. Мое мнение, все остальное - это проблемы, стоимость решения которых зачастую выше тех профитов, которые получаешь от фреймворка.

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

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

    А вот реализация правильной синхронизации клиент сервера действительно очень сложная задача.

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

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

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

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

    Хорошим способом борьбы с нагрузкой на сервер может являться p2p, когда данные об изменения, паралеллельно с сервером обрабатываемые клиентами, рассылаются не через сервер, а напрямую клиентам, а сервер рассылает только хеши результата. Это сильно усложнит код (я не слышал чтобы крупные проекты так делали) но позволит решить кучу проблем как с лагами так и с высокой стоимостью сервера.
    Ответ написан
    Комментировать
  • Можно ли хранить в графовых базах данных JSON?

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

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

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

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

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

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

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

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

    Если требования низкие, то в принципе любая офисная машина подойдет (помним про оперативную память без ECC и мизерный шанс порчи данных на такой), только диск ssd даже не обсуждается, в частых случаях можно совместить медленные hdd и кеш на ssd (bcache). Софтварный raid на основе mdadm и/или bcache/zfs желательны.

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

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

    @rPman
    попробуйте подключить через dvi порты.

    Владислав, там dvi-d, он чисто цифровой, т.е. читай он тот же hdmi, поэтому бери пассивный переходник dvi-hdmi (папа-мама) и уже в него вставляй hdmi-vga

    впервые слышу что у современной видеокарты порты взаимозависимые, обычно полностью независимые, а это значит какие то помехи вносит адаптер hdmi-vga
    Ответ написан
    Комментировать
  • Каким образом почистить и перезаписать большой файл с номерами телефона?

    @rPman
    20т записей это маленький файл, большой это миллиарды

    русские номера это начинающиеся на +7 или 8
    еще есть местные городские номера, без кода города, вот что это за номер 58510350

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

    @rPman
    файл можно превратить в строку с помощью утилиты xxd -i binary, а ее вывод подключить include добавив в начало что то типа
    unsigned char data[]=
    #include "xxd_result.h"
    };

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

    p.s. gcc линкер может оформлять любые бинарные файлы в объектные (чтобы их можно было подключать во время линковки, а в коде доступ как extern массив байт)
    https://stackoverflow.com/questions/2627004/embedd...
    Ответ написан
    Комментировать
  • Как из файла html вытащить нужные данные?

    @rPman
    Для не программиста в данном случае можно воспользоваться excel

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

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

    @rPman
    ...бездумно не запускать всякие отключаторы и оптимизаторы, блокирующие в hosts домены майкрософт (например так некоторые отключают телеметрию, закидывая в этот список в т.ч. домены скайп, onedrive и т.п.)

    c:\windows\system32\drivers\etc\hosts
    Ответ написан
    2 комментария
  • Безопасно ли пользоваться приложением Binance на андроид через VPN Proton в запрещённой юрисдикции?

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

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

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

    нормальные почтовые приложения просто сворачивают такие цитаты (если цитата короткая обрамлена текстом - ее не сворачивать)
    Ответ написан
    Комментировать
  • Как зациклить sed?

    @rPman
    в регулярном выражении в конец добавь модификатор g например так:
    sed 's/HDCLUB//g'

    p.s. вместо последовательного запуска sed для кадого выражения, объедини их в одно либо несколькими ключами -e:
    sed -e 's/xxx/ccc/g' -e 's/123/234/g'
    либо через ';' в одном:
    sed 's/asd/qwe/g;s/123/234/g'
    Ответ написан
    7 комментариев
  • КПД пауэрбанка?

    @rPman
    тебе повезет если будет 40%
    Все зависит от технологии заряда и контроллеров в павербанках.

    В щадящем режиме usb2 (медленая) наверное можно получить 60%, 'обычная скорость' зарядки может сожрать больше энергии, а 'быстрая' точно больше половины, я так экспериментировал с двумя смартфонами xiaomi a2, подключив их друг к другу с помощью кабеля usb-type-c (писало что идет быстрая зарядка), примерно 30% энергии одного перетекло в от силы 12% другого, но так считать неверно, аккумуляторы могли быть разной 'емкости', на глаз смартфоны от заряда работают одинаково долго

    upd: https://habr.com/ru/company/madrobots/blog/377145/
    В среднем можно считать, что КПД всей электроники при зарядке смартфона или планшета от повербанка составляет около 65%.
    Ответ написан
    Комментировать
  • MS Access: внесение данных в БД с телефона?

    @rPman
    Обязательно ms access?
    почему выбран такой неудобный инструмент и место хранения?

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

    * гугл - google docs (google drive) и его инструменты google forms и поддержка скриптов, свой формат документов, поддержка конвертации в популярные форматы
    * майкрософт - live office как часть его продукта office 365, интегрирован с OneDrive, в т.ч. нативная поддержка офисных документов (интерфейс в браузере почти полностью повторяет офисный пакет, но упрощенный)

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

    @rPman
    Самый верный вариант - установить серверную ревизию windows (дорого) либо (бесплатно) - linux с samba. Поднять в виртуалке особых проблем не составит.

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

    сейчас возможно поможет wsl
    Ответ написан
    2 комментария
  • Как выделяется поток для пользователя и расчёт предельной нагрузки сервера?

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

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

    @rPman
    что значит проект настоящего cpu?

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

    в образовательных целях используют упрощенные варианты

    ради интереса спросил гугл 'информацию про архитектуру эвм', в первых ссылках выдал лекцию томского университета

    полистал, там очень подробно расписана архитектору как эвм так и периферии, мониторы мышки принтеры (даже про 3d принтер маленький абзац есть)
    Ответ написан
    Комментировать
  • Как вы обычно храните данные об объектах на странице, которые вернул php?

    @rPman
    Получаешь ты от php всегда строку, пусть сервер дает тебе json твоих объектов (jquery автоматически его парсит), парсить самому можно с помощью JSON.parse(str)
    без AJAX получить эти объекты на стороне php до загрузке страницы.
    ajax это не магия, а штатный метод XMLHttpRequest, конечно можно вспомнить древние техники получения данных от сервера в javascript файлах вида вызова функции с json
    object_received({...});
    подключая их как обычный скрипт
    <script type="text/javascript" src="request_data.php"></script>
    Ответ написан
    Комментировать
  • Как поставить grub на новый ноут?

    @rPman
    Загрузись с livecd/liveusb любого Linux (той же битности что установленная), смонтируй системный / и /boot (и /boot/efi если используется uefi) куда-нибудь в /mnt в правильном порядке, и сделай grub-install --root-directory=/mnt /dev/sda где sda диск, на который нужно поставить загрузчик.

    Чтобы загрузиться с другого диска нужно выбрать его в биосе либо сразу после включения машины нажать F8 (F11, F12... читать надпись что пишет биос при включении) и выбрать диск.

    UEFI так не получится, так как оно требует чтобы в биосе была обновлена информация о загрузчиках, за исключением removable device типа флешек и cdrom, эту информацию поправит grub автоматически
    Ответ написан
  • Зависает компьютер, но при этом частично работает?

    @rPman
    У меня похожее было когда одна планка памяти стала сбоить, протестируй утилитами хоть от linux хоть штатной от майкрософта

    Еще понаблюдай за работой диска в это время, понятно что лампочка активности жесткого диска у подавляющего большинства на корпусе не подключена либо не работает потому что m.2 диск или еще по какой причине, но активности работы можно мониторить программно (утилитами типа ssd-led или штатным монитором ресурсов), так как если контроллер/диск подвисает, приложения которые не обращаются к диску продолжают работать, а те кому нужно работать с файлом - нет.
    Ответ написан
    Комментировать