Здесь хранятся мои старые заметки. Новые заметки находятся в разделе канала.

Избранное

Чистый блог в Телеграм

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

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

 26   2 мес   #щитпост

Тема «Умлаут» для Эгеи

Новая тема для «Эгеи».

О проекте

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

Убрал отвлекающие элементы, повесил логотип сверху и навёл порядок в мобильной версии.

Логотип

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

Позиционирование логотипа

Сначала я попробовал разместить логотип сбоку — но это выглядело так, будто я просто не знаю, как работает свойство margin.

Поэтому я решил закрепить логотип сверху и разрешить ему перемещаться вместе с прокруткой страницы:

Заметки на полях

Добавил «заметки на полях», чтобы можно было выносить туда какую-либо полезную информацию, не ссылаясь на неё в основном тексте:

В конце каждого поста социокнопки теперь не разноцветные, а монохромные, чтобы не отвлекало:

Итого

Редизайн занял полтора дня, чтобы учесть все нюансы и сохранить обратную совместимость со старыми постами из моего блога.

Результатом доволен.

Кейс: блог «#СашаПишет»

Незамысловатый блог для моей двоюродной сестры.

О проекте

Использовались Ghost CMS, Liebling, картинки из интернета, публикации сестры.

Цель — поднять простой блог для последующего использования его моей двоюродной сестрой.

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

Меньше мусора — меньше проблем

Шапка вместе с навигационным меню. В качестве логотипа и фавикона сайта — эмодзи сердечка от фейсбука:

Запиненные посты, к которым требуется привлечь особое внимание:

Обычные посты:

Итого

Один день, один домен и один довольный клиент — Саша.

Дорогая, я покупаю шрифты

Сегодня впервые приобрёл лицензию на использование шрифта.

Шрифт называется «Pulp Display». Вот такой:

По глифам очень сильно напоминает шрифт «Product Sans»:

Вблизи можно заметить, что это не точная реплика шрифта «Product Sans»:

К сожалению, «Product Sans» нельзя использовать в айдентике и логотипе, поэтому пришлось искать альтернативу.

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

Получился интересный креатив:

Уфа

Сейчас у меня отпуск: на прошлой неделе был в Уфе — решил погостить немного в городе у своей девушки. Остановился в апартаментах (рекомендую эти на букинге).

Хороший город, по темпу жизни (насколько успел разглядеть) на Москву совершенно не походит — скорее на Рязань. Впрочем, по сравнению с Рязанью на улицах города людей ощутимо больше — но не так много, как в Москве.

Относительно чистый воздух и красивые виды, урбанизация и приветливые люди — всё это есть в Уфе. Как и таблички с башкирским языком. Рәхим итегез!

В качестве бонуса к этой заметке прилагаются фотокарточки с видами Уфы.

Почему я использую Matrix вместо Telegram

Matrix — замечательный, но недооценённый децентрализованный протокол обмена сообщениями с прилагающимся к нему клиентом Element, который я считаю достойной и жизнеспособной альтернативой Telegram.

Рассказываю, почему я использую Matrix вместо Telegram, как присоединиться к сети Matrix и настроить свой сервер.

Итак, почему?

Я считаю, что протоколу Matrix нужна бо́льшая огласка: чем больше людей о нём узнает и начнёт его использовать — тем лучше как для протокола, так и для айти-тусовки.

Matrix — это открытый и децентрализованный протокол мгновенного обмена сообщениями, разрабатываемый энтузиастами из Matrix.org Foundation.

Спецификации протокола, равно как и клиент-серверная часть (Synapse как сервер и Element как клиент) находятся в открытом доступе — в отличие от Telegram, который в настоящее время в открытом доступе держит только свой клиент, что вызывает немало вопросов по поводу безопасности использования протокола MTProto.

У протокола Matrix существует полноценная реализация федерации, которая позволяет бесшовно общаться, организовывать общие комнаты для общения пользователям разных серверов, совершать видео- и аудиозвонки.

