Проект

Общее

Профиль

Новости

Записки и мысли: Поднимаем свой сервер NuGet

Добавил(а) Михаил Губин 3 месяца назад

Сервер NuGet — это инструмент для управления пакетами .NET, который позволяет разработчикам легко устанавливать, обновлять и удалять пакеты в своих проектах. Однако, вместо того чтобы использовать общедоступный сервер NuGet, многие предпочитают поднимать свой собственный сервер для повышения безопасности и контроля над своими пакетами.

В этой статье мы рассмотрим, как поднять свой сервер NuGet с помощью инструмента BaGet. BaGet — это open source-проект, который предоставляет сервер NuGet, совместимый с .NET Core и .NET 5+. Github-репозиторий: https://github.com/bagetter/BaGetter.

Вам может потребоваться sudo, так как нужны права администратора.

1. Создание каталога для сервера NuGet

Первым шагом является создание каталога для нашего сервера NuGet. Мы будем использовать команду sudo mkdir /opt/nuget для создания каталога /opt/nuget. В этот каталог мы установим программу.

2. Загрузка файла BaGet

Далее нам нужно загрузить файл BaGet. Для этого мы используем команду sudo wget https://github.com/bagetter/BaGetter/releases/download/v1.4.8/bagetter-1.4.8.zip. Эта команда загрузит файл BaGet в текущую директорию.

3. Распаковка файла BaGet

После загрузки файла BaGet, мы должны его распаковать. Используем команду sudo unzip bagetter-1.4.8.zip для распаковки файла.

4. Удаление файла BaGet

Теперь, когда файл BaGet распакован, мы можем удалить исходный файл BaGet. Используем команду sudo rm -rf bagetter-1.4.8.zip, чтобы удалить файл.

5. Установка .NET Core

Для работы с BaGet нам потребуется .NET Core. Мы можем установить его с помощью команды sudo snap install dotnet-runtime-80. Это установит последнюю версию .NET Core.

6. Создание символьной ссылки на .NET Core

Теперь нам нужно создать символьную ссылку на .NET Core, чтобы мы могли использовать его из командной строки. Используем команду sudo ln -s /snap/dotnet-runtime-80/current/dotnet /usr/bin/dotnet.

7. Настройка переменных окружения

Нам также нужно настроить переменные окружения для использования .NET Core. Откройте файл .bash_profile с помощью команды nano ~/.bash_profile и добавьте следующую строку: export DOTNET_ROOT="/snap/dotnet-runtime-80/current".

8. Перезапуск оболочки

После внесения изменений в .bash_profile, перезапустите оболочку, чтобы изменения вступили в силу. Это можно сделать командой source ~/.bash_profile.

9. Проверка установки

Чтобы проверить, что все установлено правильно, откройте новую командную строку и выполните команду dotnet --version. Вы должны увидеть версию .NET Core, которую вы установили.

10. Создание сервиса

Для постоянной работы NuGet нам потребуется создать сервис. Чтобы создать его, выполните следующую команду:

sudo tee /etc/systemd/system/baget.service <<EOF
[Unit]
Description=BaGet - the NuGet server
After=network.target

[Service]
WorkingDirectory=/opt/nuget/
ExecStart=/usr/bin/dotnet /opt/nuget/BaGetter.dll
Restart=always
RestartSec=10
SyslogIdentifier=BaGet-nuget-server
User=root
Environment=ASPNETCORE_URLS=http://0.0.0.0:9002/
Environment=ASPNETCORE_ENVIRONMENT=Production
Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false

[Install]
WantedBy=multi-user.target
EOF

Вместо 9002 можно написать свой порт.

11. Запуск сервиса

Чтобы включить сервис и сразу его запустить, выполните следующую команду:

sudo systemctl enable baget --now

12. Завершение установки

Теперь вы можете проверить работу системы через команду sudo systemctl status baget. Если видите список процессов - все в порядке. Если же нет - проверяем журнал и настройки.

Записки и мысли: Как создать свой пакет NPM

Добавил(а) Михаил Губин 3 месяца назад

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

Шаг 1: Создание проекта
Для начала вам нужно создать новый проект. Вы можете использовать любой текстовый редактор или IDE, который вам нравится. Я рекомендую использовать Visual Studio Code, так как он бесплатный и имеет множество плагинов для работы с JavaScript.

Шаг 2: Создание файла package.json
Файл package.json содержит информацию о вашем пакете, такую как название, версия, зависимостей и другие метаданные. Вы можете создать этот файл вручную или использовать команду npm init.

