Задать вопрос
  • Внешний винт LaCie сломан USB-C разъем, поможет ли донор?

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

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

    @rPman
    Правильный способ - создать свой инсталятор, который в свою очередь все развернет, скопирует и спросит пользователя куда, nsis тебе уже посоветовали. Есть по проще - самораспаковывающиеся архивы, sfx модули есть по до все от winrar до zip

    Есть не самый тривиальный способ хранения файлов прямо в exe-шнике как часть данных в секции .data, для c/c++ это создание объектного .obj файла с последующей его линковкой, при запуске такие данные доступны нативно без предварительной загрузки (формально операционная система мапит exe-шник в память и загружает данные по мере необходимости максимально эффективно).

    Сделать это можно с помощью xxd (генерирует cpp вида data = {0x11,0x22,...) явно не самый эффективный способ но зато самый универсальный, либо с помощью objcopy
    https://habr.com/ru/post/545946/
    https://stackoverflow.com/questions/47414607/how-t...
    https://medium.com/@irony.superman/convert-binary-...
    Ответ написан
    Комментировать
  • Как выбрать норм SATA SSD до 2400р?

    @rPman
    Ты ограничил стоимость ценой чуть ли не самой низкой по рынку, ниже должен быть ну просто мусор

    Вот к примеру твои ссылки просто по характеристикам ресурс TBW 40Тб, какие у тебя задачи на такой низкий ресурс? Не надейся что 3 года гарантии позволят тебе выработать ресурс и поменять, это не гарантийный случай.

    Еще момент, как ты собираешься решать гарантийные проблемы с озоном? Покупая midend расходники (а ssd это именно расходник) нужно заранее готовиться к его выходу из строя.

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

    p.s. дешевые железки после определенной наработки могут выдать какой-нибудь сюрприз
    Например у меня ADATA SX6000PNP nvme, выработал всего 5% и я стал замечать, что при превышении внутреннего буфера на запись, может ронять скорость чуть ли не до 5мб/с (пока кеш не переполнен выдает сотни) и главное в это время может подвисать чтение.
    Ответ написан
    2 комментария
  • Кто сможет Объяснить код объясните его пожалуйста?

    @rPman
    вот что ответил ChatGPT с переводом от deepl
    Этот код считывает входные данные из стандартного потока ввода (stdin) и перебирает каждую строку с помощью цикла for. Для каждой строки он делает следующее:

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

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

    привет мир
    как дела

    Выходные данные будут такими:
    "Привет мир\n"
    "Как дела\n"
    Ответ написан
    Комментировать
  • Может ли клавиатура ps/2 или тачпад на ноутбуке отключаться от того, что подключен к не заземленной розетке?

    @rPman
    Можно попытаться восстановить отвалившуюся клавиатуру с помощью команды
    pnputil /restart-device "PCI\VEN_8086&DEV_3EA0&SUBSYS_14311043&REV_00\3&11583659&1&10"

    код можно посмотреть в свойствах устройства в диспетчере устройства

    примерно так перезапускали зависшую видеокарту майнеры
    Ответ написан
    1 комментарий
  • Сколько Google платит за устранение ошибок в его продуктах?

    @rPman
    Хорошо подумай, есть ли у гугла возможность провести эту оплату именно тебе?

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

    Погугли на хабре есть тьма статей про хеппи и не очень истории
    Ответ написан
    Комментировать
  • Как правильно писать код, чтобы не было PHP Notice: Undefined index?

    @rPman
    если ты точно знаешь что отсутствие переменной это нормальная ситуация, то можно отключить проверку ее наличия с помощью @, тогда будет подставлено значение NULL в случае ошибки для строк, и 0 для чисел
    @$com_offer['offer_count'] += @$_item['quantity'];
    В данном случае если у тебя оба ключа будут отсутствовать то будет создан 'offer_count' с 0 значением

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

    @rPman
    когда запросы блочатся, когда есть проверка браузера. Задавая вопрос,
    но ты не задала вопрос про свою проблему

    покажи свой код, покажи свои попытки, где именно затык, вот тогда тебе дадут советы

    p.s. лучше всего парсить с помощью браузера, гуглить к примеру selenium
    Ответ написан
    Комментировать
  • Как присвоить несколько элементов в одной ячейки SQLite3?

    @rPman
    сделаю 'медвежью услугу'.

    создаешь две таблицы
    user (id и другие поля пользователя в будущем) и user_name (id, name, user_id) где на каждого пользователя будет по одной записи в user и по несколько (точнее от задачи, ведь может быть и 0 и 1) будет записей на каждое имя.

    p.s. таблица user в твоем примере оказывается не нужна, если больше никаких полей не предвидится, а значит для хранения данных хватило бы user_names но существование таблицы user идеологически верное, так как на его id можно определить автогенерацию идентификатора, контроль уникальности и прочее прочее

    чтобы база данных эффективно работала с такими связями есть индексы foreign key в данном случае это индекс user_name.user_id -> user.id

    запросы к базе у тебя будут типа
    select * from user left join user_names on user_names.user_id=user.id where user.id=xxx

    выдаст список user_names указанного пользователя xxx
    Ответ написан
    Комментировать
  • Какая есть альтернатива для lowdb?

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

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

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


    в windows они находятся в %appdata%\Local\Yandex\YandexBrowser\
    Ответ написан
    Комментировать
  • Как выйти из гитхаба?

    @rPman
    так измени конфиг той же командой
    git config --global user.name XXX
    git config --global user.email YYY
    # так же убери --global если настройки локальны для репозитария


    а еще конфигурация репозитария хранится в текстовом виде в .git/config просто отредактируй его
    Ответ написан
  • Как написать свой парсер (поисковик) CSV на Java?

    @rPman
    Важно, что нельзя:
    2) Сохранять весь файл ни в какую-либо структуру, ни как массив байт

    извини, но если хочешь высокой скорости, какую то информацию сохранить придется

    Ускорение возможно только за счет траты памяти, сохраняя какую то информацию.

    Варианты:
    1. ускорить примерно 'в константу раз' можно, исключив проблемы с парсингом csv формата, т.е. сохранив информацию о координатах каждой строки и даже его элементах (ты должен хранить смещение в файле для каждой следующей строки и размеры/смещения каждой колонки относительно начала строки, особенно это актуально для строковых значений, экранирование символов " и \n тратит время на парсинг)
    2. хранение информации о типах данных может так же заметно увеличить чтение данных из файла, причем речь не только о просто знании структуры (какая колонка какой тип ожидается) но и о фактическом значении в каждой строке (например факты расхождения с ожидаемой структурой), но это уже от задачи, редко когда требуется гибкая типизация, и как минимум, знание о том что строка требует или не требует обработку экранирования может ускорить это в 2 раза, очень часто это знание может быть заложено в код заранее, без предварительного чтения файла
    3. хеширование значений в памяти, дает огромный прирост к поиску данных 'по значению', причем в зависимости от задачи это может быть хеширование как всей строки так и отдельных ее колонок или группы (как частный случай индексирования)
    4. построение индексов, еще большая информация о данных, в зависимости от типа индекса, позволяет за константное/логарифмическое время решать такие задачи как поиск max/min/сравнение для числовых данных, или к примеру анализ строковых (например по словам или языковые запросы, т.е. наличие символов из наборов)
    p.s. в догонку мелкие оптимизации
    - работа с файлом, замапленным на кусок памяти (все ОС это поддерживают) дает огромный прирост по сравнению с чтением по кусочкам и тем более fgets (на самом деле при грамотном fread скорости не на много отличаются но речь просто об удобстве и единообразии кода)
    - java это не совсем про хорошую скорость низкоуровневых операций, тут может оказаться что готовые но 'плохие' методы (реализованные на нативном коде) окажутся быстрее правильных идеологически но спотыкающихся о jvm прослойку, там где нужна скорость где действительно приходится так оптимизировать, бери c++, тем более благодаря последним десятилетиям развития std он стал очень и очень удобным не в ущерб скорости.

    p.p.s. надо быть очень странным человеком, чтобы хранить данные в csv файле вместо адекватной базы данных с уже готовыми инструментами индексации и поиска.
    Настоятельно рекомендую освоить sqlite, в т.ч. как инструмент передачи данных другим людям, так как ну очень достали те кто использует excel или csv, изобретая бредовые форматы сериализации списков и сложных связей, постоянно спотыкаясь об мультиязыковую поддержку, даты и даже банальные символы точка и запятая у вещественных чисел

    Кстати у sqlite встроенные механизмы импорта данных из csv, в 1 строчку
    Ответ написан
  • Можно ли программно отправлять сообщения от лица человеческих аккаунтов Telegram?

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

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

    Попробуй эту https://github.com/alexander-akhmetov/python-telegram вроде бы поддержка у них оперативная
    еще https://github.com/iTeam-co/pytglib

    p.s. неплохим вариантом является использование офицального gui телеграм, модификация исходников со вставкой своей логики
    Ответ написан
    Комментировать
  • Как посмотреть MKV в браузере?

    @rPman
    поддержка не гарантируется но ты попробуй например так
    <video src="video.mkv"></video>
    или так
    <video>
        <source src="video.mkv" type="video/mp4">
    </video>
    Ответ написан
    Комментировать
  • Клавиатура не печатает много символов при зажатии клавиши?

    @rPman
    долгое нажатие shift, вылезет менюшка для людей с ограниченными возможностями, там ищи - отключить залипание
    Ответ написан
    Комментировать
  • Как спарсить информацию с динамического сайта на python/js?

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

    запускай полноценный браузер, симулируй клики пользователя, способов миллион, от инжекта javascript на страницу нормально запущенного браузера и прередачи информации через http до полноценных библиотек типа selenium
    Ответ написан
    6 комментариев
  • Что написать на C++ для практики?

    @rPman
    Реши любую задачу с многопоточностью и общей памятью, какой-нибудь сервер например.
    Или, к примеру, возьми тяжелый проект типа исходники браузера firefox/chromium и модифицируй их полезным образом (в этой области даже простая возможность настроить окружение, чтобы собрать этих монстров из исходников - уже плюс, а уж способность найти в исходниках нужное место и подправить - однозначно велком).
    p.s. помню не осилил отладку openjdk jni кода (для этого нужно не просто настроить окружение для сборки java но и настроить отладку в ней) и искал баг в портируемом коде jni, роняющем java, по старинке логированием, полагаю если сумеешь настроить сборку и отладку, можно наверное сразу на мидла претендовать.

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

    p.s. если работодатель ищет c++-ника, его явно не интересуют конечные задачи, это могут запилить рядовые программисты на любом другом высокоуровневом языке программирования, а интересуют не сами знания, а интеллект
    Ответ написан
  • Можно ли выделить память определенного размера?

    @rPman
    Если у тебя в итоге размер этого buf будет известен на этапе компиляции, то можно воспользоваться шаблонами
    template<int SIZE> struct MyStruct {
      int a;
      char buf[SIZE];
    };
    ...
    auto x=new MyStruct<10>; // x - указатель на MyStruct
    или
    const int size=10;
    auto x=new MyStruct<size>;
    ...
    delete x;
    Ответ написан