воскресенье, 21 марта 2021 г.

Проекты, интегрирующиеся с Let's Encrypt

 

Клиенты для получения Let's Encrypt

 Let's Encrypt использует протокол ACME для проверки того, что вы контролируете данное доменное имя, и для выдачи вам сертификата. Чтобы получить сертификат Let’s Encrypt, вам нужно выбрать клиентское программное обеспечение ACME для использования.

Процедура установки Certbot для Windows для получения сертификата от Let's Encrypt.

Certbot официально  доступен для Windows. Кроме  Certbot существует множество   других клиентов, написанных другими  разработчиками, которые вы можете использовать для получения сертификата от Let's Encrypt.

среда, 17 марта 2021 г.

относительно языка RUST

Rust - мультипарадигмальный компилируемый язык программирования общего назначения, сочетает парадигмы функционального и процедурного программирования с объектной системой, основанной на типажах. Управление памятью осуществляется через механизм «владения» с использованием аффинных типов, что позволяет обходиться без системы сборки мусора во время исполнения программы. Имеются средства, позволяющие использовать приёмы объектно-ориентированного программирования.

Ключевые приоритеты языка: безопасность, скорость и параллелизм. Rust пригоден для системного программирования, в частности, он рассматривается как перспективный язык для разработки ядер операционных систем. Rust сопоставим по скорости и возможностям с C++/Си, однако даёт большую безопасность при работе с памятью, что обеспечивается встроенными в язык механизмами контроля ссылок. Производительности программ на Rust способствует использование «абстракций с нулевой стоимостью».

Первая стабильная версия (1.0) вышла 15 мая 2015 года, после чего новые версии выходят раз в 6 недель. Для версий языка, вышедших после 1.0, заявлена обратная совместимость.

PHP реализация протокола telegram MTProto

 PHP реализация протокола telegram MTProto (лучше tg-cli) https://github.com/danog/MadelineProto

Простой пример кода:

<?php

if (!file_exists('madeline.php')) {
    copy('https://phar.madelineproto.xyz/madeline.php', 'madeline.php');
}
include 'madeline.php';

$MadelineProto = new \danog\MadelineProto\API('session.madeline');
$MadelineProto->start();

$me = $MadelineProto->get_self();

\danog\MadelineProto\Logger::log($me);

if (!$me['bot']) {
    $MadelineProto->messages->sendMessage(['peer' => '@danogentili', 'message' => "Hi!\nThanks for creating MadelineProto! <3"]);
    $MadelineProto->channels->joinChannel(['channel' => '@MadelineProto']);

    try {
        $MadelineProto->messages->importChatInvite(['hash' => 'https://t.me/joinchat/Bgrajz6K-aJKu0IpGsLpBg']);
    } catch (\danog\MadelineProto\RPCErrorException $e) {
    }

    $MadelineProto->messages->sendMessage(['peer' => 'https://t.me/joinchat/Bgrajz6K-aJKu0IpGsLpBg', 'message' => 'Testing MadelineProto!']);
}
echo 'OK, done!'.PHP_EOL;