Как стать автором
Поиск
Написать публикацию
Обновить
391.93

Open source *

Открытое программное обеспечение

Сначала показывать
Порог рейтинга

Совет по Joomla: показ уведомлений Joomla.renderMessages.

Пользователь совершает какие-то действия на сайте и получает сообщения об успешном или не успешном их результате, а также просто информационные сообщения. В php коде мы привыкли использовать для этого метод enqueueMessage():

use Joomla\CMS\Factory;

$html = 'Message';
Factory::getApplication()->enqueueMessage($html, 'warning');

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

use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;

Factory::getApplication()->enqueueMessage(Text::_('SOME_LANG_CONSTANT'), 'info');

Рендер сообщений Joomla во фронтенде.

Здесь нам потребуется файл подключённые файлы ядра core.js и messages.js. Немного выдержки из кода:

/**
* Рендер сообщений, отправленных через  JSON
* Используется некоторыми javascript, в частности validate.js
*
* @param   {object}  messages JavaScript объект, содержащий сообщения для рендера.
* Пример:
*    const messages = {
*        "message": ["Это будет зелёное сообщение", "И это тоже"],
*        "error": ["Это будет красное сообщение", "И это тоже"],
*        "info": ["Это будет синее сообщение", "И это тоже"],
*        "notice": ["Какое-то информационное сообщение", "И это тоже"],
*        "warning": ["Оранжевое сообщение", "И это тоже"],
*        "my_custom_type": ["Такое же как инфо-сообщение", "И это тоже"]
*    };
* @param  {string} selector CSS-селектор контейнера для рендера сообщений
* @param  {bool}   keepOld  Удалить предыдущие сообщения? Да, если true
* @param  {int}    timeout  Таймаут исчезновения сообщения в миллисекундах
* @return  void  Метод ничего не возвращает
*/

Вот как это выглядит на практике:

Joomla.renderMessages({
    message: [Joomla.Text._('COM_SWJPROJECTS_USER_KEYS_KEY_SUCCESSFULLY_COPYED')]
});

Теперь мы видим, что в качестве сообщения мы и в Javascript можем использовать языковые константы. Для этого мы используем метод Joomla.Text._() (по аналогии с Text::_() в PHP). Но Javascript откуда-то должен получить значения этих языковых констант. И для этого в php коде нашей страницы мы должны позаботиться о нём и добавить нужные для js языковые константы с помощью метода Text::script().

use Joomla\CMS\Language\Text;

Text::script('SOME_LANG_CONSTANT_SUCCESS');
Text::script('SOME_LANG_CONSTANT_FAIL');

Таким образом я смогу получить в js доступ к значениям языковых констант SOME_LANG_CONSTANT_SUCCESS и SOME_LANG_CONSTANT_FAIL.

Источник

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Наш backend developer Дмитрий делится Open Source-проектом, который поможет разработчикам Telegram Mini Apps (TMA) упростить валидацию Init Data — проверку, что HTTP-запрос действительно был отправлен из приложения в Telegram.

Дмитрий реализовал Python-пакет, в котором имплементировал алгоритмы, позволяющие проверять подлинность данных, передаваемых из Mini Apps. С ним можно легко реализовать механизм авторизации/аутентификации для Backend-части приложения.

👉 Забирайте репозиторий: https://github.com/swimmwatch/telegram-webapp-auth

Также у проекта есть документация, в которой описывается применение этой библиотеки с популярными веб-фреймворками: Django, FastAPI.

Когда мы начинали разрабатывать TMA, то столкнулись с недостатком информации, кейсов, спросить или подсмотреть было не у кого – не так много компаний, которые занимаются созданием мини эппов. Сегодня же мы успешно реализовали несколько Telegram Mini Apps, накопили ценный опыт и готовы делиться своими Open Source-проектами с сообществом разработчиков и вкладываться в развитие технологии. Подписывайтесь на наш телеграм-канал!

Если у вас есть идея Telegram Mini App, то Doubletapp поможет ее воплотить, подробнее о наших кейсах – на сайте.

Теги:
Всего голосов 4: ↑4 и ↓0+4
Комментарии0

Событие Pizza, Bugs & Fun приближается - 22 февраля 2025 года

