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

    Maksim_64
    @Maksim_64
    Data Analyst
    Python не позволяет работать с памятью напрямую. Очистка происходит сборщиком мусора, когда количество ссылок на объект равно нулю. Например когда ты используешь del ты удаляешь ссылку на объект, то есть счетчик ссылок - 1. и когда он равен нулю, то произойдет полное удаление объекта из памяти.

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

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

    Тогда при запросе ты просто будешь сравнивать, что значение у двух ключей одно и то же.
    Ответ написан
    Комментировать
  • Pritunl - почему Великий Русский фаервол блокирует openvpn?

    CityCat4
    @CityCat4 Куратор тега VPN
    Дома с переломом ноги
    но мне бы хотелось реализовать это средствами pritunl.

    Хотите дальше :) Мир стремительно, вот прям со скоростью паровоза бегущего в бетонную стену, разваливается на сегменты - и Сеть, как отражение этого мира - тоже разваливается. И в этом будущем "Кванмене по-[тут вставить название языка]" тырнет будет полностью контролироваться государством.

    Для прохода именно ovpn - пока работает двойной VPN - сначала на сервак в РФ, потом с него за границу. Просто потому что пока не проверяют траф из ДЦ, но не думаю, что это надолго.
    Ответ написан
    Комментировать
  • Pritunl - почему Великий Русский фаервол блокирует openvpn?

    @Drno
    ПОтому что РКН блокирует опенВПН + WG.. и уже давненько. Потому что Вы ОБЯЗАНЫ смотреть только разрешенный кем надо контент, а не это вот всё...

    Варианты решения - если надо просто обходить незаконные ограничения от РКН - тогда -
    берем и настраиваем на сервере xray+vless+reallity, можно взять веб морду - 3x-ui на гитхабе

    Если принципиален опенВПН, тогда подключаться надо к серверу в РФ, дальше перенаправлять трафик на заграничный сервак. Сделать это можно просто включив NAT в ядре на сервере в РФ, и дальше с помощью iptables перенаправив нужный порт заграницу, где уже хостится сервер опенВПН. Пока такая схема работает, но чую ненадолго...

    Почему надо именно Pritunl использовать тоже не очень понятно... можно попробовать заменить на Amnezia, там есть обфускация изКаропки
    Ответ написан
    2 комментария
  • Где Firefox хранит информацию, выводимую в окне с загрузками, вызываемому по Ctrl-J?

    @Refguser
    Решения для бизнеса: корп.сайты, ИМ и пр.
    Нет ничего проще - делаешь поиск по тексту файлов в профиле FF и вуаля - places.sqlite.

    FF портабельный
    uz8TpuL.png
    Ответ написан
    Комментировать
  • Какой ноутбук под Linux выбрать?

    leahch
    @leahch Куратор тега Linux
    3D специалист. Dолго, Dорого, Dерьмово.
    Порекомендую всю линейку Honor. Если интересует конкретная модель, то вот, не далее, как пару недель назад по моей рекомендации купили - https://www.ozon.ru/product/honor-magicbook-2024-r...

    1) Современные линуксы заводятся на них отлично, пара хоноров сам использую.
    2) Достаточно честные и беспроблемные ноутбуки, отлично держат батарейку, уходят, и самое главное выходят из спячки.
    3) Есть модели без винды (обычно на AMD)

    Если будете выбирать модель ноута сами, берите со встроенной графикой на процессоре или с видеокартой AMD.
    С драйверами NVidia как обычно - полный бардак! (это не относится к десктопам, но тоже советую избегать NVidia)
    Ответ написан
  • Что именно дают миллиарды транзисторов в процессоре для работы программы?

    15432
    @15432
    Системный программист ^_^
    1) Больше фич. Всякие AVX, MMX, а также умная конвейеризация, Hyper-Threading, спекулятивное исполнение, предсказание веток - при правильном применении сильно ускоряет вычисление
    2) Больше ядер. В один кристалл всё больше процессорных ядер запихивают, можно распараллелить задачи, тоже получим прирост в скорости работы
    3) Больше кэш-памяти. Та самая SRAM, которая входит в процессор и тоже состоит из транзисторов. Сильно ускоряет работу с памятью и задержки выполнения инструкций
    4) Больше контроллеров. В процы сейчас встраивают всё, что попало - шины данных, контроллер DRAM, PCIE, северный мост, отдельное ядро сопроцессора (Intel ME, AMD PSP), GPU и даже NPU где-то добавляют. Тоже считается за "больше транзисторов".
    Ответ написан
    4 комментария
  • Какой ноутбук под Linux выбрать?

    borisdenis
    @borisdenis
    Ленив и вреден...
    чтоб можно устанавливать разные старые и новые дистрибутивы Linux и не иметь проблем с совместимостью

    Ставите винду, в ней VirtualBox или Hyper-V, создаете виртуальные машины и экспериментируете сколько охота. Но нужна оператива и несколько лишних ядрышек для виртуальных машин.
    Ответ написан
    3 комментария
  • Отображение содержимого pdf файла на сайте?

    Aetae
    @Aetae
    Тлен
    Можно взять pdf.js и допилить как тебе надо. Будет жирно и тяжело.
    Либо моджно сохранить pdf как набор картинок и просто положить их на сайт. Будет просто и жирно.
    Ответ написан
    4 комментария
  • Какой есть бесплатный софт для работы с NTFS на mac?

    Zettabyte
    @Zettabyte
    Проф. восстановление данных ▪ Вопрос? См. профиль
    Могу посоветовать нехороший: некоторое время назад несколько раз к нам обращались люди, использовавшие соответствующий софт от Paragon, по-моему, драйвер NTFS.

    Так что, если в ваши планы не входит становиться нашим клиентом (конкретика есть в профиле), то я бы советовал воздержаться от его использования.
    Ответ написан
    6 комментариев
  • Можно ли восстановить удалённое 10-й виндой при проверке диска?

    @rPman
    Настоятельно рекомендую нести диск на восстановление, но шансов у вас мало.
    Основной рабочий пока первый, с 7кой.
    ...
    После этого ребутнулся в 10ю винду и запустил проверку первого диска.

    Об этом моменте все забывают, что в windows 10 (начиная с win8) есть механизм ускорения загрузки, который при использовании последовательно нескольких ОС может угробить ваши данные (полагаю это сделано специально, как одна из миллиона мер борьбы с linux конкуренцией, иначе об этом бы везде писали большими буквами). Принцип следующий - windows 10 при выключении, закрывает рабочие приложения (делает быстрый logout) а затем вызывает гибернацию (hibernation), сброс оперативной памяти и состояния устройств (включая gpu) на диск в файл hiberfil.sys в корне диска, т.е. не завершая процессы, не закрывая файлы, не сбрасывая кеши записи на диски и кучу всего, что могло бы замедлить этот процесс... при включении, данные очень быстро и эффективно считываются с диска (линейная скорость даже медленных дисков hdd - сотня мбайт/с), включение занимает считанные десяток секунд, после чего идет login и запуск процессов пользователя.

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

    Но вот винда ругнулась на этот диск и я решил его проверить. Забекапил что нужно и на 2й и на 3й диски.
    Что это была за ругань, сообщение в подробностях скорее всего раскроет подробно, что случилось.

    p.s.
    эту фичу зовут Fast Startup (включена в win10 и 11 по умолчанию) можно не выключать всю гибернацию, а вручную выключать компьютер в правильном режиме:
    shutdown -s -t 0

    отключается в Панели управления, электропитание, действия кнопок питания, изменение параметров которые сейчас недоступны, выключить быстрый запуск.
    либо отключить гибернацию полностью, выполнив в командной строке:
    powercfg /h off
    Ответ написан
    17 комментариев
  • Возможно ли использовать модель LLAMA-405B на обычном железе 64GB + 8GB?

    @rPman
    Да, уже считал, и это действительно реально, с относительно небольшими затратами (16-20т.р.) если тебя устроит скорость исполнения в 15-30 секунд на токен (на твоем железе llama31-70b на процессоре и 64гб оперативке будет работать токен в 1-1.5 секунд).

    Необходимо собрать самый дешевый pcie nvme ssd программный raid0, купив контроллер pcie-x16 3.0 или 4.0 из четырех разъемов nvme либо четыре pcie-4x дешевых 3.0 и закупить самые дешевые nvme ssd диски от 128гб (со скоростями чтения от 2гбайт/сек).

    Затем собрать из них raid0 с чередованием (win/linux это поддерживают) и разместить на нем gguf файл. llama.cpp поддерживает загрузку файла с весами с диска, без выделения оперативной памяти (но она нужна на контекстное окно, в зависимости от его размера это будут десятки гигабайт). Файл будет считываться по кругу целиком, по разу на токен, а значит скорость будет определяться именно этим. 2гб/с*4 диска = 8гб/с, 256гб 4бит квантизация будет считываться за 32 секунды.

    Есть еще ограничения в скорости исполнения из-за процессора, но по уму, если бы была оперативная память то типовой десктопный процессор работал бы на скорости 15-20 секунд на токен.
    Ответ написан
    7 комментариев
  • Прирост в производительности после переноса алгоритма с Python на C++/C?

    Vindicar
    @Vindicar
    RTFM!
    У тебя вычисление повторяется для каждой строки? Посмотри, можно ли распараллелить код на несколько процессов (именно процессов, не потоков).
    Также посмотри насчёт использования numpy/scipy и их численных солверов для систем уравнений вместо sympy. Может, используя sympy, получится сформулировать алгоритм расчёта, а уже его портировать на numpy?

    Если надумаешь использовать numpy, держи в уме вот что: по возможности выполняй операции сразу над массивами значений. Упрощённо, вот это
    a = numpy.array([3] * 1000000, dtype=numpy.float32)
    b = 2 * a + 3

    будет намного быстрее, чем это:
    a = numpy.array([3] * 1000000, dtype=numpy.float32)
    b = numpy.zeros_like(a)
    for i in range(a.shape[0]):
        b[i] = 2 * a[i] + 3

    Причина простая - операции над массивами реализуют перебор элементов массива нативно, т.е. с той же проивзодительностью, что и C/C++/Fortran. А вот сугубо питоньи циклы - штука медленная.
    Ответ написан
  • Прирост в производительности после переноса алгоритма с Python на C++/C?

    @Everything_is_bad
    Хочется быстрее.
    начни с поиска узких мест и их оптимизации, так же можно попробовать pypy, после этого стоит рассмотреть cython

    Какой ЯП выбрать для изучения
    любой популярный компилируемый

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

    @Everything_is_bad
    Смотрю курс на ютубе по созданию ботов с помощью библиотеки aiogram 2, но у меня самого скачана aiogram 3.
    перестать смотреть протухшие курсы, а еще лучше перестать смотреть курсы на ютубе, новички не способны найти там нормальные
    Ответ написан
    Комментировать
  • Как в Linux найти файлы одинакового размера?

    hint000
    @hint000
    у админа три руки
    Нужно получить список всех файлов с одинаковым размером. Чтобы потом уже вручную удалить дупликаты.
    Вы можете в несколько кликов искать и удалять дубликаты файлов, используя GUI-утилиту под названием FSlint. Находит не просто совпадение размера, а именно совпадение и размера, и содержимого. Имена файлов при этом могут быть разные. Просто добавляете несколько папок, по которым нужно искать дубликаты, потом среди найденных выделяете те, которые хотите удалить и удаляете. Т.е. вручную можно выбирать в какой из папок файл оставить, а в какой удалить. Можно все дубликаты оставить, можно все удалить (!).
    Утилита имеет и другие функции для поиска разных корявостей и неоптимальностей в папках (имена с "плохими" символами, пустые папки и т.д.)

    Есть ещё утилита командной строки fdupes, которая тоже ищет дубликаты.
    Ответ написан
    2 комментария
  • Деление внешнего носителя для файлов и для linux, как это сделать?

    @rPman
    сделать ровно то что ты написал

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

    в зависимости от того какой способ загрузки в биосе выбран и какая разметка диска (mbr и gpt видны и там и там):
    * efi загрузка требует/рекомендует gpt разметка, legacy - mbr
    * если выбрана gpt разметка но legacy режим то потребуется 1мб раздел biosboot
    * если выбран efi режим, то нужен раздел ~100мб efiboot (отформатировать в обычный fat но с пометкой что он efi)
    * если выбран legacy режим загрузки и mbr разметка, то для linux хватит 1 раздела /
    (иногда требуется /boot раздел, обывателю это не нужно, это актуально для нетипичных конфигураций файловых систем)

    Итого 1-2 раздела для linux и 1 раздел ntfs для windows, который прекрасно виден и в windows и в linux, без каких либо настроек.

    Но есть совет, windows начиная с 8.1 версии и по сей день по умолчанию включает hibernate режим и использует его даже когда ты выбираешь обычное выключение компьютера (оно делает logout, закрывая все приложения, и включает гибернацию) - чтобы показывать рекорды моментального включения компьютера. К сожалению в этом режиме файловые системы на флешках и дисках считаются некорректно извлеченными, и в редких случаях работа с таким 'некорректно отключенным' диском из linux (любой другой ОС, тут важен факт гибернации) может привести к повреждению данных

    Поэтому рекомендую отключить гибернацию, если важно постоянно переключаться между ОС.
    Ответ написан
    4 комментария
  • Почему нет установщика пакетов на Ubuntu?

    r1412s
    @r1412s
    А если открыть терминал и выполнить команду: sudo apt install gdebi то потом можно будет на Вашем хроме ПКМ и установить пакет
    Ответ написан
    Комментировать
  • Откуда появляется обложка в MP3-файле?

    nokimaro
    @nokimaro
    Меня невозможно остановить, если я смогу начать.
    Конкретно в tg обложка приходит с серверов tg как мета-информация о загруженном файле
    https://core.telegram.org/api/files#downloading-we...
    ищите на странице "cover"

    То есть после того как вы залили файл на сервера tg он проходит обработку и сервер для файла находит обложку. Через какой сервис делается поиск обложки для mp3 - неизвестно.
    Раньше десктопный тг-клиент делал это втупую используя iTunes Search API, теперь tg-сервер делает поиск обложки после загрузки mp3 и отдаёт это как мета-информацию в клиент. Естественно оригинальный файл никак не изменяется и обложка внутрь файла не пишется.
    Если в загруженном mp3 есть файл с обложкой в id3-тегах то будет использоваться он. Поэтому если не устраивает обложка которую находит ТГ - зашейте нужную картинку через id3-теги.

    сам автор песни был в шоке от содержимого

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