Архив автора: admin

Zulip 6 приходит с уведомлениями о прочтении, пометкой сообщений как непрочитанных и многим другим

зулип

Zulip — это приложение для командного чата с открытым исходным кодом, предназначенное для помощи людям в совместной работе.

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

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



Читать

WooCommerce – изображение по ссылке для внешних/партнёрских товаров

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

Плюс – экономим место на хостинге. Помните, что WordPress при загрузке изображения, создаёт от 3 и выше копий разных размеров. Это нужно для оптимизации загрузки изображений на различных страницах сайта. Используя внешнее изображение, вы не создаёте лишние копии.

Минус – адрес изображение со временем может измениться, поэтому нужно эту ситуацию отслеживать. Фото может быть удалено, переименовано, перенесено на другой адрес или по другим причинам.

Этапы работы:

  • создаём произвольное поле, в котором будем хранить url изображения
  • включаем сохранение информации в базу данных
  • выводим изображение в карточке товара
  1. Добавим произвольное поле в “Данные о товаре” на вкладку “Основные”:
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

Как исправить проблему отсутствия сигнала HDMI в Windows 10

Ошибка «Windows 10 HDMI нет проблемы с сигналом» указывает на то, что второе устройство подключено через кабель HDMI, но не отображает дисплей. Это происходит из-за того, что подключенное устройство не получает никаких входных данных от выбранного источника. Другими причинами могут быть неправильное подключение кабеля HDMI, неактуальные графические драйверы или проблемы с аппаратным обеспечением. О конкретной ошибке сообщали различные пользователи Windows на дискуссионных форумах. Эта проблема может быть решена с помощью различных методов.

Эта статья направлена ​​​​на устранение ошибки «Проблема отсутствия сигнала HDMI в Windows 10» с помощью практической демонстрации.

Как решить проблему «Нет сигнала HDMI в Windows 10»?

Вот исправления, которые можно использовать для устранения указанной ошибки:

  • Снова подключите кабель HDMI
  • Исправление настроек дисплея
  • Обновите графический драйвер
  • Запустите средство устранения неполадок оборудования

Давайте рассмотрим каждый из методов один за другим:

Исправление 1: повторно подключите кабель HDMI

Иногда кабель HDMI подключен неправильно. Что приводит к тому, что подключенное устройство не отображает экран. В этом случае правильно подключите кабель HDMI. После этого перезапустите Windows и посмотрите, решена ли проблема.

Исправление 2: Исправление настроек дисплея

Проверьте, установлен ли выходной экран дисплея на «Только экран ПК». Если выбран «Только экран ПК», то вы, вероятно, не увидите сигнала на втором экране монитора. В таком случае установите экран вывода в режим «Дублировать» или «Расширенный». По этой причине нажмите клавишу «Windows+P», чтобы открыть экран вывода/отображения, и выберите «Дублировать»:

Проверьте, решена ли проблема отсутствия сигнала. Выберите опцию «Продлить», если опция «Дублировать» не устранила указанную проблему.

Исправление 3: обновить графический драйвер

Поскольку это ошибка, связанная с графикой, давайте попробуем обновить графический драйвер, чтобы исправить указанную ошибку. По этой причине сначала откройте «Диспетчер устройств» в меню «Пуск» Windows:

Разверните раздел «Сетевые адаптеры». Найдите сетевой драйвер, щелкните его правой кнопкой мыши и выберите «Обновить драйвер»:

Это запустит окно обновления драйверов.

Щелкните левой кнопкой мыши на «Автоматический поиск обновленного программного обеспечения драйвера»:

Диспетчер устройств начал проверять наличие обновлений:

Как видите, графический драйвер начал обновляться:

После завершения процесса загрузки процесс установки начнется автоматически:

Весь процесс займет некоторое время, чтобы установить/обновить графические драйверы:

Графический драйвер успешно обновлен.

Исправление 4: Запустите средство устранения неполадок оборудования

Запустите средство устранения неполадок оборудования, чтобы исправить проблемы, связанные с оборудованием. По этой причине, прежде всего, откройте окно «Выполнить», нажав клавишу «Windows+R». Введите «msdt.exe -id DeviceDiagnostic» в поле и нажмите кнопку «ОК»:

Это запустит средство устранения неполадок оборудования. Нажмите кнопку «Далее», чтобы начать устранение неполадок оборудования:

Как видите, устранение неполадок оборудования началось:

После устранения неполадок с оборудованием перезапустите Windows.

Вывод