Клиент Element обладает всеми современными функциями, которые присущи другим популярным мессенджерам (за исключением голосовых сообщений).

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

  • Децентрализация — возможность поднять свой сервер для подключения к сети Matrix
  • Приватность — сквозное шифрование
  • Групповые аудио- и видеозвонки для пользователей с разных серверов
  • Отличное API для ботов
  • Полнофункциональный веб-клиент
  • Консольные клиенты

Почему не Jabber?

Потому что протокол XMPP переполнен многочисленными XEP-ами, которые так и не были никогда не реализованы во многих его клиентах. Например, до сих пор не существует ни одного Jabber-клиента c нормальной синхронизацией истории с сервером.

Почему не Signal?

Потому что Signal не поддерживает децентрализацию (в формате федерации).

Почему не Telegram?

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

Конечно, Telegram больше любят за его UI/UX — но Element на данный момент почти ничем не уступает Telegram: там есть и мосты, и комнаты, и боты, и даже стикеры — а вот людей относительно мало. К сожалению, проекту в действительности не хватает хорошего пиара.

Как подключиться к Matrix через чужой сервер

Это очень просто — просто используйте веб-клиент Element или его десктопную версию. Регистрация не займёт у вас больше минуты.

Как подключиться к Matrix через свой сервер

Для этого необходимо настроить свой HomeServer на Synapse — официальном сервере Matrix. Ниже я привёл инструкции, как это можно сделать.

Процесс настройки сервера Synapse мало чем отличается на разных дистрибутивах Linux — основное отличие заключается в том, какую команду необходимо отдать операционной системе, чтобы та поняла, какой пакетный менеджер нужно использовать для установки.

Я буду объяснять на примере дистрибутива Ubuntu Server 20.04.

Шаг 1. Установка сервера Synapse

Подготавливаем нашу рабочую среду к установке сервера Synapse:

sudo apt install -y lsb-release wget apt-transport-https
sudo wget -qO /usr/share/keyrings/matrix-org-archive-keyring.gpg https://packages.matrix.org/debian/matrix-org-archive-keyring.gpg
echo "deb [signed-by=/usr/share/keyrings/matrix-org-archive-keyring.gpg] https://packages.matrix.org/debian/ $(lsb_release -cs) main" |
    sudo tee /etc/apt/sources.list.d/matrix-org.list

Загружаем непосредственно сам Synapse:

sudo apt update
sudo apt install matrix-synapse-py3

В процессе установки пакета будет запрошено название доменного имени, на котором будет располагаться ваш сервер Synapse. Как правило, это домен вида matrix.example.com, где A-запись поддомена matrix указывает непосредственно на ваш сервер с запущенным Synapse.

После установщик спросит вас, хотите ли вы отправлять анонимную статистику разработчикам.

На этом установка сервера Synapse завершена. Теперь необходимо включить Synapse при загрузке операционной системы:

systemctl start matrix-synapse
systemctl enable matrix-synapse

Мы также можем убедиться, как идут дела у сервера и работает ли он в принципе:

systemctl status matrix-synapse
ss -plnt

Шаг 2. Настройка сервера Synapse

Используйте текстовый редактор (например, nano или vim) и откройте файл /etc/matrix-synapse/homeserver.yaml для редактирования.

Найдите строку listeners: и приведите секцию в следующий вид:

listeners:

  - port: 8008
    tls: false
    type: http
    x_forwarded: true
    bind_addresses: ['127.0.0.1']

    resources:
      - names: [client, federation]
        compress: false

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

enable_registration: false

Сгенерируйте случайную строку и поместите её в раздел registration_shared_secret:

registration_shared_secret: "…"

После сохранения файла с настройками не забудьте перезапустить Synapse:

systemctl restart matrix-synapse

Шаг 3. Настройка Let’s Encrypt

Сертификат необходим в том случае, если ваш сервер не находится за Cloudflare или другим подобным сервисом.

