Задать вопрос
  • Чем можно открыть большой файл csv?

    @rPman
    Самое быстрое - консольные утилиты, из мира linux, awk, cut, grep,... сможешь разобрать свой файл хоть на калькуляторе (можно поставить отдельно или взять готовое с помощью майкрософтовского wsl или cygwin).

    Любое другое решение будет сильно медленнее и будет требовать больше ресурсов.

    пример, если тебе нужны строки (csv - текстовый формат, по строке на запись), в которых есть нужная тебе подстрока, то используй grep:
    grep "искомая строка в кодировке файла" имя_файла.csv > новый_файл.csv

    почти наверняка тебе хватит подстроки или регулярного выражения (ключ -e)
    p.s. если там очень сложное условие, и недостаточно филтации в пределах строки, то импортируй csv в базу данных, например sqlite (импорт из csv встроен), правда 7гб может не шибко быстро импортировать, потом индексы создавать (я советую такие операции делать на ram диске) зато потом почти любые фильтрации
    Ответ написан
    1 комментарий
  • Используют ли в нейронных сетях вычисления с пониженной разрядностью?

    @rPman
    пот первое же нагугленное исследование использования 8-битных и 16-битных весов на nvidia gpu
    5 Conclusions
    We have demonstrated DNN training with 8-bit floating point numbers (F P 8) that achieves 2 − 4×
    speedup without compromise in accuracy
    . The key insight is that reduced-precision additions (used
    in partial product accumulations and weight updates) can result in swamping errors causing accuracy
    degradation during training. To minimize this error, we propose two new techniques, chunk-based
    accumulation and floating point stochastic rounding, that enable a reduction of bit-precision for
    additions down to 16 bits – as well as implement them in hardware. Across a wide spectrum of
    popular DNN benchmarks and datasets, this mixed precision F P 8 training technique achieves the
    same accuracy levels as the F P 32 baseline. Future work aims to further optimize data formats and
    computations in order to increase margins as well as study additional benchmarks and datasets.


    еще есть огромные нейронные сети, требующие неадекватно большие объемы оперативной памяти, что очень дорого, когда речь идет о нейроннх сетях
    Например, те же проекты OpenAI, напомню чтобы запустить тот сберовский ruDALL-e понадобится видеокарта больше 6Gb RAM (можно и с таким но потребуются телодвижения и сильно больше времени), если я верно понял тут используются 16-битные веса, а если переделать на 8-битные, требования к памяти можно еще сильнее понизить.

    есть еще разработки по использованию 1битных весов (ума не приложу как это работает), гугл выдает кучу статей
    Ответ написан
  • Не включается телефон Xiaomi Redmi Note 4x?

    @rPman
    Если нужны данные, отнеси специалисту, любая самодеятельность, если не разбираешься, до добра не доведет.

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

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

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

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

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

    Из неотслеживаемого трафика еще можно вспомнить ping icmp, были прокси на основе приема/передачи почтовых сообщений, а сейчас почти наверняка можно запилить такой на основе чат-приложений.
    Ответ написан
    2 комментария
  • Почему компьютер не запускается с первого раза?

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

    Одна из причин странностей со вкл/выкл - проблемы с acpi, с управлением питанием. С высокой вероятностью чинятся обновлением биоса и обновлением драйверов на материнскую плату от производителя.
    Ответ написан
    Комментировать
  • Индексация идёт уже 2 недели, в чем у меня ошибка?

    @rPman
    значит узкое место почти наверняка диск.

    Пальцем в небо, файловая система на которой таблеспейсы лежат какая? случайно не cow (btrfs/zfs/xfs)? с ними отвратительно работают базы данных, так как частые записи в файл генерируют сильную фрагментацию. В этом случае перед тяжелой обработкой хотя бы дефрагментируй файлы базы и отключи cow фичу на таблеспейсах

    неплохим тюнингом может оказаться (на выбор):
    * разместить базу в ram диске (буквально, залить на сервер в облаке, обработать данные, залить назад, работая напрямую с таблеспейсами, но версия софта должна совпадать до последней цифры)
    * разместить базу целиком на ssd (даже если это будет потребительский и дешевый)
    * добавить в систему ssd кеш для hdd с помощью например bcache (включенный на запись), правда для линейной обработки базы это может дать мало пользы, но вообще это неплохой способ на порядок поднять производительность за дешево (в одном месте я использовал фичу virtualbox со снапшотами в файл, есть и у kvm, когда последующие записи шли не на исходный образ а на другой диск, и он ssd)
    * разместить таблеспейс для индексов (а может и каждую таблицу отдельно) на другом физическом устройстве (hdd, ssd или даже в ram), требования к размеру тут обычно низкие, ключевое слово - исключить последовательные чтения/записи на одно устройство.
    * разместить журнал (например ext4) на ssd диск (хватит пары гигабайт) или по хардкору даже отключить его (очень опасно, можно получить кашу из данных при сбое питания, но как временное решение пока идет долгая операция, при наличии всех бакапов, оправдано) - наименьшая оптимизация, но при частых мелких записях это заметно
    Ответ написан
  • Можно ли эмулировать Raspberry Pi 4 в Qemu?

    @rPman
    гуглить тоже не осилил?
    первый же результат
    Ответ написан
    Комментировать
  • Лицензирование windows server что покупать?

    @rPman
    почты да чуток серфинга
    уверены что для этого нужен windows server?
    вы считайте считайте, а потом попробуйте посчитать (только подробнее чем фраза 'чуток') во сколько обойдутся решения на основе linux (в человекочасах) и вам скорее всего понравится, а некоторые неудобства для пользователей могут нивелироваться фразой, не вопрос - вычитаем стоимость внедрения windows решений из зп.

    p.s. у майкрософта есть решения с лицензиями с арендной платой

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

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

    в micecraft pe есть механизм модификаций, штатный, позволяющий вносить изменения в логику игры (малофункционально) и сторонние, меняющие код самой игры. Если что эти модификации пишут на java.

    выбор я зыка определяется способом которым идет 'взлом' и в случае с android с++ слишком маловероятен
    Ответ написан
    Комментировать
  • Как в fputcsv вывести вложенный массив в массиве?

    @rPman
    Если данные будут смотреть люди исключительно глазами (и в лучшем случае в экселе фильтрацию по подстроке будут делать), до достаточно список в ячейку разместить объединив строки с помощью implode, с каким нибудь разделителем, например ';' или '|' (очень редко используется, коллизий будет гораздо меньше, что даже можно считать машиночитаемым)

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

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

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

    Сейчас это не имеет значения, почти для любой базы данных есть удобные инструменты, так что передавать можно к примеру в sqlite формате, или sql, или хотя бы в csv файлах (жуть как неудобно, но страдальцы могут хотя бы без каких либо знаний открыть их в любимом экселе)
    Ответ написан
    Комментировать
  • Как читать выполняющую команду через adb?

    @rPman
    смотри логи android с помощью adb logcat

    но не уверен что там будут все действия с adb
    Ответ написан
    Комментировать
  • Как пробросить порт без использования vpn?

    @rPman
    Нужен сервер, который примет подключение

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

    Не хочешь настраивать vpn, бери ssh сервер, у него из коробки поддержка перенаправлений портов в любую сторону, в твоем случае оба подключаются к одному ssh серверу, с настройками у одного -L порт:адрес:порт, у другого -R порт:адрес:порт но этот механизм не надежный, если порядок подключения будет неправильным (или во время работы будет переподключение) связь не наладится. В одну сторону перенаправление можно организовать с помощью фаервола на этом сервере iptables, это надежнее.

    Кстати у ssh так же есть встроенный vpn (правда немного 'неполноценный', там не tap а tun)
    Ответ написан
  • Какая материнская плата полностью раскроет Ryzen 5 5600x?

    @rPman
    Абсурдное желание, tdp у процессора низкий, значит каких то особых требований к материнке тут нет, лишь бы была совместимость

    Есть еще количество каналов оперативной памяти 2 (т.е. минимум два слота под ram) и количество линий pce-e (заявлены 20), значит покупать материнку с четырьмя pci-e 16 бессмысленно (при покупке с двумя они могут работать в режиме 8х, и помним про sata/usb контроллеры, они тоже линии потребляют)
    Ответ написан
    Комментировать
  • Что делать, если Bluetooth адаптер плохо работает с любыми TWS наушниками?

    @rPman
    купить usb bluetooth донгл и держать его вставленным в ноутбук? принеси ноутбук в магазин и протестируй те что там есть.

    не думаю что красивое решение существует, но в теории можно разместить крупный внутри корпуса, само собой придется корежить и колхозить, и то, если место для него найдется, что в 'современном' (последние 10 лет) оборудовании уже нет
    Ответ написан
    Комментировать
  • Как реализовать ограничение доступа к личному web-ресурсу?

    @rPman
    Либо настроить фаервол на сервере vps чтобы ограничить доступ с личного ip адреса (он должен быть статичным), обычно фаервол в linux на основе iptables но бывает в панели администрирования соответствующие пункты (например у амазона).

    Ограничения по ip адресу клиента настраиваются и у самого веб сервера, обычно это проще фаервола.

    Либо (если к примеру личный ip адрес динамический) настроить сервер на локальную для vps сервера сеть (или localhost) и настроить перенаправление портов (например с помощью ssh) либо поднять vpn подключение (vps и твоя локальная сеть подключаются к чьему то vpn либо настроить vpn сервер на vps)

    Либо, самое простое, настроить аутентификатцию средствами веб сервера на vps, basic auth настраивается в пару строк в конфиге:
    https://docs.nginx.com/nginx/admin-guide/security-...
    https://httpd.apache.org/docs/2.4/howto/auth.html

    basic auth будет однократно спрашивать пароль в браузере при первом доступе, при закрытии страницы и повторном открытии снова запросит пароль.
    Ответ написан
    Комментировать
  • Docker: принято ли ставить на продакшене?

    @rPman
    да, нет, не знаю - все три ответа верные

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

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

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

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

    Что значит ожидаемое поведение? когда ты делишь задачу на подзадачи, у тебя появляются промежуточные данные и состояния, ну как в анекдоте про чайник и программиста, чтобы заварить чай нужно:
    * налить воду в чайник
    * поставить на базу/печку и включить
    * дождаться готовности/выключить
    * налить чай
    на каждом этапе нужно проверять состояние, например первый пункт - есть ли вода в чайнике, горячая ли она или холодная, полный ли чайник, есть ли у тебя чайник в руках, и т.п.

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

    Вот именно эти проверки и есть тесты, которые необходимо автоматизировать.

    Степень полноты тестирования вопрос философский, в конечном счете тесты нужны не только для автоматического тестирования и составления отчетности на изменения кода, но и собственно для разработки, разрабатывая тесты ты делаешь код полнее и точнее (например проверяя температуру воды на первом шаге ты добавишь в код условие - если вода горячая, то пропустить ее нагрев), почитай про test-driven development, TDD

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

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

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

    @rPman
    Идеологически верное решение - установить Litecoin кошелек (чтобы не занимал много места, кажется до 500мб, нужно использовать опцию -prune=макс_размер_блокчейна_в_мб).

    с помощью ключа командной строки
    -walletnotify=<cmd>
    можно принимать алерты об изменениях на балансе

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

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

    Причина - защита основного баланса при взломе веб-сервера.

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

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

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