Сейчас каждая операционная система имеет разделение на пользовательский режим и режим ядра, в этой статье разбирается ядро Linux и его модули.
Следующая итерация Rust в Linux 6.2 возрождает споры о замене C на Rust

Интеграция Rust в Linux получила высокую оценку сообщества и разработчиков.
Одной из основные проблемы, возникшие при разработке ядра Linux в течение длительного времени, это идея найти идеального кандидата для смены языка программирования «C» для более современного, и до недавнего времени с появлением Rust эта идея не прекращалась.
С первым предварительным просмотром Rust на линукс 6.1, Поднимаю настроение большой части разработчиков из ядра, и Джонатан Корбет отмечает, что «в ядре по-прежнему будет недостаточно Rust, чтобы делать что-то интересное», включение этого языка вновь разожгло дебаты о необходимости отказа от языка C в пользу Rust с точки зрения системного программирования. Этот вопрос разделяет сообщество разработчиков.
Zulip 6 приходит с уведомлениями о прочтении, пометкой сообщений как непрочитанных и многим другим

Zulip — это приложение для командного чата с открытым исходным кодом, предназначенное для помощи людям в совместной работе.
Спустя чуть более 6 месяцев с момента последнего выпуска, анонсирован запуск новой версии Zulip 6, серверная платформа для реализации корпоративных мессенджеров, подходящая для организации общения между сотрудниками и командами разработки.
Система поддерживает прямые сообщения между двумя людьми и групповые обсуждения. Zulip можно сравнить с сервисом Slack и рассматривать как внутрикорпоративный аналог Twitter, который используется для общения и обсуждения рабочих вопросов в больших группах сотрудников.

WooCommerce – изображение по ссылке для внешних/партнёрских товаров
Для сайтов с большим количеством партнёрских товаров можно не загружать изображения на хостинг, а использовать фотографию по ссылке.
Плюс – экономим место на хостинге. Помните, что WordPress при загрузке изображения, создаёт от 3 и выше копий разных размеров. Это нужно для оптимизации загрузки изображений на различных страницах сайта. Используя внешнее изображение, вы не создаёте лишние копии.
Минус – адрес изображение со временем может измениться, поэтому нужно эту ситуацию отслеживать. Фото может быть удалено, переименовано, перенесено на другой адрес или по другим причинам.
Этапы работы:
- создаём произвольное поле, в котором будем хранить url изображения
- включаем сохранение информации в базу данных
- выводим изображение в карточке товара
- Добавим произвольное поле в “Данные о товаре” на вкладку “Основные”:
add_action( 'woocommerce_product_options_pricing', 'usota_add_to_products_external_image_url' );
function usota_add_to_products_external_image_url() {
woocommerce_wp_text_input( array(
'id' => '_external_image_url',
'class' => 'short',
'label' => 'Image URL',
'data_type' => 'url',
));
}

2. Включаем сохранение данных:
add_action( 'save_post_product', 'usota_save_external_image_url' );
function usota_save_external_image_url( $product_id ) {
global $typenow;
if ( 'product' === $typenow ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if ( isset( $_POST['_external_image_url'] ) ) {
update_post_meta( $product_id, '_external_image_url', $_POST['_external_image_url'] );
}
}
}
3. Выводим на странице товара. Также добавим Alt-текст для изображения.
add_filter( 'woocommerce_single_product_image_thumbnail_html', 'usota_public_image_external_image', 100, 2 );
function usota_public_image_external_image( $html, $post_thumbnail_id ) {
global $product;
if ( ! $product->is_type( 'external' ) ) return $html;
$external_image_url = get_post_meta( $product->get_id(), '_external_image_url', true );
if ( $external_image_url ) {
$alt_text = $product->get_title();
$html = '<div class="woocommerce-product-gallery__image--placeholder">';
$html .= sprintf( '<img src="%s" alt="%s" class="wp-post-image" />', esc_url( $external_image_url ), $alt_text );
$html .= '</div>';
} else {
$html = '<div class="woocommerce-product-gallery__image--placeholder">';
$html .= sprintf( '<img src="%s" alt="%s" class="wp-post-image" />', esc_url( wc_placeholder_img_src( 'woocommerce_single' ) ), esc_html__( 'Awaiting product image', 'woocommerce' ) );
$html .= '</div>';
}
return $html;
}
Конечно, это не закроет полностью вопрос по изображению для внешнего/партнёрского товара. Нам по-прежнему нужна миниатюра, чтобы показывать товар в категории, в админке или на других страницах сайта.
Но можно загрузить только уменьшенную копию. Этого будет достаточно, чтобы товары смотрелись красиво, но и фотографии много места не занимали.
Весь код полностью, чтобы сразу добавить в functions.php
/**
* Выводим изображение в карточке товара по внешнией ссылке
* для внешних/партнёрских товаров
*/
// Добавляем произвольное поле external_image_url в данные о товаре
add_action( 'woocommerce_product_options_pricing', 'usota_add_to_products_external_image_url' );
function usota_add_to_products_external_image_url() {
woocommerce_wp_text_input( array(
'id' => '_external_image_url',
'class' => 'short',
'label' => 'Image URL',
'data_type' => 'url',
));
}
// Сохраняем произвольное поле external_image_url
add_action( 'save_post_product', 'usota_save_external_image_url' );
function usota_save_external_image_url( $product_id ) {
global $typenow;
if ( 'product' === $typenow ) {
if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
if ( isset( $_POST['_external_image_url'] ) ) {
update_post_meta( $product_id, '_external_image_url', $_POST['_external_image_url'] );
}
}
}
// Выводим external_image_url в карточке товара на месте изображения товара
add_filter( 'woocommerce_single_product_image_thumbnail_html', 'usota_public_image_external_image', 100, 2 );
function usota_public_image_external_image( $html, $post_thumbnail_id ) {
global $product;
if ( ! $product->is_type( 'external' ) ) return $html;
$external_image_url = get_post_meta( $product->get_id(), '_external_image_url', true );
if ( $external_image_url ) {
$alt_text = $product->get_title();
$html = '<div class="woocommerce-product-gallery__image--placeholder">';
$html .= sprintf( '<img src="%s" alt="%s" class="wp-post-image" />', esc_url( $external_image_url ), $alt_text );
$html .= '</div>';
} else {
$html = '<div class="woocommerce-product-gallery__image--placeholder">';
$html .= sprintf( '<img src="%s" alt="%s" class="wp-post-image" />', esc_url( wc_placeholder_img_src( 'woocommerce_single' ) ), esc_html__( 'Awaiting product image', 'woocommerce' ) );
$html .= '</div>';
}
return $html;
}
Сообщение WooCommerce – изображение по ссылке для внешних/партнёрских товаров появились сначала на Веб-студия Юсота.
Source: usota.ru woocommerce
Решено: Python не находит модуль или пакет на VPS
Запускаешь скрипт на локальной машине – всё работает. Переносишь проект на VPS – выдаёт ошибку ModuleNotFoundError: No module named ‘app’. Ошибка возникает, потому что интерпретатор не находит модуль в системе.
Для решения этой проблемы нужно указать полный путь к проекту:
import os
import sys
sys.path.append(os.path.abspath("../.."))
Как проверить, что путь указан верно? Напечатаем:
print(os.path.abspath("../.."))
В результате мы должны получить полный путь к нашему проекту в системе.
Сообщение Решено: Python не находит модуль или пакет на VPS появились сначала на Веб-студия Юсота.
Source: usota.ru python
Какое программное обеспечение лучшее для шифрования?

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