Уже несколько лет в мире Joomla проводятся мероприятия "Pizza, Bugs & Fun" (#PBF), где каждый может посвятить несколько часов своего мозгового времени тому, чтобы наша любимая CMS стала ближе к идеалу.

Видео из этого поста рассказывает об организационных вопросах, которые пригодятся для участия в PBF:

  • как создать аккаунт в Mattermost (чат международного Joomla-сообщества)

  • как создать аккаунт в Joomla! Documentation

  • как написать статью в Joomla! Documentation

  • как создать аккаунт на GitHub (у разработчиков обычно уже он есть)

  • как настроить патч тестер

  • как протестировать патч

  • как получить вознаграждение

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

Каждый помогает тем, что он умеет:

  • кто-то пишет недостающую документацию,

  • кто-то пишет код,

  • кто-то тестирует как исправлены ошибки или сделан новый функционал.

На сайте события есть карта, можно "захостить" свою локацию. Практически все движки в мире развиваются за счёт спонсирующих их компаний. Joomla одна из немногих, где развитие идёт только усилиями международного сообщества энтузиастов.

На момент написания данного поста в репозитории Joomla 752 открытых Issue (как правило это баги) и 223 Pull request (PR, исправление багов и новый функционал). Все PR обязательно тестируются минимум двумя участниками сообщества, дабы в конечный код движка не проскочила ошибка.

Если каждый из участников только нашего сообщества сделает даже одно тестирование, то, боюсь, PR и Issue на всех не хватит 😀

Смотреть видео

Сайт

Joomla по-русски: чат сообщества

Теги:
Рейтинг0
Комментарии0

Совет по Joomla: программный рендер модулей

Модули порой удобно использовать в местах, которые в Joomla не всегда предназначены для этого 😀. Например, в переопределениях макета. Из материала делаем посадочную страницу: часть инфы находится в самом материале, часть - в полях, а часть удобно вывести модулем. При этом модуль этот должен находиться между телом материала и данными из пользовательских полей.

Для реализации берём в руки ModuleHelper и приступаем.

<?php
use \Joomla\CMS\Helper\ModuleHelper;

$modules = ModuleHelper::getModules('landing-masonry');
if(!empty($modules))
{
    foreach ($modules as $module)
    {
        // рендерим всё, что нашли в позиции landing-masonry
        echo ModuleHelper::renderModule($module);
    }
}

А что если посложнее?

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

Вид карточки товара JoomShopping. Все тексты, кроме описания товара - одинаковые во всех товарах. Описание товара уникальное для каждого товара.

Но! В этот же аккордеон нужно было добавить и описание товара JoomShopping. Поэтому я сделал с помощью своего модуля WT Quick links следующее.

  1. Создал модуль типа WT Quick Links, в котором в список элементов занёс все нужные тексты.

  2. Не стал назначать модуль какой-либо позиции. В шаблоне JoomShopping захардкодил id модуля. Хотя лучше было бы назначить модуль в некой уникальной позиции, которая встречалась бы только в нужном нам месте на сайте.

  3. Программным способом в данные модуля добавил нужные данные из JoomShopping так, как мне нужно (в начало списка - описание товара).

  4. Отрендерил модуль с помощью ModuleHelper в product_default.php шаблона JoomShopping.

<?php
use Joomla\CMS\Helper\ModuleHelper;
use Joomla\Registry\Registry;

// Модуль id 136 - Доставка, оплата и гарантии в карточку товара + ОПИСАНИЕ ТОВАРА JoomShopping
$module = ModuleHelper::getModuleById('136');

$module_params = new Registry($module->params);
// Формируем новые параметры модуля перед рендером. 
$new_module_params = [];
$i = 1;

// Помещаем описание товара в самое начало

if (!empty($this->product->description)){
    $new_module_params['fields']['fields0'] =  (object) [
        'item_header' => Text::_('JSHOP_DESCRIPTION'),
        'item_text'   => $this->product->description
    ];
}
// Переименовываем все остальные ключи массива элементов из модуля
foreach ($module_params->get('fields') as $key => $value)
{
    $new_module_params['fields']['fields' . $i] = $value;
    $i++;
}
$new_module_params = new Registry($new_module_params);
// Соединяем старые и новые параметры модуля.
$module_params->merge($new_module_params);

$module->params = $module_params->toString();

// Всё готово! Рендерим модуль.
echo ModuleHelper::renderModule($module);

Теги:
Всего голосов 3: ↑1 и ↓2+1
Комментарии0

Представлен открытый проект, который помогает создавать нейросети с нуля.

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

Решение содержит информацию как сделать ИИ‑спеца для различных задач, включая:

  • полную базу данных о популярных ИИ-моделях;

  • пошаговые инструкции для каждого этапа разработки своего ИИ;

  • гайд по файнтюнингу нейросетей, включая LoRA, подготовку данных и оценку производительности по бенчамаркам;

  • дистилляция моделей для снижения их размеров и повышения эффективности;

  • метрики работоспособности ИИ и необходимые фреймворки для тестов;

  • данные для удаленной тренировки моделей — AWS, Azure, GCP, Lambda с подробной документацией к каждой платформе;

  • инструменты для фильтрации данных для нейросетей и их цензурирования;

  • примеры готовых конфигураций.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Представлен открытый проект, который помогает создавать нейросети с нуля.

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

Решение содержит информацию как сделать ИИ‑спеца для различных задач, включая:

  • полную базу данных о популярных ИИ-моделях;

  • пошаговые инструкции для каждого этапа разработки своего ИИ;

  • гайд по файнтюнингу нейросетей, включая LoRA, подготовку данных и оценку производительности по бенчамаркам;

  • дистилляция моделей для снижения их размеров и повышения эффективности;

  • метрики работоспособности ИИ и необходимые фреймворки для тестов;

  • данные для удаленной тренировки моделей — AWS, Azure, GCP, Lambda с подробной документацией к каждой платформе;

  • инструменты для фильтрации данных для нейросетей и их цензурирования;

  • примеры готовых конфигураций.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Joomla Web Services Collection For Postman

Разработчикам мобильных и WEB-приложений (и не только) весьма и весьма пригодится готовая коллекция для Postman. В коллекцию добавлены endpoint для REST API Joomla, с параметрами и примерами запросов.

Коллекция составлена трудами французского Joomla-разработчика Alexandre J-S William ELISÉ.

Смотреть коллекцию

Чат русскоязычного Joomla-сообщества

Теги:
Рейтинг0
Комментарии0

Я разверну этот мониторинг «с трех нот»: система для инсталляций с десятками СХД

Инженеры YADRO включили в состав продукта TATLIN.SATELLITES интегрированное решение для мониторинга — система получила название Monitoring Appliance. Она включает в себя компоненты для сбора и хранения метрик со множества массивов, а также их визуализацию и алертинг.

Возможности Monitoring Appliance

Система мониторинга, разворачиваемая из Docker Compose, может: 

  • Собрать метрики производительности компонентов СХД по протоколу SNMP.

  • Принять и обработать SNMP traps от СХД.

  • Принять и обработать Syslog-сообщения от СХД.

  • Мониторить состояние сервера, на котором установлен Monitoring Appliance.

  • Отображать данные мониторинга в виде дашбордов.

  • Оповещать о внештатных ситуациях и пороговых состояниях.

Главная страница визуализации мониторинг. На ней отображаются основные метрики «здоровья» систем хранения данных, на которых хочет сфокусироваться пользователь. Можно выбрать нужную СХД и получить данные конкретно по ней. Также этот дашборд легко пересобрать, исходя из своих целей. 

Дашборд на главной странице
Дашборд на главной странице

Из чего состоит мониторинг и как его повторить, читайте по ссылке →

Теги:
Всего голосов 1: ↑1 и ↓0+2
Комментарии0

Совет по Joomla: метод debug() для отладки лейаутов

В Joomla есть понятие layout. Это кусочек вёрстки, который можно многажды использовать в любом месте сайта: как в панели администратора, так и во фронтенде. Можно рассматривать лейауты как оторванные от контекста элементы дизайна. Находятся они в папке layouts в корне сайта. Также, в случае с модулями они могут находиться в папке tmpl модуля. А в случае с плагинами - в tmpl плагина.

Их можно переопределять в шаблонах, в чём и заключается одна из главных фишек Joomla. Лейауты чаще всего рендерятся с помощью классов LayoutHelper или напрямую FileLayout. Писал о них ранее тут и тут.

А вот как увидеть какой именно файл переопределения используется? Сколько их вообще есть и по каким путям идёт поиск макетов? Для этого есть метод debug() (и у LayoutHelper и у FileLayout).

<?php
/**
* Method to render a layout with debug info
*
* @param   string  $layoutFile   Dot separated путь к файлу относитеьлно basePath
* @param   mixed   $displayData  Объект с данными для рендера
* @param   string  $basePath     Base path, где будет поиск файлов лейаутов
* @param   mixed   $options      Дополнительные опции для FileLayout
*
* @return  string
*
* @since   3.5
*/
public static function debug($layoutFile, $displayData = null, $basePath = '', $options = null)
{
 // Так проще показать параметры метода.
}

То есть мы в можем проверить следующим образом:

<?php
/**
 * Получаем параметры баннера
 */
$wt_custom_menu_item_banner = $menu->getParams()->get('wt_custom_menu_item_banner');

echo \Joomla\CMS\Layout\LayoutHelper::debug(
        ($wt_custom_menu_item_banner?->pluginlayout ?? 'default'),
        ['wt_custom_menu_item_banner' => $wt_custom_menu_item_banner],
        JPATH_SITE.'/plugins/system/wt_custom_menu_item_banner/tmpl'
    );

И увидим результат как на скриншоте в начале поста.

Чат русскоязычного Joomla-сообщества.

Теги:
Всего голосов 1: ↑0 и ↓1-1
Комментарии2

E-mail шаблоны Joomla 5: добавление и просмотр своих переменных

В Joomla 5 появились настраиваемые email-шаблоны, как системные, так и сторонних компонентов. Их нельзя (пока что) добавить самостоятельно, они добавляются расширениями при установке. Но их можно отредактировать в Система - Шаблоны - Шаблоны писем. В настройках шаблонов писем (кнопка настроек компонента в верхнем правом углу) мы выбираем формат писем текст или HTML. Тогда становятся доступны настройки макетов шаблонов писем Joomla. Эти глобальные параметры можно переопределить в каждом конкретном email-шаблоне. Таким образом для каждого из email-шаблонов можно указать свою вёрстку и настройки логотипа.
Это, конечно, требует отдельной подробной статьи...

Для разработчиков: как добавить свои переменные для e-mail шаблонов Joomla?

Полезны окажутся 2 триггера для плагинов: onMailBeforeTagsRendering и onMailBeforeRendering.

onMailBeforeRendering - триггер, который позволяет добавлять свои шорт-коды для строковой замены в плагине. Отдать туда надо массив вида [ variable_name => variable_value ]. Из админки свои переменные нужно добавлять уже с фигурными скобками: {variable_name} заменится на variable_value. Аргументом $event плагина является экземпляр класса BeforeRenderingMailTemplateEvent, в котором есть кроме прочих 2 метода: getTemplate() (получение объекта мейлера, куда можно добавлять свои данные) и getTemplateId() (получение id шаблона письма вида com_users.registration.admin.new_notification), по которому мы определяем нужный ли это для нас email-шаблон или нет. Аналогично контексту в контент-плагинах.

Также полезное свойство класса для передачи данных из плагина в лейаут письма для рендера - $layoutTemplateData. Это ассоциативный массив.

// Получаем текущий мейлер 
$mailTemplate = $event->getTemplate();
$data = [
   'variable_name' => 'variable_value'
];
// с Joomla 4 для всех типов писем. 2-й аргумент - plain - текстовый формат письма 
$mailTemplate->addTemplateData($data, false);
// с Joomla 5.2 - для HTML-писем
$mailTemplate->addLayoutTemplateData($data);

// пример из ядра Joomla
// Add additional data to the layout template
$this->addLayoutTemplateData([
    'siteName' => $app->get('sitename'),
    'lang'     => substr($this->language, 0, 2),
]);

onMailBeforeTagsRendering - триггер, который добавляет ваши переменные в список доступных переменных для замены в окне редактирования email шаблона Joomla. Отдать туда нужно массив с переменными, но без их значений.

Чат Joomla-сообщества в Telegram

Мой личный Telegram-канал

Теги:
Рейтинг0
Комментарии0

Алгоритм ПИД-регулирования является одним из самых часто используемых методов управления по причине его простоты, надежности и хорошей устойчивости. Однако при реализации этого алгоритма часто забывают или умалчивают о проблемах, которые могут возникать:

  • Время дискретизации не всегда может оказаться фиксированным

  • проблемы с дискретным дифференцированием

  • проблемы с дискретным интегрированием

Попробуем посмотреть, как обстоят дела с решением этих проблем при реализации в доступных open source проектах на гитхабе.

Топ 16 проектов на гитхабе с заявленной реализацией PID алгоритма

Топ выбирался по запросу PID в поиске гитхаба с опцией "best match"

Из 16 проектов 4 являются откровенным мусором, студенческой липой, иначе трудно объяснить такое количество звезд и форков.

GyverPID добавлена по причине относительно широкой известности в аудитории отечественных ардуинщиков.

Буду благодарен, если в комментах укажут другие достойные реализации PID регулятора

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии2

В конце прошлого года Группа Arenadata выпустила обновления ряда своих продуктов.

Новые релизы:

  • Arenadata DB (ADB) — v6.27.1.59;

  • Arenadata DB Backup Manager (ADBM) — v2.3.2;

  • Arenadata DB Control (ADBC) — v4.11.0;

  • Arenadata Streaming (ADS) — v3.6.2.2.b1;

  • Arenadata Catalog (ADC) — v0.8.0;

  • Arenadata Cluster Manager (ADCM) — v2.5.0.

Обновления компонентов Arenadata Cluster Manager (ADCM):

  • Arenadata Monitoring (ADM) — v4.1.0;

  • Arenadata Enterprise Tools (ADET) — v2024121800.

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

⛓ Текст обзора и ссылки на полное описание релизов здесь.

Теги:
Всего голосов 5: ↑4 и ↓1+3
Комментарии2

Учим английский и одновременно тренируем слепую печать на тренажере. Представлен бесплатный сервис, который поможет увеличить кодерскую продуктивность в разы и сэкономит рабочие часы:

  • В приложение загружен только программистский словарь — отлично подтянете профессиональный язык.

  • Множество упражнений для развития скорости печати.

  • Вам не дадут перейти на следующий уровень, пока идеально не завершите предыдущий — шикарная тренировка усидчивости.

  • Можно отслеживать скорость и ритмичность печати.

Теги:
Рейтинг0
Комментарии2

Ближайшие события

Полезные советы от разработчика OpenSearch Даниила Дубровкина из AWS.

Вы смотрели The IT Crowd? Это уморительный британский телевизионный ситком примерно 2006 года, в котором группа ИТ‑гениев работала в отделе технической поддержки Reynholm Industries в Лондоне. Один из характерных смешных моментов заключается в том, что каждый раз, когда звонил телефон, Рой брал трубку и, не дожидаясь ответа, спрашивал: «Вы его выключили и снова включили?», а затем вешал трубку. Я часто чувствую себя Роем, когда общаюсь с пользователями, сообщающими об ошибках в проектах с открытым исходным кодом, которые я поддерживаю.

Вот мой структурированный подход к любым ошибкам (багам, проблемам), о которых сообщают в моих проектах с открытым исходным кодом:

  1. Не исправляйте ошибку. Поскольку это проект с открытым исходным кодом, и мы не продаём программное обеспечение, у сопровождающих может быть некоторая социальная ответственность, но они не обязаны что‑либо делать.

  2. Не пытайтесь воспроизвести ошибку. Не уверены, что это ошибка? Не можете воспроизвести проблему? Вежливо запросите дополнительную информацию или разъяснения.

  3. Не пытайтесь написать тест, который докажет, что это ошибка. Попросите человека, сообщившего о проблеме, попытаться написать автоматизированный и провальный тест. Это поможет сузить круг проблем и гарантировать, что ошибка останется исправленной в будущем.

  4. Не исправляйте ошибку. Теперь, когда человек, сообщивший об ошибке, написал для неё автоматизированный тест, он так близок к её исправлению. Попросите его сделать это. Это дает человеку, сообщившему об ошибке, чувство причастности и вклада в проект.

  5. Не делайте ничего другого. Не можете получить никакого участия в устранении ошибки от человека, сообщившего о ней? Оставьте ошибку открытой. Кто‑то другой её подхватит.

tl;dr Не исправляйте ошибку! У здорового проекта с открытым исходным кодом будет много вовлечённых участников, особенно когда дело касается ошибок. Это один из самых простых плодов, которые вы можете собрать как сопровождающий. Тем не менее, иногда я просто хочу исправить ошибку сам, потому что это так интересно.

Теги:
Всего голосов 1: ↑1 и ↓0+2
Комментарии0

ИИ и Open Source — гремучая смесь?

На The Register вышла статья о том, что Python-разработчики завалены баг-репортами, которые придумал ИИ: это стало известно при анализе опенсорс-кода, который часто переиспользуется в сотнях проектов. Это не первая претензия к ИИ. Значит ли это, что он не подходит для разработки? Или всё же существуют способы, которые могут облегчить жизнь программистам, несмотря на его недостатки?

Практически у всех систем искусственного интеллекта, независимо от архитектуры — нейросети или другой тип ИИ — наблюдаются «галлюцинации». Это неверные ответы, которые ИИ непонятно каким образом генерирует. Одно дело, когда можно быстро проверить совет сервиса, а другое — если в сложной программе приходится потратить время, чтобы понять, есть ли ошибка.

Ранее исследователь ИБ сообщал, что галлюцинации ИИ, используемого для генерации технической документации, позволили ему внедрить в описание название фейковой библиотеки для распознавания лиц. Её скачали 15 000 раз: будь она создана хакером, тот мог бы вложить в нее практически любую функциональность.

Кажется, что ИИ в разработке преследуют проблемы, причём связаны они с опенсорсом. Это не так. Во-первых, опенсорс — на виду, проблемы в нем проще. И ещё важнее, что галлюцинации — это не порождение ChatGPT. Ещё годы назад галлюцинации преследовали ИИ, например, стрекоза иногда распознавалась как ружьё — ну что в них похожего?! Зато сейчас мало кто возьмётся соревноваться с ИИ в скорости и точности распознавания, может, и в разработке эти недочёты удастся решить.

Теги:
Всего голосов 13: ↑13 и ↓0+20
Комментарии0

🎉 Релиз MoonShine v3 админ панели для Laravel! 🎉

Друзья, у нас праздник!

10 декабря наконец-то зарелизили MoonShine v3 (open-source панели администратора для проектов на Laravel).

Кто не вкурсе, вот статьи:

Первый взгляд на MoonShine

MoonShine 2.0. Что нового?

Это было непросто. Пришлось отложить дату релиза, но зато успел всё сделать что запланировано. 🔥

Что было на стриме:

  • 🕰 Краткая история создания MoonShine — от первых шагов до сегодняшнего дня.

  • 🚀 Релиз на GitHub, деплой новой версии лендинга и документации.

  • 🛍 Демонстрация маркетплейса приложений для MoonShine

Обязательно посмотрите запись стрима! Вы не только узнаете больше о MoonShine, но и вдохновитесь на свои проекты.

🎥 Ссылка на стрим

Немного выдохну, и сделаю подробный разбор по возможностям MoonShine v3.

Сайт проекта - https://moonshine-laravel.com/

Чат в телеграм - https://t.me/moonshine_ru

#MoonShine #релиз #CutCode

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии0

Исследовал интернет и наткнулся на GitHub Unwrapped. Он на основе активности в GitHub создаёт видео, где можно увидеть часто используемые языки, часы спонтанной работы, звёзды и всё остальное. Достаточно ввести только имя профиля, чтобы получить видео. Код открыт.

Сделано с использованием Remotion — тоже с открытым кодом, которая позволяет автоматизировать создание видео на React в веб. Документация хорошая, но надо разбираться. Увидел это и решил, что круто, надо поделиться!

P.S. Моя активность в этом ролике, если кому-то будет интересно.

Теги:
Всего голосов 4: ↑3 и ↓1+3
Комментарии0

🤒 Оптимизация электропотребления в Linux

Как известно, на линухе работа с питанием хуже, чем на Windows. Особенно это критично для людей с ноутбуком, желающих продлить время жизни от батареи.

Рассмотрим 3 инструмента:

  1. Один из самых популярных — TLP

TLP (The Linux Power Management). Мощный инструмент, много гибких настроек для процессора, дисков, сетевых интерфейсов и т.д. Хорошая документация. TLP работает в фоновом режиме, после настройки все будет работать само. Существует удобный TLPUI, чтобы не менять конфиги руками. Автоматически переходит в режим экономии при подключении зарядки.

+ Много гибких параметров

+ Автоматическое адаптивное управление

+ Разные типы устройств

- Возможно, надо будет доп настраивать для некоторых систем (на моем Lenovo Ideapad например пришлось читать вот это, благо дока хорошая)

- Необходимость обновления (сомнительно)

  1. Самый эффективный — auto-cpufreq

Автоматически управляет частотой процессора исходя из нагрузки и состояния батареи. Якобы сильно эффективнее и лучше TLP. Может работать вместе с ним, хотя и не рекомендуется.

+ Простота использования — достаточно запустить и забыть

+ Интеграция с другими инструментами

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

- Может потребовать доп настройки

- Требует админских прав для работы (сомнительно)

  1. От корпорации зла — Power Profiles Daemon (ppd)

Power Profiles Daemon — три режима работы (производительность, сбалансированный, экономия), между которыми можно переключаться. По умолчанию во всех DE именно он находится в виджете "батарея". Сделан Red Hat.

+ Интеграция с системой

+ Поддержка различных профилей питания

+ Легкость использования через графический интерфейс

— Менее гибок, чем перечисленные выше

Я по итогу выбрал auto-cpufreq и tlp (только потому, что ограничивает заряд батареи)
Если вам есть что сказать, с удовольствием пообщаемся в комментах :)