Ошибку «Windows 10 HDMI нет проблемы с сигналом» можно исправить несколькими способами. Эти методы включают повторное подключение кабеля HDMI, исправление выходного дисплея, обновление графического драйвера или устранение неполадок оборудования. В этом блоге продемонстрировано несколько способов решения проблемы отсутствия сигнала HDMI.



2022-11-17T01:45:52
Вопросы читателей

Является ли VPN-сервис бесплатным и доступным инструментом в 2022 году

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

Например, Китай: эта страна уже давно запретила доступ к большому количеству иностранных веб-сайтов и приложений в пределах своих границ. Одним из примеров является Facebook, а также гигантский поиск Google. На самом деле, использование VPN — это всего лишь один инструмент, который может обойти эти ограничения, страна сделала использование всех VPN незаконным, за исключением одобренных правительством поставщиков услуг. Излишне говорить, что обычно это местные поставщики услуг, отчитывающиеся перед правительством. Согласно информации и истории Интернета в Китае, которая также подробно описаназдесь 12 лет назад, а именно в 2008 году, в Китае был заблокирован крупный видеохостинг Youtube. Затем это затронуло Twitter, Facebook и сервисы Google – Google Docs, Google Calendar, Google Drive и Google.com сами были заблокированы. В 2014 году пользователи перестали получать доступ к Instagram.

Официальная версия властей заключается в том, что все эти ресурсы распространяют информацию, нежелательную для граждан Китая. Именно тогда людям нужно обойти блокировку и пользоваться Интернетом, пусть и в обход ограничений. Согласно рассказам и описаниям сотрудников компаний, которые решили временно переехать в Китай, после небольшой адаптации к стране быстро поняли, что бесплатный интернет — это миф. Фактически, каждая страна и каждый регион имеют свой собственный брандмауэр: почти везде сеть так или иначе контролируется. Чтобы чувствовать себя свободнее, вам нужно знать определенный набор серверов и понимать, какие ресурсы доступны в конкретной стране. Это работа, которую берет на себя бесплатный VPN-сервис.

Процесс блокировки VPN-сервиса сегодня очень болезненный для многих пользователей сети. Это немедленно закрывает доступ к этому контенту, и по этой причине многие пользователи приобретают VPN-сервис.

Процесс блокировки обусловлен многими способами:

  • Порты, которые используются обычными протоколами VPN-туннелирования, такими как PPTP или L2TP, для установления соединений и передачи данных, могут быть закрыты системными администраторами, чтобы предотвратить их использование в определенных сетях;
  • Аналогичным образом, служба может запретить доступ, блокируя доступ с IP-адресов и диапазонов IP-адресов, которые, как известно, принадлежат провайдерам VPN;
  • Известно, что некоторые правительства блокируют весь доступ к иностранным IP-адресам, поскольку использование VPN может включать подключение к удаленным хостам, которые не находятся под юрисдикцией этого правительства.

 

Бесплатный VPN – быстро и безопасно: freevpnplanet.com — Полностью бесплатный ВПН сервис без ограничений по трафику и скорости. Для подключения не требуется регистрация и ввод личных данных.

Когда мы говорим о новых технологиях, о развитии Интернета и о свободе слова, не все страны постоянно сталкиваются с такими понятиями. Например, только около 22% пользователей из таких стран, как Россия, получат доступ к VPN-сервису в 2020 году. По данным Times, 24 миллиона россиян использовали VPN в мае 2022 года по сравнению с 1,6 миллионами в феврале того же года. Это связано с массовой блокировкой внутренних контент-провайдеров. А большое количество людей, активно пользующихся VPN-сервисами, показывает, что люди хотят получать доступ к контенту и иметь свободу передвижения в Интернете. Основной целью сервиса, по мнению многих пользователей, является перенаправление или обход интернет-соединения через серверы в различных частях земного шара. С целью изменения местоположения пользователя и, таким образом, обхода защиты с помощью GEO, или адрес определенного ресурса от провайдеров, или от целевого ресурса. Согласно статистике, более половины пользователей по всему миру (а если быть точным, 51%) пользователей во всем мире использовали VPN-сервисы.



2022-11-16T17:14:11
Сети

Python — как читать большие XML файлы при ограничении оперативной памяти

Рассмотрим на конкретном примере, как обработать большой каталог книг в формате XML размером 3 Гб.

Задача: скачать каталог по ссылке https://www.litres.ru/static/ds/detailed_data.xml.gz и узнать количество книг в каталоге.

Пример структуры полного каталога книг Литрес в формате XML
Пример структуры полного каталога книг Литрес в формате XML

Читать