
Я посвящу этой теме целый пост, потому что она «не помещается в окно Овертона»; чтобы люди хотя бы начали понимать, что я пытаюсь описать, мне обычно приходится показывать видео, которое я выложил под катом.
Шелл и компания
Я посвящу этой теме целый пост, потому что она «не помещается в окно Овертона»; чтобы люди хотя бы начали понимать, что я пытаюсь описать, мне обычно приходится показывать видео, которое я выложил под катом.
LoRA (Low-Rank Adaptation) – это вспомогательная модель, основное назначение которой заключается в ускорении обработки запросов (prompt) от пользователя и вычислений при генерации тех или иных специальных объектов на изображении.
Другими словами, когда мы с вами используем модель FLUХ.1, а нам надо детально прорисовать на нашем изображении руки или фигуру человека, мы используем дополнительно вспомогательную модель LoRA, которая выполняет только одну определенную ей задачу.
Также различные модели LoRA используют для усиления стилизации изображений. Например, если нам надо нарисовать персонажа в стиле одного из известных мультфильмов, то существует большое количество соответствующих специальных моделей LoRA.
Особенность моделей LoRA заключается в том, что они в несколько раз меньше по объему, чем основные модели, которые мы используем, и поэтому они работают значительно быстрее основных при выполнении специализированных задач.
Как мы с вами усвоили из прошлого урока, основная задача функции Hires.fix – не увеличение разрешения изображения, а улучшение качества мелких деталей финального изображения без изменения композиции.
Важно отметить, Hires.fix работает более эффективно, если с улучшением деталей вы одновременно увеличиваете разрешение изображения.
Но у Hires.fix есть и некоторые скрытые возможности, которые могут помочь изменить какую-то важную деталь нашего исходного изображения.
Давайте узнаем, как нам это сделать.
Для этого:
· Переходим на закладку «Settings».
· Находим слева в списке раздел «UI alternatives».
· Выбираем две опции: «Hires fix: show hires checkpoint and sampler selection (requires Reload UI)» и «Hires fix: show hires prompt and negative prompt (requires Reload UI)».
· Применяем настройки.
· Перезагружаем интерфейс.
На предыдущем уроке мы с вами создали, сохранили и улучшили наше первое изображение из запроса «smiling cyberpunk cat in purple bowler hat with blue cyber eye sitting in cafe drinking coffee, photorealistic, perfect composition, cinematic shot, intricate details, hyper detail, cool color palette, muted colors, very detailed, sharp focus». При этом мы с вами не рассматривали функциональное назначение и не использовали другие параметры генерации изображения, которые находятся слева на закладке Txt2img/Generation пользовательского интерфейса, как показано на рисунке ниже:
Ранее, я уже писал статью о различных способах, которые мне приходилось использовать для чтения логов, и к какому решению в итоге пришел. Хотя прошло не так много времени, с тех пор приложение не переставало развиваться. Узнав о том, что на Хабре проходит сезон Open source, мне показалось это отличным поводом подчеркнуть, что именно стало причиной для создания данного инструмента, а также рассказать немного подробнее про основные и новые функции.
Существует достаточно много решений для локального и удаленного чтения и сбора логов с различных систем, но некоторые из них могут быть сложны в своей конфигурации и достаточно тяжеловесные для мониторинга одного или двух микросервисов, особенно, если не стоит вопрос удаленного хранения логов. У меня есть небольшой проект, который в процессе своей работы пишет логи, по этому на примере него расскажу, какие решения для их чтения использовал, и к чему в итоге пришел.
Большое количество специалистов в области IT используют переводчики текста в своей работе, и я тому не исключение. Достаточно часто в вакансиях Системного администратора можно встретить требуемый навык - "чтение технической документации на английском языке", но, не всегда такая документация может быть очевидной в полной мере, даже имея базовый уровень английского языка, и как мне кажется, тут нечему стесняется. Для перевода текста чаще всего используется браузер, а также десктопные приложения, я же расскажу про альтернативу таким решениям, для перевода текста прямо в консоли Linux или Windows.
Недавно состоялся долгожданный публичный релиз Astra Linux 1.8. Новая версия получила много полезных и важных изменений под капотом, что однозначно облегчит жизнь системным администраторам, инженерам и специалистам по ИБ.
Однако, я был удивлен тем, что в сети начало появляться много статей (в том числе на хабре), где обо всех нововведениях упоминается вскользь. И если про изменения внутрянки понятно почему — трудно научно-популярно рассказать, то вот статьи о «Новых обоях от Роскосмоса» и «Новой светлой теме» лично меня удивили отсутствием погружения в изменения пользовательского опыта.
Попользовавшись новой версией Астры несколько недель, я решил написать свой обзор, где расскажу про важные изменения в UX базовых функций ОС для всех категорий пользователей (то есть даже не для супер-админов).
Ctrl+A
для перехода к началу строки (или Ctrl+E
для перехода в конец — я использовала вместо этого Home
/End
).Язык разметки JSON используется в огромном количестве приложений и систем благодаря своей простоте, а также является стандартным форматом обмена данными между клиентом и сервером в RESTful API. Многие приложения и системы предоставляют интерфейс удаленного управления, который может использоваться как для получения информации (например, для передачи данных в систему мониторинга), так и для управления этой системой через другое приложение или скрипты. В данной статье на примере работы с одним сервисом через API
разберемся, как обрабатывать данными в формате JSON через утилиту jq
, а также расскажу про другие инструменты.
После публикации статьи «TOTP без смартфона» она получила много интересных и полезных комментариев. Я решил подождать, пока обсуждение затихнет и провести работу над замечаниями и высказанными мыслями.
Поскольку объём работы оказался достаточно большой, то оформил её в виде отдельной публикации-послесловия.
Если вы достаточно часто работаете в командной оболочке/терминале — это значит, что со временем история команд станет вашим личным хранилищем знаний, вашим справочником по командам и по документации. Возможность эффективно пользоваться этим личным хранилищем полезной информации может сильно повысить продуктивность вашего труда. Поэтому представляю вашему вниманию несколько советов относительно того, как оптимизировать настройки истории оболочки и как пользоваться этим инструментом на полную мощность.
Когда я решил избавиться от необходимости постоянно носить с собой смартфон, одной из проблем оказалась двухфакторная аутентификация (2FA, приложение Google Authenticator). Остаться без возможности авторизации на множестве сервисов было неприемлемо, нужна была альтернатива.
Беглый поиск вывел меня на утилиту oathtool
: командная строка, POSIX, OSS — всё, как я люблю, проблема в принципе решена. Но, как и большинство CLI утилит, её удобно использовать в сочетании с другими утилитами, а для этого полезно написать скриптовую обвязку. Собственно этой обвязкой, а также опытом использования, я и решил поделиться.
Несколько недель назад я занимался хаком языковых серверов в Zed, пытаясь заставить Zed определять, когда заданный бинарник языкового сервера, например gopls
, уже присутствует в $PATH
. Если так, вместо загрузки нового бинарника Zed должен использовать его.
Трудность: часто $PATH
динамически изменяется такими инструментами, как direnv
, asdf
, mise
и другими, которые позволяют в данной папке установить определённый $PATH
. Почему эти инструменты так делают? Потому что это даёт возможность, скажем, в начале $PATH
добавить ./my_custom_binaries
, пока вы находитесь в my-cool-project
. Поэтому нельзя просто использовать $PATH
, связанный с процессом Zed, нужен $PATH
, как он есть, когда выполняется cd
в каталог проекта.
Легко, подумал я. Просто запусти $SHELL
, выполни cd
в проект, чтобы запустить direnv
и всё такое, запусти env
, сохрани окружение, выбери $PATH
, найди в нём бинарники. И это было легко. Вот часть кода, та часть, которая запускает $SHELL
, cd
и получает env
:
fn load_shell_environment(dir: &Path) -> Result<HashMap<String, String>> {
// Получает $SHELL
let shell = std::env::var("SHELL")?;
// Конструирует команду, которую хочется выполнить в $SHELL
let command = format!("cd {:?}; /usr/bin/env -0;", dir);
// Запускает $SHELL как интерактивную оболочку (чтобы использовались файлы пользователя rc).
// и выполняет `command`:
let output = std::process::Command::new(&shell)
.args(["-i", "-c", &command])
.output()?;
// [... проверка кода выхода, получение stdout, превращение stdout в HashMap и т. д. ...]
}
За исключением одного: после запуска экземпляра Zed в терминале, который выполнял эту функцию, я больше не мог убить Zed, нажав Ctrl-C
.
Всем привет. Вы меня не знаете — и хорошо. В этой небольшой статье я поделюсь с вами своей историей о том, как я своему старому ноутбуку продлил жизнь минимум ещё на годик-два. Несмотря на то, что таких статей на Хабре — вагон и маленькая тележка, кому интересно — welcome!
Всем привет! Ранее рассказывал о том, как создать REST API и Web-сервер на PowerShell для Windows, а также упоминал, что подобный сервер будет работать и в системе Linux, благодаря кроссплатформенной версии PowerShell Core. Безусловно, для подобных целей лучше используются специализированные серверные фреймворки или библиотеки, такие как Flask
или Django
в Python
, но меня не покидала идея реализации похожего сервера, где описание логики будет производиться на языке одного только Bash. Приведу примеры, с помощью которых можно создать такой сервер используя сетевые сокеты netcat
, socat
и ncat
, а также веб-сервера Apache
с использованием встроенных модулей.
Всем привет! Порой, написать графическую форму для консольного приложения может оказаться очень удобным решением, тем самым не нужно запоминать все ключи программы, особенно, если пользоваться им приходится изредка, тем самым автоматизируя работу с данным приложением в дальнейшем. Но, ситуация может быть обратной, когда приложение имеет только графический интерфейс, а вам нужно получить вывод его работы в консоли, например, для возможности передачи метрик в систему мониторинга. С тех пор как начал проводить все больше времени в консоли, заметил, что становится менее удобно переключаться на ранее привычные инструменты, лишний раз использовать мышь, держать открытыми излишние приложения или вкладки в браузере, особенно, если работаешь на удаленной машине без прямого доступа к графическому интерфейсу. У меня накопилась небольшая коллекция полезных модулей, большинство из которых написаны совсем недавно, успел привыкнуть при регулярном использовании и хотелось бы ими поделиться. Осознавая, что тенденция ухода Windows систем на территории РФ растет, тем не менее думаю еще очень много людей, кто так же как и я продолжают использовать данную систему и автоматизировать свою работу, возможно, представленные модули так же смогут пригодятся. Все модули опубликованы в репозитории на GitHub и менеджере пакетов Nuget, откуда их можно установить одной командой.
Для эффективной работы любой операционной системы необходимо вести мониторинг ее состояния, для того, чтобы своевременно выявлять проблемы и узкие места в производительности. Еще лучше лучше, когда такой мониторинг ведется в автоматическом режиме, с помощью скриптов.
В операционных системах семейства Windows для автоматизации выполнения задач мониторинга лучше всего использовать Powershell. И далее в этой статье мы рассмотрим несколько полезных скриптов, которые могут упростить мониторинг состояния различных компонентов ОС.
Начнем с мониторинга состояния сетевых портов и взаимодействующих с ними процессов.
Внимание! Статья несёт исключительно информативный характер. Подобные действия преследуются по закону!
Привет! Сегодня хотелось бы рассмотреть стандартный, но необычный способ закрепления в системе через RDP, используя utilman.exe.
Представим следующую ситуацию: нам удалось получить reverse shell от целевого хоста. Безусловно, нам необходим backdoor для обеспечения постоянного доступа. В процессе сканирования мы узнаем об открытом 3389 порте. И как нам быть?