Теги:
Всего голосов 10: ↑10 и ↓0+12
Комментарии1

Привет! Сегодня мы хотим представить программу для контрибьюторов Diplodoc — опенсорс-платформы Яндекса для создания документации в формате Docs as Code. Это ваш шанс внести значимый вклад в развитие платформы и получить классные призы за участие.

Мы предлагаем

Мы создали специальную подборку задач, которые вы можете решать, чтобы помочь нам улучшить платформу. Задачи доступны на разных уровнях сложности: easy, medium и hard. Это отличная возможность проявить себя, внести свой вклад в проект и получить заслуженные награды.

Вы получаете

За решение лёгких и средних задач мы подготовили стильный мерч Diplodoc. А за сложные задачи вы вдобавок получите промокод на использование ресурсов Yandex Cloud.

FAQ

Как выбрать задачу?

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

Как отправить решение?

Подготовьте PR с вашим решением. Наша команда проверит его. Если в итоге он будет принят, вы получите подарок.

Сколько задачек можно решить?

Сколько угодно, однако приз вы получите только за одно решение.

До какого числа действует программа?

Программа активна до конца января. Мы будем добавлять задачи, так что следите за обновлениями в нашем чате в Telegram!

Не упустите возможность внести свой вклад в будущее Diplodoc!

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Привет, Хабр!