{
  "name": "my-package",
  "version": "1.0.0",
  "description": "A simple library for doing something cool.",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "keywords": [],
  "author": "",
  "license": "ISC"
}

Шаг 3: Написание кода
Теперь, когда у вас есть проект и файл package.json, вы можете начать писать код вашей библиотеки. Ваш код должен быть размещен в файле index.js, который является основным файлом вашего пакета.

Пример кода библиотеки пакета NPM:

// index.js
const myLibrary = {
  // Функции и свойства вашей библиотеки
};

module.exports = myLibrary;

Шаг 4: Публикация пакета
После того, как ваш код готов, вы можете опубликовать его на npmjs.com. Для этого вам нужно будет создать аккаунт на npmjs.com и выполнить следующую команду:

npm publish

Эта команда опубликует ваш пакет на npmjs.com, и другие разработчики смогут установить его через npm install.

Можно использовать для публикации свой локальный репозиторий.

Шаг 5: Тестирование и поддержка
После публикации пакета важно убедиться, что он работает корректно и соответствует ожиданиям пользователей. Вы можете добавить тесты в свой проект и регулярно их запускать. Также важно поддерживать обратную связь с пользователями и исправлять ошибки, которые они обнаружат.

Записки и мысли: Устанавливаем NuGet в Linux

Добавил(а) Михаил Губин 3 месяца назад

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

Что такое NuGet?
NuGet — это пакетный менеджер, который используется для управления зависимостями в проектах .NET. Он позволяет разработчикам легко устанавливать, обновлять и удалять пакеты в своих проектах. NuGet также предоставляет удобный интерфейс для поиска и установки пакетов.

Шаг 1: Установка Mono
Первым шагом является установка Mono — среды выполнения для .NET приложений. Mono необходим для работы NuGet в Linux. Чтобы установить Mono, выполните следующую команду в терминале:

sudo apt-get install mono-complete -y

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

Шаг 2: Загрузка NuGet
Теперь, когда Mono установлен, нам нужно загрузить NuGet. Для этого используем следующую команду:

sudo curl -o /usr/local/bin/nuget.exe https://dist.nuget.org/win-x86-commandline/latest/nuget.exe

Эта команда загрузит последнюю версию NuGet для Windows и сохранит её в каталоге /usr/local/bin.

Шаг 3: Создание псевдонима для NuGet
Теперь, когда NuGet загружен, нам нужно создать псевдоним для него, чтобы мы могли использовать команду nuget вместо полного пути к исполняемому файлу. Для этого откройте файл .bash_aliases в вашем домашнем каталоге:

nano ~/.bash_aliases

Добавьте следующую строку в конец файла:

alias nuget="mono /usr/local/bin/nuget.exe"

Это создаст псевдоним nuget, который будет запускать NuGet через Mono.

Шаг 4: Перезапуск оболочки
Теперь, когда мы создали псевдоним, нам нужно перезапустить оболочку, чтобы изменения вступили в силу. Для этого выполните следующую команду:

source ~/.bash_profile

Если у вас нет файла .bash_profile, то вам нужно создать его и добавить туда ту же строку, что и в .bash_aliases:

alias nuget="mono /usr/local/bin/nuget.exe"

Заключение
Теперь, когда NuGet установлен и настроен, вы можете использовать его для управления зависимостями в ваших .NET проектах. Просто используйте команду nuget для установки, обновления и удаления пакетов. Например, чтобы установить пакет, вы можете использовать команду:

nuget install package-name

Удачи в использовании NuGet в Linux!

Записки и мысли: Файл .npmrc и его настройка

Добавил(а) Михаил Губин 3 месяца назад

Файл .npmrc — это конфигурационный файл для Node.js, который используется для настройки параметров при работе с пакетами npm. Этот файл может содержать различные настройки, которые будут применяться ко всем пакетам, устанавливаемым через npm.

Файл .npmrc обычно находится в домашнем каталоге пользователя (~/.npmrc), но его также можно создать в любом другом месте и указать путь к нему в переменных окружения NPM_CONFIG_USERCONFIG или NODE_PATH.

Ниже приведены некоторые примеры настроек, которые можно использовать в файле .npmrc:

// Установка локальной копии пакета вместо глобальной
registry = "http://localhost:4873/"

// Установка пакета без кеширования
cache = false

// Удаление пакета после установки
clean = true

// Указание пути к директории для хранения локальных пакетов
prefix = "/path/to/local/packages"

// Управление списком репозиториев, откуда npm будет загружать пакеты
// В данном случае, npm будет загружать все пакеты только из репозитория "registry.example.com"
// Это полезно, когда вы хотите ограничить доступ к определенным репозиториям
// registry = "registry.example.com"