Для начала необходимо установить certbot — программу для выпуска сертификатов:

sudo apt install certbot -y

И выпустить сертификат для вашего доменного имени:

certbot certonly --rsa-key-size 2048 --standalone --agree-tos --no-eff-email --email [email protected] -d matrix.example.com

Готово. Ваш сертификат теперь находится по адресу /etc/letsencrypt/live/matrix.example.com/.

Шаг 4. Настройка Nginx в качестве Reverse Proxy

В этой конфигурации мы будем использовать 80 порт для незащищённого соединения, 443 — для защищённого и 8448 для подключения к федерации Matrix.

server {
    listen 80;
    server_name example.com;
    return 301 https://$host$request_uri;
}

server {
    listen 443 ssl;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    location /_matrix {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
        # Nginx by default only allows file uploads up to 1M in size
        # Increase client_max_body_size to match max_upload_size defined in homeserver.yaml
        client_max_body_size 10M;
    }
}

server {
    listen 8448 ssl;
    server_name example.com;

    ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

    location / {
        proxy_pass http://localhost:8008;
        proxy_set_header X-Forwarded-For $remote_addr;
    }
}

Не забудьте перезагрузить Nginx после внесения изменений в конфигурацию:

systemctl restart nginx

Шаг 5. Регистрация нового пользователя

Теперь зарегистрируйте нового пользователя, под которым вы будете заходить на сервер:

sudo register_new_matrix_user -c /etc/matrix-synapse/homeserver.yaml http://localhost:8008

Готово.

Мои поздравления, теперь вы — полноценный участник сети Matrix с собственным сервером.

Первый-первый, я второй! Как слышно? Приём!

Можете написать мне, если хотите проверить, правильно ли вы настроили сервер.

 180   4 мес   #лонгрид   #разборы

Как на меня подписаться

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

Кнопку с надписью «подписаться на блог» можно найти внутри любой заметки — просто нажмите на неё и оформите подписку на мой блог так, как вам удобно.

Вот, что вы увидите:

 137   4 мес  

О чем я теперь буду писать в этом блоге

Я думаю начать продвигать свой блог и писать здесь обзоры на последние события из мира информационных технологий.

Иногда буду разбирать различные интересные штуки — например, в черновиках лежит статья о том, как устроен принцип работы PGP.

 61   4 мес   #музыка

Электронная почта — это лучшее, что могло с нами случиться

Сегодня удалось выбить у VScale айпишник, который не светился в стоп-списках спама типа Sorbs — теперь могу позволить себе держать свой почтовый сервер. В заметке объясняю, почему это хорошо и почему вам следует задуматься над тем, чтобы тоже сделать это.

Интерфейс SOGo

Почта — это по-настоящему децентрализованное и доступное решение, которое реально работает.

Поднял свой сервер, настроил SPF, DKIM и DMARC — пользуйся! Для гиков можно прикрутить что-то вроде Mailvelope для поддержки шифрования содержимого писем прямо в браузере через PGP.

Изначально Интернет и задумывался как децентрализованное решение — впрочем, он и сейчас такой: никто не мешает вам поднять свой веб-сайт на выделенном айпишнике и радоваться жизни.

У этого, правда, есть свои нюансы — во-первых, вы рано или поздно на практике познакомитесь с децентрализованными атакими типа «отказ от обслуживания (DDoS), HTTP-флудингом и прочими прелестями self-hosted решений.

Не забудьте побеспокоиться о наличии резервной копии. Как говорится, люди делятся на четыре типа — те, кто не делает резервные копии, те, кто их делает, тех, кто их уже делает и тех, кто их уже делает и проверяет их работоспособность.

Де-децентрализация

Чаще всего люди не поднимают свои почтовые сервера, а используют чужие — от Яндекса, Гугла, Мейл.ру и иже с ними.

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

Бинго!
 41   4 мес   #интересное
Ранее Ctrl + ↓