Задать вопрос
  • В Lubuntu не работает телеграм, как исправить?

    smorman
    @smorman
    When In Rome do as The Romans do...
    Лучше из бинарника ставить.
    Всегда самая свежая версия!
    wget https://telegram.org/dl/desktop/linux -O /tmp/telega.tar.xz; sudo tar -xpf /tmp/telega.tar.xz -C /opt; sudo ln -s /opt/Telegram/Telegram /usr/local/bin/telegram-desktop; sudo chown -R $USER:$USER /opt/Telegram; telegram-desktop & exit

    snap - отстой!
    Ответ написан
    Комментировать
  • Как взаимодействовать с Ethereum кошельком через python?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Вот тут есть десяток проектов релевантных к Эфирам и Питону
    https://ethereum.org/ru/developers/docs/programmin...
    Ответ написан
    Комментировать
  • Какая библиотека для создания telegram бота на Python лучше и удобнее?

    • Если ожидается большой проект с высокой посещаемостью и долгой поддержкой то у aiogram нет альтернативы. У них беда с документацией, но есть чат в TG где всегда подскажут. Там можно пообщаться и с разработчиком данной библиотеки.
    • Если это что-то простое на десяток хэндлеров и лень долго разбираться то у python-telegram-bot очень подробные wiki, документация, снипеты. Можно без опыта очень быстро разобраться... в асинхронность тоже умеет простым декоратором @run_async, можно даже запустить serverless на какой нить azure/google/aws/yandex functions с бесплатным лимитом в 1000000(azure) обращений за месяц
    • Если ограничения bot api слишком тесные и вы хотите делать то что может только клиент (например выгружать файлы больше 40Мб), то посмотрите в сторону telethon (тоже async) плюс он общается с серверам телеграма не через request-respons, а по протоколу MTProto. В частности можете посмотреть на Garnet — bot-friendly telethon
    Ответ написан
    1 комментарий
  • Сегментации изображения, термограммы. Какой способ выбрать?

    Maksim_64
    @Maksim_64
    Data Analyst
    Это так не работает. Нужно наблюдать процесс машинного обучения, метрики, на тренировочном сете на валидационных наборах. Потом VGG это предтренированные модели. Ну сделай весь процесс сам с kmeans (используй scikit-learn) и сравни результаты. А так полный список методов и как с ними работать. https://scikit-learn.org/stable/modules/clustering... Там же и все метрики для кластеризации, как сравнивать. Да и лучшие практики. Вообще сайт scikit-learn куда больше чем просто документация.
    Ответ написан
    Комментировать
  • Как искать по своим вопросам или ответам?

    0xD34F
    @0xD34F
    Поиск тут сильно так себе, так что искать лучше через гугл. Лично я использую запрос следующего вида:

    site:qna.habr.com <имя-пользователя> <тег> <чего ищем>

    Отобрать вопросы/ответы - подписываетесь на интересующие вас теги, заходите в профиль, раздел "подписки", подраздел "теги", появится список тегов - рядом с каждым будут ссылки на списки соответствующих вопросов и ответов (конечно, если таковые у вас есть). Но, разумеется, можно и напрямую пройти, если знать, как нужный url выглядит. Вот ваш laravel, например.
    Ответ написан
    3 комментария
  • Как войти в телеграм по номеру?

    @alex1478
    У меня была похожая проблема, когда на новую симку уже был чей-то ТГ зарегистрирован и ТГ не хотел код в смс отправлять. Мне помогло запросить код из Telegram X, там была кнопка "не пришёл код" или что-то вроде того. Единственное нужен Telegram X именно из гугл плея, версии с сайта ТГ или из AppGallery мне тоже не предлагали смс отправить
    Ответ написан
    Комментировать
  • Возможна ли заблаговременная проверка VPN протокола на устойчивость к блокировкам?

    CityCat4
    @CityCat4 Куратор тега VPN
    //COPY01 EXEC PGM=IEBGENER
    Чего ждать? Тут я на "большом" хабре нашел статью от Роскомсвободы*, которая конечно уж не будет давать хороших прогнозов, но как это ни странно, в этот раз их прогноз весьма вменяем - вот, можно почитать

    Часть этого уже внедряется, часть приступается к внедрению. Кое в чем они нагнали, но большая часть прогноза - 100% попадание.

    * - Признана иноагентом по решению МинЮста
    Ответ написан
    Комментировать
  • Как можно, и вообще можно ли хранить фото и видео в базе данных mongo?

    ipatiev
    @ipatiev
    Потомок старинного рода Ипатьевых-Колотитьевых
    Если человек ничего не понимает в какой-то теме, он никогда не должен выступать с заявлениями вида "у меня возникла потребность". Потому что такие заявления базируются не на реальных потребностях, а на неграмотности, фантазиях и путанице в голове. И получаются вопросы вида "У меня возникла потребность забивать гвозди микроскопом. Я обыскал весь интернет но ничего понятного не нашел, только понял то что это делается на кухне. "

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

    Хранить фото и видео в БД - это как надевать штаны на голову.
    Хранить фото и видео в монге - как надевать на голову помойное ведро.

    Файлы надо хранить в файловой системе.
    Структурированные данные надо хранить в Базе Данных.
    Монгу не нужно использовать ни для чего. Это вообще не база данных, а просто хранилище по типу "куча мусора", которое используется исключительно в стильных модных молодёжных стартупах, в которых не нашлось ни одного специалиста по базам данных. Это была тупиковая ветвь, поднявшаяся на отсутствовавшей на тот момент поддержке JSON в базах данных и хайпе
    Ответ написан
    2 комментария
  • Как написать нейросеть способную генерировать текст?

    @rPman
    Ты как будто отсутствовал последний год и пропустил бум ChatGPT. Этот алгоритм нейронных сетей (Generative Pre-trained Transformer) был разработан в 2017-ом 'гуглом' и 'доведен до ума' публично в OpenAI (их chatgpt4 сейчас самый продвинутый универсальный генератор текста, проявляющий признаки интеллекта).

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

    На текущий момент самая крутая из доступных нейронных сетей (доступные предобученные веса сети), которую можно доучивать под свою задачу или даже пользоваться как есть, - это фейсбуковская llama2 (бесплатная, с очень либеральной лицензией, позволяющая коммерческое использование), ее можно запускать на процессоре на десктопной машине с меньше 64гб ram (скорость от 1токен в секунду, слово это 1-7 токенов) с помощью llama.cpp или на машине с GPU, суммарной емкостью vram от 80Gb (я не нашел точные минимальные требования, квантизация 8бит доступна в штатном коде llama а 4-битную тоже можно но я не уверен какие проекты уже поддерживают llama2).

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

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

    Но если взять уже обученную сетку (веса) собрать небольшой датасет текстов под свою задачу, то тюнинг будет достаточно дешевым, вот еще со старой llama так делали
    Ответ написан
    1 комментарий
  • Что почитать про диски (HDD, SSD) и файловые системы, желательно какое-то системное описание?

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

    1. Случайный и многопоточный доступ - принципиальная необходимость задумываться об этом исходит из физической особенности накопителей, последовательный доступ от случайного (имеется в виду как у hdd так и у ssd (в меньшей степени, зависит от размера читаемого блока кластера, потребительскиее ssd это 256кб) значительно отличаются (на порядок или даже два) по времени. Аппаратные контроллеры на материнской плате и даже на диске (или драйвера и планировщик ос) могут физически считывать данных больше чем потребуется (read ahead), делая это фоном, после запроса и сохраняя в своей памяти.
    Если несколько приложений одновременно потребуют данные с разных областей устройства хранения, специальный планировщик ос может приостанавливать работу этих приложений, собирая как можно больше запросов на данные, сортируя их для оптимальной их обработки. Пользовательское приложение может делать это значительно эффективнее, если заранее озаботится о том, как именно данные будут храниться на диске (обычно речь идет о хранении данных минуя файловую систему).

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

    3. Кеширование (буферизирование) записи - приложение может управлять, стоит ли ждать окончания физической записи данных на диск или это можно сделать фоном или даже отложить на потом. Например fflush позволяет принудительно сбросить буфера при использовании fwrite (и других от stdlib), более низкоуровневые вызовы позволяют точнее управлять процессом. Помимо инструментов управления кешированием на уровне приложения есть способы настроить это на уровне ОС (например ext4 позволяет настроить стратегию записи data=writeback, это делает файловую систему уязвимой к сбоям но значительно ускоряет запись, так как даже fflush из приложения не будет ждать окончательной записи), так же разные сетевые файловые системы могут накладывать дополнительные ограничения (точно помню что nfs обрабатывает fwrite по другому в отличии от локальных записей, делая больше лишних действий на диске)

    p.s. про mmap, меанизмы ОС (как linux так и windows) позволяет вместо работы с файлом по кусочкам (fopen/fread/fwrite/...) 'замапить' указанный файл или даже раздел/диск на область памяти, при доступе к которой прозрачно будут совершаться чтения и записи на диск. Этот способ работы с файлами зачастую самый производительный (кстати по умолчанию используются на исполняемый файл приложения и .dll/.so) и очень часто еще и удобнее, так как кеширование данных будет произведено средствами ос, и при повторном запуске приложения данные уже будут в памяти (при обычном fopen их пришлось бы считывать в память, т.е. копировать что дает 2x накладные расходы на процессор).

    -------------

    4. Файловые системы это уровень абстракций ОС, значительно добавляет накладные расходы на работу с данными но за счет удобства (например возможность расширить хранилище без полного копирования данных, просто увеличив размер раздела или добавив новый накопитель, как это позволяют файловые системы - комбаины типа btrfs/zfs), разные файловые системы организуют хранение по разному, что значительно влияет на скорость как записи так и чтения.
    Например cow файловые системы (xfs/zfs/btrfs) каждое последующую запись делают последовательно, даже если записываемые чанки/кластеры принадлежат разным файлам, даже если это модификация а не добавление в конец, что благосклонно сказывается на скорость записи но отвратительно фрагментирует размещение файлов на диске (там есть механизмы борьбы с этим), т.е. для хранилище файлов разного размера, считываемых/изменяемых целиком такие файловые системы идеальны, но для баз данных наоборот очень неэффективны (в таких фс можно принудительно отключить cow для определенных файлов). btrfs/zfs за эти накладные расходы (незначительные) дают бонусом функционал быстрых снапшотов (почитай про btrfs snapshot incremental backup) и высокую устойчивость к сбоям.
    Еще пример, файловые системы, с целью защитить данные от сбоев, добавили к функционалу понятие журнал, промежуточное место, куда записываются данные (метаданные) до тех пор пока приложение не зафиксирует изменения (закрытие файла или fflush), в нормальных ОС существует возможность разместить этот журнал на отдельном, более быстром, накопителе (например ext3/ext4) или отключить полностью. Это позволяет заметно ускорить запись и не покупать на весь объем данных быстрый и дорогой накопитель.
    Было время, когда можно было буквально (кажется у xfs но я могу ошибаться) указать разные накопители для метаданных (информация о том как файл размещен на диске и информация о атрибутах файлов) и самих данных, что тоже в условиях значительного отличия скорости работы емких hdd и быстрых но не емких ssd, сэкономить на построении хранилища.

    5. Сжатие данных на лету - некоторые файловые системы позволяют прозрачно для приложений пропускать данные через библиотеку сжатия (в пределах кластера или даже нескольких соседних), например ntfs использует compress, а btrfs позволяет выбирать, например zstd (один из лучших по соотношений скорость/сжатие), было время когда включение сжатия на медленных накопителях давала двух-трех кратное ускорение скорости чтения практически бесплатно (а запись почти не замедлялась но повышалась нагрузка на процессор), на современных же накопителях процессор может не поспевать (но есть дорогие контроллеры с таким функционалом).
    Еще есть тип сжатия - sparse files (дырявые файлы), части файла, в которые не производилась запись, физически не занимают место (фактически тратится место только крохотная часть в области метаданных файловой системы), при чтении таких частей будут возвращены нули, так же есть функции по замене ранее записанных частей файла на такие дырки. Такие файлы могут понадобиться, например, когда нужно хранить огромные разряженные матрицы с индексацией по позиции, индекс тут будет использоваться от файловой системы но выигрыш по производительности сомнителен и требует измерений под ваши данные.

    p.s. любая сторонняя библиотека, добавляющая еще один уровень абстракции к хранилищу, может дать выигрыш только если стратегия работы с данными совпадает с той, на что заточена эта библиотека. Например реляционные базы данных дают готовый и обширный функционал по индексированию данных, многопользовательских транзакций но за счет больших накладных расходов на их поддержание. Помню был тут вопрос про хранение терабайтов данных числовой ключ -> крохотное значение (несколько байтов хеш), так вот майкрософтовская sql уже с миллионами записей могла до секунды на запись диском шерстить (тысячи iops), когда как самодельный и примитивный велосипед с одноуровневым индексом по хешу от значения мог дать скорость доступа и записи 1к1 iops накопителя (от 1 вызов к диску на запрос чтения и от 2 - на запись).
    Ответ написан
    9 комментариев
  • Поиск по большим файлам python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ну если файл 2гб чем pandas то не устраивает, можно еще и pandas ускорить использовать polars, у него схожий синтакс c pandas но поддерживает параллельное выполнение. Что для pandas что для polars такие выборки это будет одна коротенькая строчка кода.

    2гб не проблема в память загрузить, но и если бы файл был на много больше и pandas и polars поддерживают чтение файлов по частям. Вообще если нужна серьезная скорость, polars ,будет номер один там не numpy массив, а Rust Arrow. Не факт что тут polars нужен, ну вот глянь https://www.makeuseof.com/pandas-vs-polars-which-i... на сколько pandas быстрый, но polars выборка рядов по условию в 5 раз быстрее, а например применение функции, к столбцу или фрейму в 30 раз быстрее.
    Ответ написан
    Комментировать
  • Стоит ли сейчас ипользовать Elasticsearch?

    dimonchik2013
    @dimonchik2013
    non progredi est regredi
    вообще - Эластик не стоит использовать никогда, но такая роскошь недешева

    дело в том что "других систем" особо не существует, их ровно одна: Sphinxsearch и ее отдельная ветка - Manticoresearch ( ее вот и стоит на сегодня),
    они сильно лучше Эластика по техническим параметрам: там где на Эластик уходит ~10к на кластер Амазона, Сфинксы обходятся 1-2к сервером ( вообще 1, но приходится все же побольше SSD ставить)

    но!

    почему-то ж Вы когда-то выбрали Эластик?
    да, именно поэтому:
    • есть мануалы
    • есть API (в сфинксе наверно и сейчас нет, в Мантикоре есть - учли это)
    • есть "кто-то кто уже работал"
    • есть плагины, надстройки, аддоны


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

    это , в общем-то, и много чего в project mamagement касается
    Ответ написан
    4 комментария
  • Что изучать после пайтона?

    Maksim_64
    @Maksim_64
    Data Analyst
    Часть первая: Английский Язык.

    Часть вторая: поставь anaconda и jupyter lab

    Часть третья: python фреймворки
    1. numpy - изучать каждый метод не нужно, нужно освоить broadcasting Это правила по которым происходят операции с массивами разной размерности. Не изучишь, не сможешь работать с нейронными сетями и много еще с чем.

    2. pandas - нужно научится понимать, как работают индексы (вся мощь но и сложность лежит в индексах особое внимание к многоуровневым индексам). Группировки объект groupby. Решайпинг, методы stack, unstack, melt и т.д. Решайпинг сложная тема, но без нее никуда.

    3. matplotlib - нужно научится работать в ооп стиле, а не в матлаб стиле.

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

    4. scikit-learn - это машинное обучение, тебе понадобится разобраться что такое оценщик (estimator) и transformer (трансформатор). Также научится пользоваться пайплайнами, объект Pipeline это для старта, естественно.

    5. statsmodels - это не много иной взгляд на машинное обучение он включает в себя инферентивную статистику. Например построив логистическую регрессию, я могу посредством этой библиотеки найти каким образом изменение на одну единицу одного из моих предикторов отражается на вероятности, так называемый маржинальный эффект. Это очень важно для бизнеса. Также A/B тесты тоже там, и многое многое другое.

    4 и 5 также учить по документации она совершенно фантастического уровня особенно для scikit-learn + очень важный плюс В этой области есть классика это книга Statistical Learning книга написана профессорами стенфорда, в мире датасаенс она очень известна. Раньше она была написана на R, я ее читал на R в свое время, так вот 2023 году этим летом вышла python edition. Книга и код доступны бесплатно. https://www.statlearning.com/
    Это уникальная книга без равных, но к ней надо быть готовым.

    Часть Четвертая: Математика
    Все что нужно есть на Khan Academy. Начни со своего уровня и вперед, математика тебе нужна вся. Особенно Calculus. Заходишь на Khan Academy и вперед проходи бесплатные курсы со своего уровня,
    Algebra 1,
    Algebra 2,
    Precalculus,
    AP/College Calculus AB
    AP/College Calculus BC
    Statistics and Probability
    AP College Statistics

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

    Потом придется прочитать еще пару книг по теории вероятности и статистике отдельно (со временем). Если calculus на Khan Academy на должном уровне, то вот теория вероятности и статистика слабенькая, нужно будет добавлять.

    В добавление еще SQL но поверхостно, уровень не сложных запросов и подзапросов. Все дела будут происходить в pandas.
    Ответ написан
    Комментировать
  • Как реализовать escape-последовательность в файле конфигурации.ini?

    Vindicar
    @Vindicar
    RTFM!
    Вариант 1. В доках на configparser написан пример синтаксиса для многострочного строкового значения. Сформируй исходное значение в файле корректно, и парсер выдаст то, что нужно, без дополнительных прибабахов.

    Вариант 2. error_message = error_message.replace(r'\n', '\n')
    Ответ написан
    Комментировать
  • Как задействовать випианарное проксирование только для определённых вкладок в браузере Google Chrome?

    Никак. VPN на то и VPN что в него заворачивается весь трафик, и vpn ничего о браузере не знает.
    Если речь о прокси, который как расширение в браузере работает, то некоторые расширения позволяют включить/выключать проксирование для отдельных сайтов, а иногда даже вкладок
    Ответ написан
    Комментировать
  • Какую CMS используют в vc, tj и dtf?

    Noizefan
    @Noizefan
    Ответ написан
    Комментировать
  • Как добавить готовый график в Figure (matplotlib)?

    Maksim_64
    @Maksim_64
    Data Analyst
    Ты уверен что ты понимаешь что такое объект Figure в matplotlib? Это канва, на которой ты размещаешь axes (оси координат и уже на этих осях ты непосредственно рисуешь графики). Прямого api что бы засунуть sympy plot на matplolib figure, не существует. Потому что это не оси с графиками а своя ФИГУРА с осями и на них графиками.

    Можно ли это обойти, да конечно можно создать урода и присобачить на figure sympy plot.
    import matplotlib.pyplot as plt
    import numpy as np
    from sympy import Symbol
    from sympy.plotting import plot
    x = Symbol('x')
    X = np.linspace(-3,3,100)
    y = np.cos(X)
    def add_plot(p, ax):
        backend = p.backend(p)
        backend.ax = ax
        
        backend._process_series(backend.parent._series, ax, backend.parent)
        backend.ax.spines['right'].set_color('none')
        backend.ax.spines['bottom'].set_position('zero')
        backend.ax.spines['top'].set_color('none')
        plt.close(backend.fig)
    
    p = plot(x**2, (x, 0, 3), show=False)
    
    fig, ax  = plt.subplots(1,2, figsize=(18,9))
    ax[0].plot(X,y)
    add_plot(p, ax[1]);


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

    @hesy
    Код анимации

    $(document).ready(function() {
        // Когда документ полностью загружен и готов к работе...
        
        $(".ajax_add_to_cart").on("click", function() {
            // При клике на элемент с классом "ajax_add_to_cart"...
            
            var productImage = $(this).closest(".post").find("img");
            // Находим ближайший родительский элемент с классом "post" и внутри него ищем изображение (тег <img>)
            
            productImage
                .clone() // Клонируем изображение товара
                .css({
                    position: "absolute", // Позиционируем клон абсолютно на странице
                    "z-index": "11100", // Устанавливаем высокий порядок слоя для клонированного изображения
                    top: productImage.offset().top, // Устанавливаем верхнюю позицию клонированного изображения
                    left: productImage.offset().left // Устанавливаем левую позицию клонированного изображения
                })
                .appendTo("body") // Добавляем клонированное изображение внутрь элемента body страницы
                .animate({
                    opacity: 0.05, // Задаем конечную прозрачность для анимации
                    left: $("#cart-punkt").offset().left, // Устанавливаем конечную левую позицию для анимации
                    top: $("#cart-punkt").offset().top, // Устанавливаем конечную верхнюю позицию для анимации
                    width: 20 // Устанавливаем конечную ширину для анимации
                }, 1000, function() {
                    // По завершении анимации...
                    
                    $(this).remove(); // Удаляем клонированное изображение
                });
        });
    });



    Ответ написан
    Комментировать
  • Qr code на python?

    fenrir1121
    @fenrir1121
    Начни с документации
    Потому что если попросить chatGPT написать код, который "генерит qr и добавляет на него изображение" он сделает все точно по ТЗ, не обращая внимания на то, что изображение перекрыло половину qr.
    Бред на входе -> бред на выходе, все честно.
    Ответ написан
    1 комментарий
  • Бесплатные или бюджетные VPS?

    @rPman
    lowendstock.com
    Поисковик по хостингам с ценами от 2$ в год (за какой-нибудь 128ram со 100мбит сетью), не обслуживаемые, слабая надежность (в зависимости от хостера)....
    Мне кажется нормальные начинаются где то от 2-3$ в месяц (с 1GB ram), пользуюсь buyvm(frantech) с оплатой в bitcoin lightning network.

    настоятельно рекомендую выбирать kvm версии, в них ты сможешь поставить любую ос, настроить свою файловую систему и т.п., когда как более дешевые lxc/openvz ничего этого не позволят.
    Ответ написан
    2 комментария