// Управление списком репозиториев, откуда npm будет загружать пакеты
// В данном случае, npm будет загружать все пакеты только из репозитория "registry.example.com"
// Это полезно, когда вы хотите ограничить доступ к определенным репозиториям
// registry = "registry.example.com"

// Управление списком репозиториев, откуда npm будет загружать пакеты
// В данном случае, npm будет загружать все пакеты только из репозитория "registry.example.com"
// Это полезно, когда вы хотите ограничить доступ к определенным репозиториям
// registry = "registry.example.com"

Важно отметить, что настройки в файле .npmrc имеют приоритет над настройками, указанными в командной строке. Например, если вы установили registry в файле .npmrc, то npm будет использовать этот репозиторий независимо от того, какой репозиторий вы укажете в командной строке.

Также стоит учесть, что настройки в файле .npmrc могут быть переопределены через переменные окружения. Например, если у вас есть переменная окружения NPM_REGISTRY, то она будет иметь приоритет над настройкой registry из файла .npmrc.

Записки и мысли: Делаем свой локальный NPM репозиторий

Добавил(а) Михаил Губин 3 месяца назад

В этой статье мы рассмотрим команды для установки и настройки собственного NPM-репозитория с использованием Verdaccio. Git репозиторий: https://github.com/verdaccio/verdaccio.

Установка Verdaccio

Первым шагом является установка Verdaccio. Для этого используем команду npm i -g verdaccio. Эта команда установит Verdaccio глобально, что позволит нам запускать его из любого места в системе.

Настройка конфигурации Verdaccio

После установки Verdaccio, необходимо настроить его конфигурацию. Для этого откройте файл verdaccio/config.yaml в редакторе, например, с помощью команды nano /home/$USER/.config/verdaccio/config.yaml. Здесь вы можете настроить различные параметры, такие как порт, на котором будет слушать Verdaccio, и другие настройки безопасности.

Запуск Verdaccio

Когда конфигурация настроена, запустите Verdaccio с помощью команды verdaccio. Это запустит сервер на указанном порту.

Настройка клиента NPM для использования собственного репозитория

Теперь, когда Verdaccio запущен, необходимо настроить клиент NPM для использования вашего собственного репозитория. Для этого используйте команду npm set registry http://192.168.0.2:80, где 192.168.0.2:80 - это IP-адрес и порт, на котором слушает Verdaccio.

Создание пользователя в Verdaccio

Прежде чем вы сможете использовать ваш собственный репозиторий, вам нужно создать пользователя в Verdaccio. Используйте команду npm adduser --registry http://192.168.0.2:80. Вам будет предложено ввести имя пользователя, пароль и адрес электронной почты.

Авторизация в Verdaccio

Чтобы использовать ваш собственный репозиторий, вы должны авторизоваться в Verdaccio. Для этого используйте команду npm login, затем введите свой пароль и адрес электронной почты.

Проверка авторизации

Чтобы убедиться, что вы успешно авторизовались, используйте команду npm whoami. Она должна вернуть ваше имя пользователя.

Публикация пакетов

Теперь вы готовы публиковать пакеты в вашем собственном репозитории. Сначала клонируйте репозиторий с вашим пакетом с помощью команды git clone https://github.com/user/test-package. Затем перейдите в каталог пакета с помощью команды cd /root/test-package и опубликуйте его с помощью команды npm publish.

Настройка прокси

Если вы работаете через прокси, вам может потребоваться настроить прокси-сервер для NPM. Для этого используйте команду npm config edit и добавьте следующие строки:

proxy=http://name:pass@proxy:port/
https-proxy=http://name:pass@proxy:port/

где name - это имя пользователя, pass - это пароль, а proxy:port - это IP-адрес и порт вашего прокси-сервера.

Эти команды помогут вам установить, настроить и использовать собственный NPM-репозиторий с помощью Verdaccio.

Записки и мысли: Что такое инференс LLM и как его использовать

Добавил(а) Михаил Губин 3 месяца назад

Инференс LLM (Large Language Model) относится к способности искусственного интеллекта делать выводы на основе предоставленной информации. Это процесс, при котором LLM анализирует большой объем данных и использует свои алгоритмы для определения наиболее вероятного вывода или решения. Инференс LLM может использоваться для различных задач, включая генерацию текста, перевод, создание контента и поддержку диалога. Этот процесс основан на глубоком обучении и обработке естественного языка, что позволяет LLM понимать и обрабатывать сложные языковые конструкции.

Какие задачи можно решать с помощью инференса LLM?

