Задать вопрос
  • Как автоматизировать пересчет таблиц в 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 комментарий
  • Какую легковесную IDE выбрать для C++?

    @rPman
    докину сверху к ответам
    eclipse плюс cdt

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

    @rPman
    При старте сети (приватной или тестовой), ноде нужно подсунуть genesis.json в котором прописаны все стартовые транзакции и балансы

    Как я понимаю файл собирался на основе ico из bitcoin переводов (как то по особому сделанных)
    гуглится это
    https://github.com/ethereum/ethereumj/blob/develop...

    по уму проверить можно, создав свою сеть на его основе и проверив хеш
    geth --genesis genesis_block.json
    Ответ написан
  • Как у python сохранить дание у файл котрий не сможет открить пользователь?

    @rPman
    Защищать данные локально можно только средствами ОС (например права доступа, запускать приложение от прав соответствующего пользователя), это достаточно успешно реализовано на android/macos, для получения доступа к данным там понадобится рут/взлом загрузчика, что сразу уменьшает список таких пользователей на пару порядков

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

    @rPman
    Главный бонус использования 3 варианта - не будет важна поддержка (т.е. ее отсутствие) чисел с переменной фиксированной точностью на бакэнде. Например в php любой драйвер преобразует числа в double со всеми вытекающими от сюда проблемами.

    Недостаток - можно будет попасть на лимиты стандартных целых чисел (для 64-битных систем, например php), например если на tron ты попробуешь так реализовать работу с токеном usdd, то ты обнаружишь что его точность абсурдна - 18 знаков после запятой, и придется использовать соответствующие классы для работы с ним. Если не преобразовать в запросе тип поля в строку, тот же php pdo преобразует слишком большие целые числа в double

    p.s. bitcoin lightning network добавили пару значимых знаков, советую об этом тоже подумать
    Ответ написан
    2 комментария
  • Куда пропадает память на Windows Server 2019?

    @rPman
    Причем размер файлов и занятого места на диске, отличается значительно.
    скорее всего это sparse files (дырявые файлы), на диске такие файлы меньше места занимают чем их размер (считай это разновидностью сжатия файлов на лету)

    ms sql server использует, как я понимаю, их для снапшотов
    Ответ написан
    Комментировать
  • Как пользоваться Youtube Premium в России?

    @rPman
    Не пользуйся червисам google напрямую, пользуйся сторонними утилитами. Например для загрузки видео/аудио с youtube пользуйся консольной утилитой yt-dlp (бывший youtube-dl)

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

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

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

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

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

    @rPman
    Создать html файл со ссылками (при необходимости иконки не делать, у тебя ведь 100500 их) и прописать его как домашню страницу file:///Temp/test.html

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

    Недостаток, если нужно красиво а не просто список, то надо чуток понимать css/html
    Ответ написан
    6 комментариев
  • Как распределить IP-адреса в Hyper-V?

    @rPman
    самый тупой вариант, посадить все машины вместе с хостом на одну сеть с помощью сетевых мостов и прописать ip адреса статикой (не секурно, т.е. сеть то общая)

    иначе,.. а как провайдер тебе ip адреса привязывает?

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

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

    Если не использовать gpu, то нагрузка ляжет на более медленный и неэффективный по затратам энергии процессор.
    Ответ написан