Задать вопрос
  • Как реализовать подключение монитора удаленно?

    @rPman
    hdmi (dvi-i) передать можно будет и на 50 метров (если есть лишние 20 тысяч рублей)

    но вот с usb чуть сложнее, у китайцев есть тьма решений, вплоть до удлинителя usb -> ethernet -> usb за 100р + свой блок питания , надежность хз, но разум подсказывает что для мышки и клавиатуры этих решений хватит (а вот флешки или вебкамеры уже скорее всего проблема)

    для 10-20 метров хватит обычных usb кабелей и usb-хаба

    p.s. настоятельно рекомендую не связываться с перекодированием видео (всякие over ethernet, wifi и т.п.), будет лаг, будет понижение качества (на квадратики разваливаться будет)
    Ответ написан
    Комментировать
  • Облачная СУБД для чайника?

    @rPman
    Если сумеешь внятно и с разумными доводами ответить - зачем тебе именно облачное решение, как бы ты это не понимал, то тогда пользуйся, иначе лучше:
    * арендуй vps-ку с ценами от 3.5$ в год (лучше что то от 3$ в месяц, памяти будет по больше)
    * установи туда любую открытую/бесплатную базу данных mysql/postgres/...
    * установи локально открытый/бесплатный GUI для баз данных, например devart dba studio express (по уму тебе хватит любой GUI с поддержкой построителя запросов)
    * установи локально условно бесплатный ms visual studio community (лучше не последнюю версию) и создавай приложения на win forms для своей базы данных на столько просто, что мне кажется для мелких проектов не превзойденно.
    Благодаря майкрософтовской экосистеме работа с ее продуктами будет почти бесшовна (тут тебе и эксель, и доступ к старой ms access, и огромное комунити).
    При должном старании кстати .net приложения будут кроссплатформенными, кросс-языковыми (вон даже на python.net можно писать) и достаточно шутрыми (экосистема уровня java, может даже круче).
    p.s. веб бакэнд на visual studio писать грустно, точнее результат будет требовать windows server, это обходится но уже не просто а значит при выборе на чем писать здесь и сейчас быстро просто не подходит.
    Ответ написан
    Комментировать
  • Как сделать автоматическую дополняемую страницу?

    @rPman
    Правильно - websocket

    Это штатный инструмент, чтобы сервер смог передать данные на клиент, не по его запросу а по собственной инициативе.

    Требуется на сервере установить (реализовать в коде) websocket server, благодаря готовым библиотекам это очень просто, гуглить к примеру ReactPHP websocket (реакт - асинхронный фреймворк, добавляет асинхронные фичи, за которые полюбили nodejs), на нем вообще можно реализовать полноценный веб сервер (но nginx все равно рекомендуется ставить на выходе в мир как прокси) которые и обычные http rest запросы примет и websocket соединения подержит, да еще и раз в 10000 быстрее будет (я про сравнение типовых подходов без особых оптимизаций и кешировании), ведь приложение в этом случае не закрывается на каждый запрос а значит многое можно держать в памяти как обычные переменные (а не 100500 прослоек вида мемкеш)

    p.s. есть еще устаревшая long pooling технология, когда вместо websocket открывается обычный http rest запрос, но на сервере он не закрывается сразу, периодически выдавая в поток допустим 1 символ пробела (крутя в цикле банальный sleep и проверку базы данных) чтобы по таймауту не закрылся, а по появлению на сервере нужных данных, отправлять их как обычно тем же json-ом. Клиент же сразу как этот запрос завершается должен тут же его снова отправить. Этот подход не потребует что то менять на сервере но считается быдлокодом.
    Ответ написан
    Комментировать
  • Не загружается нужная Windows 10?

    @rPman
    Скорее всего был удален загрузочный раздел windows, на котором в т.ч. лежат EFI файлы и файлы режима восстановления.

    Исправляется средствами восстановления с установочного компакт диска/usb, вот первая же статья из гугла по этому вопросу

    после этого grub придется переустановить.

    p.s. не совмещай на одном диске загрузчики от разных ОС, windows имеет неприятную привычку лезть куда не следует с очередным обновлением, это было, это есть и нет никаких предпосылок что они исправятся в будущем. linux загрузчик можно разместить абсолютно где угодно, от карты памяти или cdrom до pxe загрузчика в сети.
    Ответ написан
    2 комментария
  • Ссылки заперт вставки на другом сайте?

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

    Вариантов реализации много, например

    - ссылка из ?a=xxx&b=yyy&... преобразуется в ?a=XXXX, где XXX идентификатор, выдаваемый и сохраняемый в базе с датой и исходной строкой ?a=xxx&b=yyy&, соответственно в роутере проводишь обратное преобразование по идентификатору из базы. Ссылки удалять из базы со временем (добавь туда дату смерти и при запросе ее сравнивай с текущей).

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

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

    @rPman
    trim может не вызываться в ту же секунду, но операционная система может это делать в фоне через какое то время.

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

    p.s. на сколько я знаю mkfs в linux делает trim по умолчанию, но вот про windows... требуется исследование.
    Ответ написан
    1 комментарий
  • Отследить пополнение Bitcoin кошелька?

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

    bitcoin-core умеет это делать, если добавить требуемые адреса в кошелек (можно даже только публичные адреса), тогда баланс можно запросить rpc запросом

    p.s. есть ключ командной строки ноды, позволяющей запускать пользовательское приложение на каждый новый блок, и даже появление транзакции кошелька в мемпуле, кажется -notify.
    Там еще добавили новый протокол, ZeroMQ
    Ответ написан
    4 комментария
  • Не работает проверка на число в массиве/GET?

    @rPman
    $_GET возвращают только строки и массивы, а is_integer проверяет тип переменной, а не ее значение.

    Чтобы проверить по значению, есть is_numeric, для строк "1" или " -0.123" оно будет true но "1-ая" уже false
    Ответ написан
    Комментировать
  • Может ли администратор сервера Vault прочитать секреты другой команды?

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

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

    Теперь по вопросу. Есть ли у них готовые инструменты для администраторов/модераторов - маловероятно, но судя по тому сколько грязного белья Маск выкатывает по твиттеру, чем другие площадки 'хуже'?
    Ответ написан
    Комментировать
  • Где можно скачать интересные расширения для dreamweaver?

    @rPman
    Разве этот инструмент не считается сообществом чем то устаревшим.

    Не поленился, погуглил, где то в 2010-2012 году на него все забили, сайты с расширениями не работают, ссылки глючат.

    Советую, беги от этого пока не поздно :)
    Ответ написан
    Комментировать
  • Как автоматизировать пересчет таблиц в Excel, google sheets или другом сервисе?

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

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

    Полноценное приложение всегда проще поддерживать и дорабатывать, чем законченный excel с макросами.

    p.s. для новичка самый простой способ создать приложение БД это ms visual studio (советую не самую новую. хватит community версии) и древний windows forms, базу данных можно проектировать в любом бесплатном инструменте типа devart db studio
    Ответ написан
  • Как восстановить удаленные файлы на старых местах?

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

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

    на время восстановления массив не перезаписывать и вообще ничего с ним не делать, т.е. режим только чтения.
    Ответ написан
    3 комментария
  • По ошибке установила Windows server 2022, как все вернуть обратно?

    @rPman
    Перепроверь что файлы действительно удалились/сохранились, это можно сделать прямо в консоли powershell, командой
    cmd /c dir c:\
    покажет содержимое диска с:

    Если что, берешь флешку с linux (советую xubuntu), перезагружаешь компьютер с нее (в режиме - попробовать, ничего устанавливать не надо) и прямо с нее смотришь на содержимое своих дисков из GUI интерфейса

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

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

    Код придется загружать и исполнять в выделенной песочнице с механизмами контроля и ограничения ресурсами (cpu/ram/...). Песочница подразумевает отсутствие функций вызова команд ОС либо их симуляция в той мере чтобы код не смог навредить. И вот тут кроется самая большая проблема - сторонние библиотеки, при отсутствии стандартных функций так же не будут работать как ожидается и их придется как минимум адаптировать к новым реалиям.

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

    @rPman
    я так понимаю человек желает аналог php-шного list
    list($normal_weight, $weight)=getInfo();

    в таких языках как C+ (да и C) идеологически парные переменные объединяют в классы (структуры), с которыми = работает как копирование всей структуры.

    struct NormalWeight {int normal_weight, weight};
    // ...
    NormalWeight nm=getInfo();
    if (nm.weight > nm.normal_weight)
    Ответ написан
  • Как ускорить процесс получения большого объема данных?

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

    Что за анализ выполняется для этих данных что так медленно? почти наверняка это сделано ОЧЕНЬ не эффективно, особенно если вылезает вот это:
    Если стрим записи в БД сделать параллельным (parallelStream()), то появляется проблема при записи в БД, так как некоторые потоки пытаются одновременно обновить одни и те же данные.

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

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

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

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

    Современные даже десктопные машины с 16-32гб (а серверные с 128-256 легко) оперативной памяти позволяют вообще зхагрузить большую часть данных в оперативную память и обработать ее там эффективнее чем это получится делать через sql прослойку, которая рассчитана не на скорость обработки а на надежность хранения и многопользовательский доступ.
    Ответ написан
    4 комментария
  • Как сделать клон Ubuntu в VirtualBox?

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

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

    Либо можно все сделать вручную без каких либо инструментов из linux, запущенного с отдельного носителя (например установочный liveusb linux), этот вариант требует большего понимания что делать но он может быть проще чем clonezilla (парадокс да) и не требует промежуточного хранилища:
    * Запускаешь на обоих машинах linux (сеть должна быть настроена в виртуалке например - сетевой мост с локальной сетью, тогда ip будет выдавать роутер автоматически).
    * Выбираешь одну из машин как рабочую (например целевая виртуальная), за которой будешь сидеть и ставишь там nbd-client (а на другой nbd-server), на второй (например реальная машина) прописываешь в /etc/nbd-server/config
    [generic]
    allowlist = true
    [sda]
      exportname = /dev/sda
    [sdb]
      exportname = /dev/sdb
    # и так для каждого диска в машине

    * перезапускаешь nbd-server и все
    service nbd-server restart
    * на основной
    sudo modprobe nbd
    sudo nbd-client -name sda ip-адрес-мащины-nbd-server /dev/nbd0
    # и так для каждого диска, поменяв например sdb и /dev/nbd1

    все! теперь у тебя на одной машине подключены по сети диски другой

    * Если размеры дисков одинаковы то можно тупо скопировать их с помощью
    dd if=/dev/nbd0 of=/dev/sda bs=1024k status=progress

    эта команда скопирует с сетевого nbd0 на локальный sda (можно поменять местами как тебе требуется)
    после этого ничего делать не надо будет (исключение efi загрузчик, на сколько я знаю virtualbox только недавно научился его, еще в бете 7 версия, а так смена efi на legacy mbr потребует вручную запустить grub) и все будет работать.

    * Если размеры дисков и разделов разные, но свободного места хватает (например с большего на меньший диск) то можно так же с помощью clonezilla все склонировать, выбрав режим device-to-device

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

    @rPman
    Это называется IP GSM ли SIP GSM Шлюз, на рынке куча вариантов, от полноценной АТС с несколькими линиями и поддержкой старых аналоговых телефонов, так и SIP - GSM шлюзы (как я понимаю то что тебе надо) цены начинаются где то от 6т.р.

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

    p.s. sms отсылать нет проблем, любой модем это умеет

    upd. как я понял можно usb модемы подключить к asterisk и звонить через них
    пример инструкции
    Ответ написан
    1 комментарий
  • Хостинг без ограничения по времени с Python, где найти бесплатно?

    @rPman
    Бесплатно на вечно нигде и никогда.

    У тебя не найдется 1$ в месяц? ок от 3.5$ в год? скрипты можно запускать на не надежных хостингах реселеров наверное третьего уровня на очень слабых vps-ках, но часто скриптам и ботам этого достаточно.

    зы Многие такие хостеры принимают оплату в криптовалюте
    Ответ написан
  • Как в Linux разрешить доступ в интернет только определенным программам?

    @rPman
    app armor и se linux или cgroups, это правильный но сложный вариант, гуглится даже проект соответствующий там в описании ссылки на подробнее информацию

    И да, это сложно.

    Но есть ОЧЕНЬ простое решение - виртуализация/контейнеризация!
    OpenVPN запускаешь внутри виртуальной машины (мышевозекательно libvirt + lxc, не требует ресурсов для работы), внутри этой песочницы поднимаешь ssh сервер (чтобы на его основе работал socks прокси, так как это встроенная фича, нужно на машине где нужен интернет подключиться к ssh серверу с ключом -D1080 и получишь socks proxy с портом 1080) либо какой-нибудь http прокси, и вот браузер запускаешь с настройкой этой прокси, при необходимости хост машину вообще можно от интернета отключить.

    Так же можно и firefox в lxc запустить (сложно настраивать графику, но можно пользоваться графически сервером хост машины, настроив DISPLAY и права доступа xhost)

    Этот способ очень хорошо изолирует приложение и очень прост в настройке, заметно проще чем фаервол
    Ответ написан
    1 комментарий