Инференс LLM может использоваться для решения широкого спектра задач, включая:

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

  2. Перевод: LLM способны переводить тексты с одного языка на другой, учитывая контекст и семантику исходного текста.

  3. Поддержка диалога: LLM можно использовать для создания чат-ботов, способных вести осмысленный диалог с пользователем.

  4. Анализ настроений: LLM могут анализировать тексты и определять их эмоциональную окраску, что полезно для анализа отзывов или комментариев.

  5. Обработка естественного языка: LLM могут выполнять различные задачи обработки естественного языка, такие как классификация, аннотирование, разрешение конфликтов и другие.

  6. Распознавание изображений: LLM могут анализировать изображения и предоставлять описания или интерпретации, что может быть полезно для приложений компьютерного зрения.

  7. Стилизация текста: LLM могут стилизовать текст под определенный стиль или автора, что может быть использовано для создания художественных произведений или имитации речи известных личностей.

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

  9. Автоматическая проверка грамматики и орфографии: LLM могут обнаруживать и исправлять ошибки в текстах.

  10. Обнаружение плагиата: LLM можно использовать для обнаружения дублирующегося или скопированного контента.

Как инференс LLM может помочь в создании контента?

Инференс LLM может значительно упростить и ускорить процесс создания контента. Вот несколько способов, как это работает:

  1. Генерация идей: LLM могут предложить идеи для статей, рассказов или других видов контента, основываясь на заданной теме или контексте.

  2. Создание черновиков: LLM способны генерировать начальные варианты текстов, которые затем могут быть доработаны и отредактированы человеком.

  3. Улучшение качества текста: LLM могут анализировать существующий контент и предлагать улучшения, такие как изменение стиля, добавление деталей или исправление ошибок.

  4. Расширение объема текста: LLM могут дополнять тексты, добавляя дополнительную информацию или детали, чтобы сделать их более полными и информативными.

  5. Стилистическое разнообразие: LLM могут генерировать тексты в разных стилях, что позволяет создавать контент, адаптированный под разные аудитории.

  6. Многоязычный контент: LLM способны генерировать контент на нескольких языках, что может быть полезно для международных компаний или проектов.

  7. Автоматическое обновление контента: LLM можно использовать для автоматического обновления контента, например, путем добавления актуальных фактов или статистических данных.

  8. Оптимизация для SEO: LLM могут анализировать ключевые слова и фразы, чтобы помочь оптимизировать контент для поисковых систем.

Может ли инференс LLM использоваться для создания персонализированных рекомендаций?

Да, инференс LLM может использоваться для создания персонализированных рекомендаций. Вот как это работает:

  1. Анализ предпочтений пользователя: LLM могут анализировать данные о предыдущих действиях пользователя, таких как просмотренные товары, прочитанные статьи или прослушанная музыка, чтобы понять его интересы и предпочтения.

  2. Сравнение с данными других пользователей: LLM сравнивают данные о предпочтениях конкретного пользователя с данными других пользователей с похожими интересами, чтобы определить общие тенденции и рекомендации.

  3. Генерация рекомендаций: На основе полученных данных LLM генерируют персонализированные рекомендации, такие как предложения товаров, фильмов, музыки или статей, которые могут понравиться данному пользователю.

  4. Обучение на обратной связи: LLM обучаются на обратной связи от пользователя, улучшая точность своих рекомендаций со временем.

  5. Автоматическое обновление рекомендаций: LLM могут автоматически обновлять рекомендации, учитывая новые данные о поведении пользователя или изменения в его предпочтениях.

Какие алгоритмы используются в инференсе LLM?

В инференсе LLM используются различные алгоритмы, включая:

  1. Глубокое обучение: LLM основаны на глубоких нейронных сетях, которые обучаются на больших объемах данных, чтобы улавливать сложные закономерности и отношения между словами, предложениями и контекстом.

  2. Обработка естественного языка: LLM используют методы обработки естественного языка для анализа и понимания текста, включая синтаксический анализ, семантический анализ и генерацию текста.

  3. Трансформеры: Трансформерные модели, такие как BERT, GPT и Transformer, являются ключевыми компонентами многих современных LLM. Они используют самообучающиеся механизмы внимания для обработки последовательностей данных, что позволяет им эффективно обрабатывать длинные тексты и контекст.

  4. Сверточные нейронные сети: Некоторые LLM используют сверточные нейронные сети для обработки визуальной информации, такой как изображения или видео.

  5. Рекуррентные нейронные сети (RNN): RNN используются для обработки последовательных данных, таких как текст или аудио, и позволяют LLM учитывать контекст предыдущих элементов последовательности при обработке текущего элемента.

  6. Алгоритмы машинного обучения: LLM используют различные алгоритмы машинного обучения, такие как градиентный спуск, стохастический градиентный спуск и алгоритмы оптимизации, для обучения моделей на больших объемах данных.

  7. Методы аннотирования данных: Для обучения LLM часто используются методы аннотирования данных, такие как маркировка частей речи, семантическая разметка и генерация ответов на вопросы, чтобы предоставить модели контекст и информацию для обучения.

