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

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    Делаются локальные копии основных репозиториев (reposync, debmirror и другие подобные инструменты), это может касаться и самих дистрибов с пакетами, и всяких менеджеров пакетов для языков типа pip, maven, npm. Либо, как вариант, доступ к ним прописывается через прокси с хорошо контролируемым списком хостов, куда разрешено ходить. Отдельные приложения (вне репозиториев или собственные разработки или свои кастомные сборки) можно класть в свои репозитории либо иногда норм даже просто положить архивом на http, который скрипт раскатки (ansible?) скачает и положит куда надо. Например, именно так у нас по хостам расползается jdk всех нужных версий (в тех проектах, где до контейнеризации нужно ещё космическое количество рефакторинга провести).

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

    Это вообще часть подхода, при котором инфраструктура имеет свой жизненный цикл, свои практики и инструменты, которые отделены от жизненного цикла конечных бизнес-приложений с их совсем другими методами раскатки, обновления, контроля работоспособности.
    Ответ написан
    7 комментариев
  • Почему путается порядок выполнения module_init и module_exit в модуле ядра Linux?

    @Px2 Автор вопроса
    Такая же проблема и решение: https://askubuntu.com/questions/1111529/printk-mes...
    Вкратце: сообщения из printk() попадают в буфер, который не очищается до тех пор, пока не встретит новую строку.
    Ответ написан
    Комментировать
  • Как мне правильно развиваться в первую очередь как хороший программист, а потом уже как backend python?

    Maksim_64
    @Maksim_64
    Data Analyst
    Я 2 года изучал Python (сам, без курсов).
    Думаю, что многого не знаю или упустил.

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

    Сейчас пытаюсь учить Flask, недавно закончил основы Git (очень хочу практики в команде).

    Опять таки делай проект, я бы не рекомендовал flask (fastapi вместо), но главное это сделать проект, git будет нужен если работаешь один, необязательно командой.

    В моих планах стать backend-разработчиком на Python.
    В данный момент я просто запутался, что мне изучать, что читать, где брать практику.

    Прекрасный выбор, после двух лет чтения, надо делать. Потом придет время опять почитаешь чего-нибудь.
    Ответ написан
    4 комментария
  • Как вызвать встроенный сканер qr кодов в telegram web app?

    @xomiles Автор вопроса
    Наконец-то разобрался, кому понадобиться то вот:
    const par = {
                text: "Текст"
            };
    window.Telegram.WebApp.showScanQrPopup(par);
    window.Telegram.WebApp.showScanQrPopup();
    Ответ написан
    1 комментарий
  • Как установить Windows и Devuan на один ПК с шифрованием дисков?

    VoidVolker
    @VoidVolker Куратор тега Windows
    Dark side eye. А у нас печеньки! А у вас?
    Самый простой и надёжный способ: поставить Windows, далее поставить в нём VirtualBox, а уже внутри виртуалбокса поставить любой линукс и спокойно его использовать с любыми опциями и не бояться сломать все, что есть. Виртуалки легко переносятся между разными машинами и легко бэкапятся/дублируются. Любая установка двух ОС на один ПК - это уже сам по себе геморрой и зависимости ОС одна от другой, когда ЛЮБОЕ обновление ЛЮБОЙ ОС легко ломает одну, вторую или обе ОС сразу. Вы же хотите мало того, что поставить их на один диск, так еще и зашифровать и второй диск тоже поделить на две части и для двух разных ОС - этим вы поднимаете градус геморроя в два раза за каждый диск и еще в два раза за шифрование. Оно вам надо? Не, если есть желание на практике освоить ручное восстановление разделов, загрузчиков, таблиц разделов, шифрования и прочего - то вперед, ставьте, осваивайте. Но только обязательно делайте ежедневный бэкап на отдельный носитель важны данных. В общем, я крайне не рекомендую так делать без понимания как оно всё вместе работает и знаний и опыта восстановления в случае, если что-то сломается. В идеальном варианте две ОС ставятся следующим образом: подключается целевой диск, ставится одна ОС, физически отключается, подключается второй диск во второй порт, ставится вторая ОС, подключается обратно первый диск и далее вручную добавляются записи загрузчиков обеих ОС друг к другу (ибо поведение дистрибутивов ОС при установке если уже есть другая ОС абсолютно непредсказуемо и там может произойти все что угодно). На случай если один загрузчик/ОС или диск сломаются - второй будет работать.
    Ответ написан
    4 комментария
  • Существует ли "карта программиста"? Что и за чем учить?

    dkutergin
    @dkutergin
    Java developer
    Ответ написан
    Комментировать
  • Возможно ли использовать модель 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 комментариев
  • Какая нейросеть умеет в веб-дизайн?

    @rPman
    Адекватных и универсальных мультимодальных ИИ (с модальностью - изображения) на текущий момент не существует.

    С очень большой натяжкой можно считать топовые openai/claude/google/(может китайский qwen но они совсем внизу), с поддержкой изображений подходящими, в интернете даже гуглятся тестовые helloworld, но проблема в том что когда доходишь до реального использования, сил на то чтобы объяснить ИИ что тебе нужно и исправлять его ошибки уходит БОЛЬШЕ чем если бы ты делал это сам.

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

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Даже на закрытых плеерах с DRM эта защита не спасает. Ничто не помешает переткнуть кабель из монитора в карту видеозахвата. Или тупо поставить перед монитором камеру.
    Ответ написан
    Комментировать
  • Как автоматизировать установку и настройку VPN сервера?

    @Drno
    bash скрипт с набором нужных команд. Либо Ансибл - если надо массово устанавливать(хотя можно и parallel-ssh использовать)

    Vless элементарно упаковывается в докер. Нужный файл json монтируется в файле docker-compose yml

    Итого...
    ставим нужный софт - докер,компос, fail2ban итд по желанию
    копируем файлы для докер компос
    стартуем docker-compose up -d -f my.yml

    всё...

    краткий пример yml -
    version: '3'
    services:
      xray-turk:
        image: teddysun/xray:latest
        volumes:
          - /opt/xray-turk/config.json:/etc/xray/config.json
          - /opt/xray-turk/geosite.dat:/usr/local/share/xray/geosite.dat
        ports:
          - "443:443"
        restart: unless-stopped


    краткий bash для установки софта (который лично мне нужен) (да я знаю что там старый докер, но меня устраивает) -

    #!/bin/bash
    
    # Обновление пакетов
    sudo apt-get update -qq && sudo apt-get install jq fail2ban mc htop vnstat wget git curl rsync apt-transport-https ca-certificates software-properties-common -qq -y;
    
    # Добавление ключа репозитория Docker
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
    # Получение кодового имени текущей версии Ubuntu
    codename=$(lsb_release -cs)
    
    # Добавление репозитория Docker
    sudo add-apt-repository -y "deb [arch=amd64] https://download.docker.com/linux/ubuntu $codename stable";
    
    # Обновление пакетов после добавления репозитория
    sudo apt-get update;
    
    # Установка Docker
    sudo apt-get install docker-ce -qq -y;
    
    # Установка Docker Compose
    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    
    # Добавление прав на выполнение для Docker Compose
    sudo chmod +x /usr/local/bin/docker-compose


    Желание комерческой поддержки - милости просим в ТГ )
    Ответ написан
    Комментировать
  • Актуален ли ассемблер на сегодняшний день?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Ассемблер полезен при анализе прошивок на безопасность.
    При изучении того как работает софт без исходного кода (обратный инжинеринг)
    и при решении задач интеграции разных слоёв софта.

    Ассемблер также очень близко стоит к разработке компилляторов. И если у вас нет
    соотвествующих знаний то строить свой компиллятор вы не сможете. Или вам нужно
    будет изучать готовые back-ends, virtual-machines.

    Ассемблер помогает при анализе узких мест в коде. В частности например
    векторизация вычислений ставит в первую очередь вопросы на которые ассемблер
    отвечает а ЯВУ - нет.

    Знания ассемблера помогают сделать бинарник компактнее. Это важно при разработке
    встраиваемых систем.
    Ответ написан
    Комментировать
  • Какие легковесные дистрибутивы Linux еще остались?

    @rPman
    Не путай размер дистрибутива и размер установленной системы на диске

    Дистрибутив на установочном livecd/liveusb диске это минимально рабочий (или специально подобранный для типового пользователя) набор пакетов, чтобы минимизировать запросы к серверам репозитариев мейнтейнера, а вот их размер почти у любого дистрибутива - десятки гигабайт.

    Например одно время ubuntu server альтернативно можно было установить, загрузившись в примерно 100-200мб iso образ, с установщиком, который с удобным текстовым интерфейсом устанавливал абсолютно все пакеты по сети из репозитария..

    Место, занимаемое установленной ОС зависит не от выбора мейнтейнера, а от выбора софта, который тебе нужен. Что бы ты не выбрал, пример - если тебе нужно ставить пакеты для разработки нейронных сетей (tensorflow) на nvidia gpu, то качать тебе минимум 5 гигабайт всего что с этим связано (а то и больше).

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

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

    Но и результат может быть потрясающим, можно собрать графическую систему в несколько сотен мегабайт с неплохим набором современного (буквально, новее чем тестовые версии бинарных дистрибутивов) софта, с минимальными (ничем больше не достижимыми) требованиям к оперативной памяти и даже некоторыми значимыми оптимизациями для своего процессора (бинарные дистрибутивы собирают софт без них, но некоторые разработчики пакетов заморачиваются сборкой оптимизаций сразу под несколько платформ самостоятельно) что может ускорить работу в некоторых случаях.
    Ответ написан
    4 комментария
  • Terraform для alicloud?

    amk4
    @amk4 Автор вопроса
    Вопрос решился документацией.
    https://developer.hashicorp.com/terraform/language...

    Скачал последний архив https://releases.hashicorp.com/terraform-provider-...
    Поместил в папку
    /usr/local/share / terraform/plugins / HOSTNAME/NAMESPACE/TYPE / terraform-provider-TYPE_VERSION_TARGET.zip

    /usr/local/share/terraform/plugins/amkhost/amkrepo/alicloud/terraform-provider-alicloud_1.206.0_linux_amd64.zip

    В ali.tf добавил
    terraform {
      required_providers {
        alicloud = {
         source  = "amkhost/amkrepo/alicloud"
         version = "1.206.0"
        }
      }
    }
    
    terraform init прошел успешно
    Ответ написан
    Комментировать
  • Какие могут быть полезные или интересные применения для демо-сайта с ChatGPT?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Самая интересная идея для ИИ - как разбогатеть очень быстро и без рисков.

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

    Maksim_64
    @Maksim_64
    Data Analyst
    Есть ощущение, что вы ожидаете очень сложного ответа, а ответ очень прост. Нет никакой математики в этой задаче, так же нету в этой задаче и архитектуры нейронных сетей. Есть лишь только работа с API, что оно предоставляет, таковы и возможности. Если бы мне нужно было решать такую задачу, я бы открывал статьи на medium (открывается с vpn) и естественно смотрел бы в стороны платных статей и от них бы отталкивался, потому что там множество пошаговых гайдов высокого качества для создания чат-ботов на базе GPT ( предполагаю вы свободно владеете английским).
    Ответ написан
    2 комментария
  • Как сделать чат-бот на основе ИИ, обученный на собственной базе знаний?

    @vitaly_il1
    DevOps Consulting
    Согласен с Максимом - заставить это заработать в принципе несложно. Нюансы могут быть при тонкой настройке.
    Я не спец в AI, а DevOps. Но недавно заказчик попросил поднять приватный "ChatGPT" с его страшно секретными документами. Я использовал клон https://github.com/imartinez/privateGPT. Работает в целом.

    Что искать в гугле для загрузки доеументов в chatgpt - например "chatgpt my documents" .
    Ответ написан
    Комментировать
  • Как сделать чат-бот на основе ИИ, обученный на собственной базе знаний?

    @Kakagawa
    Ответ очень прост) Вот пример реализации похожей задачи со своей базой данных - https://www.youtube.com/watch?v=9AXP7tCI9PI
    Ответ написан
    4 комментария
  • Есть ли какие-либо курсы по повышению квалификации для Backend разработчика (Node.js)?

    VoidVolker
    @VoidVolker
    Dark side eye. А у нас печеньки! А у вас?
    Лучший курс повышения квалификации - решение реальных задач. Особенно более сложных, чем предыдущие. Все остальное - мусор и инфоцыганство в основной массе. Все нужные знания лежат в сети в открытом доступе - надо просто научиться их искать и применять в реальном деле.
    Ответ написан
    3 комментария
  • Альтернативы Google Photo?

    @rPman
    Если нужно хранить, то syncting, запускаете везде где хотите, не хранит ничего на серверах, точнее каждая ваша машина становится сервером, поэтому если совсем нужно чтобы был сервер - покупаете за пару баксов vps-ку и поднимаете демон там же.

    Работает без проблем везде, на всех ОС, быстро, удобно, красиво, бесплатно, так хорошо - что хочется задонатить.

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

    Дешевле этого вы не найдете реализации.
    Ответ написан
    9 комментариев
  • Как организовать хранение фотографий для сайта?

    @dimuska139
    Backend developer
    Загружайте файлы не в папку, а в s3-совместимое хранилище (чтобы при желании можно было без страданий и изменений в коде перейти на Amazon или в Linode какой-нибудь) - MinIO. Т.е. генерируете некий id, превращаете его в хеш, формируете ключ и по нему льёте в MinIO. Причём храните только оригиналы.

    Что касается миниатюр, то их нарезать и хранить не нужно. Представьте, если размеры в дизайне поменялись - что тогда? А если для каждой миниатюры webp-версия потребовалась - все картинки опять обрабатывать? Есть решение - imgproxy. Это специальный прокси-сервис (можно на свой сервер поставить, как и MinIO), который нарезает картинки "на лету" в момент обращения (по параметрам в url). Кроме нарезки, есть ещё куча разных возможностей. Кеша внутреннего нет, т.е. перед imgproxy есть смысл поставить Nginx для кеширования миниатюр (чтобы при каждом обращении не нарезало).
    Ответ написан
    7 комментариев