Довольно часто на разных ресурсах попадаются посты в духе «Linux глазами пользователя Windows». Где обычно описывается, как же не привычно всё выглядит, насколько это сложный и травмирующий опыт для пользователя. О чувстве неполноценности нового опыта. Но что если мы посмотрим на этот процесс с обратной стороны.

Сам я перешёл на Linux ещё во времена, когда актуальной была Windows XP, и с тех пор не касался в домашнем использовании продукции Microsoft. И вот у меня в руках оказался ноутбук, на который необходимо заново поставить и настроить Windows 10.

Первая сложность, с которой я столкнулся,- это собственно создание загрузочной флешки. Когда мы создаём загрузочную флешку для установки дистрибутива Linux, то просто записываем дисковый образ, и готово. С Windows так не получится: всё начинается с того, что потребуется использовать специальное ПО, к примеру, WoeUSB.

После того как успешно установили ОС и компьютер включился мы попадаем в мир чистого GUI. Никаких менеджеров пакетов, только файлы с расширением «exe» и магазин приложений. Нельзя просто добавить репозиторий с нужной программой и потом установить её одной командой.

И таких аспектов, при взгляде с точки зрения пользователя Linux, найдётся множество. Нет разницы, пробуете вы перейти с Windows на Linux, или же решили перейти в обратную сторону с Linux на Windows, в любом случае вы столкнётесь с мучительным процессом отказа от привычного.

Теги:
Всего голосов 12: ↑9 и ↓3+11
Комментарии16

Вклад авторов