Эти алгоритмы работают вместе, чтобы позволить LLM понимать, анализировать и генерировать тексты на основе большого количества данных и контекста.

Записки и мысли: Как найти что-то в файловой системе Linux?

Добавил(а) Михаил Губин 3 месяца назад

В Linux есть несколько способов найти файлы или папки в файловой системе. Вот некоторые из них:

  1. Использование команды find:

    find / -name 'имя_файла'
    

    Эта команда ищет файл с именем 'имя_файла' во всей файловой системе, начиная с корневого каталога (/), и выводит список всех найденных файлов.

  2. Использование команды locate:

    locate имя_файла
    

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

  3. Использование команды grep:

    grep -R 'строка_поиска' .
    

    Эта команда ищет строку 'строка_поиска' в содержимом всех файлов текущего каталога и его подкаталогов.

  4. Использование графического интерфейса:
    В большинстве дистрибутивов Linux есть графические файловые менеджеры, такие как Nautilus в Ubuntu или Dolphin в KDE Plasma. Вы можете использовать их для поиска файлов и папок.

  5. Использование поисковой системы:
    Некоторые дистрибутивы Linux, такие как Fedora, используют поисковую систему для поиска файлов. Например, в Fedora вы можете ввести команду search в терминале для поиска файлов.

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

Записки и мысли: Как найти текст в файле по регулярному шаблону?

Добавил(а) Михаил Губин 3 месяца назад

В Bash можно использовать команду grep для поиска текста в файле по регулярному выражению. Вот пример команды:

grep -E 'регулярное_выражение' файл.txt

Здесь:

  • -E указывает, что используется расширенный синтаксис регулярных выражений (PCRE).
  • 'регулярное_выражение' - это само регулярное выражение, которое вы хотите применить к содержимому файла.
  • 'файл.txt' - это имя файла, который вы хотите просканировать.
    Если вы хотите найти все совпадения в файле, команда grep вернет строки, содержащие найденный текст. Если вы хотите найти только первое совпадение, добавьте ключ -m 1:
grep -m 1 -E 'регулярное_выражение' файл.txt

Этот ключ ограничивает поиск первым найденным совпадением.

Записки и мысли: Как в Linux проконтролировать приход почты?

Добавил(а) Михаил Губин 3 месяца назад

В Linux есть несколько способов контролировать приход почты на почтовые ящики. Один из них — использование утилиты watch для периодического выполнения команды mailq. Вот пример команды:

watch -n 60 'mailq'

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

Если вы хотите получать уведомления о новых сообщениях в реальном времени, вы можете использовать утилиту tail для мониторинга файла журнала почтового сервера. Например, если ваш почтовый сервер использует Postfix, вы можете мониторить файл /var/log/mail.log с помощью следующей команды:

tail -f /var/log/mail.log

Это позволит вам видеть все новые записи в журнале почтового сервера в реальном времени.

Записки и мысли: Проверяем файловую систему через Docker с ClamAV

Добавил(а) Михаил Губин 3 месяца назад

Да, это возможно. Вы можете использовать Docker для запуска ClamAV внутри контейнера и проверки файлов, которые находятся вне контейнера. Для этого вам нужно будет использовать механизм подмонтирования файловой системы хоста в контейнер.

Вот пример команды, которая создаст контейнер с ClamAV и подмонтирует каталог /mnt/data из хоста в контейнер:

docker run --name clamav-container -v /mnt/data:/data -d clamav

Здесь /mnt/data - это каталог на вашем хосте, который вы хотите проверить с помощью ClamAV. /data - это путь внутри контейнера, к которому будет подмонтирован этот каталог.

После того как контейнер запущен, вы можете проверить файлы в /mnt/data, используя команду clamscan внутри контейнера:

docker exec -it clamav-container clamscan -r /data

Этот скрипт проверит все файлы в /data и выдаст результаты сканирования.

Обратите внимание, что для работы с /dev/sda вам может потребоваться предоставить дополнительные привилегии контейнеру, так как /dev/sda обычно является устройством, которое требует специальных прав доступа.

(271-280/324)

Экспортировать в Atom