Iriscot Blog

Блог Игоря Iriscot Емельянова об информационных технологиях и многом другом.

О протоколе Matrix и self-hosted мессенджерах

На протяжении всего этого лета я пользовался мессенджером Riot, чей сервер я установил себе на хост, как раз когда он вышел из беты и стал готов к использованию. В этой статье я хотел бы рассказать вам о протоколе [matrix] и его клиенте Riot, поделиться опытом использования и дать немного статистики. Также затрону тему self-hosted мессенджеров в целом и каково это держать свой сервер.

Что есть что?

[matrix] logo

[matrix] — это протокол обмена сообщениями. Помимо текстовых сообщений через него можно пересылать документы, картинки, звонить и т. д.

Сервер (homeserver) — удаленный хост, на котором установлено ПО, реализующее протокол Matrix, например, Synapse. Там хранятся ваши сообщения, их вложения и учетная запись. Matrix предлагает свой homeserver — matrix.org, который можно использовать для ознакомления. При желании можно найти другой сервер или создать свой. Имя пользователя будет выглядеть так: @login:server.com. Серверы могут связываться между собой, образуя тем самым федерацию, так что можно спокойно писать пользователю, который зарегистрирован на matrix.org, в то время как сами вы находитесь на matrix.iriscot.org!

Иллюстрация федерации
Иллюстрация федерации. Здесь в сети находятся три пользователя, каждый на своем сервере.

Клиент — программа на компьютере или телефоне конечного пользователя. Через нее устройство связывается с сервером, а пользователь пишет сообщения. Самый популярный клиент матрицы на данный момент — Riot, его мы и рассмотрим в этой статье.

Комната — место, где общаются пользователи. Иными словами, это чат. Может содержать от одного до бесконечности участников. Адреса комнат начинаются с символа #.

Группа (community) — тематическое объединение пользователей и комнат. Адрес начинается с символа +.

В чем профит?

Конечно же, есть более удобные сервисы, тот же Telegram, но есть и нюансы. Во-первых, неизвестно что происходит с вашими сообщениями на сервере, кто их читает и кому их сливают. Во-вторых, большинство мессенджеров привязываются к номеру телефона, что в свою очередь добавляет как минимум две уязвимости: злоумышленники могут перевыпустить вашу сим-карту и без задней мысли войти в аккаунт. Также номер телефона могут сопоставить с аккаунтом в мессенджере, и наоборот. За примерами далеко ходить не надо.

Matrix решает эти проблемы: номер телефона при регистрации необязателен, можно вообще использовать только логин и пароль, а сервер у вас может быть собственный.

Выгодно отличают Matrix от других Open Source решений простота установки и обслуживания. Также доставляет синхронизация ключей в зашифрованных комнатах, то есть вы можете пересесть с одного устройства на другое и все равно будете видеть все сообщения. В прямом конкуренте Jabber такой фичи нет, по крайней мере на момент использования его мной.

Безопасность

Matrix использует алгоритмы Двойного Храповика Olm и Megolm, основанные на AES и SHA2. Эти шифры изначально были разработаны в Signal, а доработаны в Matrix, чтобы поддерживать шифрование сразу на тысячи устройств одновременно.

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

Боты и IoT

Matrix предоставляет хороший SDK для любой платформы, что позволяет не только написать свой клиент, а еще и реализовать ботов наподобие тех, что есть в Telegram, а также использовать протокол Matrix для интернета вещей.

Мосты

Самая вкусная фича — это мосты (bridges). С их помощью можно собрать в одном месте все свои чаты и общаться с пользователями разных мессенджеров. Собственно поэтому Matrix именно так и назван, ведь он объединяет много разных сервисов в одну матрицу.

Официально поддерживаются Slack, IRC, XMPP и Gitter. Сообществом разработаны мосты в Telegram, Discord, WhatsApp, Facebook, Hangouts, Signal, VK, SMS, Instagram и много других.

Более подробно смотрите здесь.

Клиент Riot.im

Если вы обычный пользователь, первое на что вы будете смотреть — это клиент. Вот так выглядит Riot.im:

на десктопе
на телефоне

Комната со скриншотов: #ru.matrix:matrix.org.

Возможности программы:

Текстовые сообщения. Здесь все стандартно, отметить можно лишь форматирование сообщений с помощью Markdown или визуального редактора, кому как удобно.

Markdown форматирование

Картинки можно отправлять из памяти устройства, камеры или буфера обмена. Единственное, что может встать на вашем пути — лимит на загрузку на сервере. Мобильный клиент Riot умеет сжимать картинки, что очень удобно.

Голосовые сообщения и аудио файлы. Голосовые сообщения доступны только на мобильном клиенте. По сути он просто запускает приложение диктофона и отправляет записанный файл. Также можно отправить любой аудио файл и он отобразится в виде плеера.

Видео. То же самое, что с аудио файлами.

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

Звонки. Аудио- и видео-звонки реализованы через WebRTC. В отсутствие TURN-сервера идут напрямую, что неизбежно взаимно палит IP-адрес собеседников, но здесь уже надо понимать разницу между анонимностью и приватностью.

Оконечное шифрование. Riot реализует поддержку алгоритмов Olm и Megolm, а также резервное копирование ключей.

Стикеры. Так, погодите радоваться. Реализованы они через сервер интеграции, и очень вероятно, что не будут работать, если у вас self-hosted сервер. На официальном сервере не проверял.

Виджеты. То же самое, что и со стикерами.

Говоря о перспективах развития Riot, уже сейчас разрабатывается RiotX — полная переработка Riot на Android с нормальным дизайном. Попробовать можно в Google Play.

О self-hosted чатах в целом

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

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

Те же, кто принял на себя такую ответственность, будут награждены уютным и безопасным мессенджером.

Статистика сервера

В течение двух месяцев я со своим ассистентом тестировали мой сервер каждый день, ни в чем себе не отказывая: были и картинки и голосовые сообщения, в общем полноценное общение. По прошествии указанного времени мой сервер стал весить 343 Мб, из которых 264 Мб составляют медиа-файлы. Проведя несложный расчет, станет ясно, что сервер с каждым днем отъедает в среднем 5.7 Мб, а значит через год будет весить примерно 2 гигабайта. Напомню, что это только для одного чата на двоих пользователей. Выводы оставляю на вас. Что касается остальных ресурсов, в первую очередь обращаем внимание на RAM, поскольку Synapse туда много чего кэширует.

В итоге

Я считаю, что Matrix станет хорошим средством для обеспечения конфиденциальности, в том числе для среднестатистического пользователя. Шифрование и возможность использования собственного сервера увеличивает безопасность вашего общения.

Если вы решили начать использовать матрицу, и не знаете, кому написать, пишите мне на @iriscot:matrix.iriscot.org :).

Hexgears GK707 — обзор и моддинг механической клавиатуры

Пришла мне наконец-то новая клавиатура Hexgears GK707. Пишу эту заметку прямо с неё.

Обзор

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

Клавиатура имеет 87 клавиш, то есть нумпада здесь нет, что, однако, позволяет сэкономить место на столе.

Кейкапы сделаны из ABS пластика двойной отливки; сверху матовые, по бокам глянцевые. Лично мне такое решение не нравится — глянцевый пластик ассоциируется с чем-то старым. Буквы и символы сделаны прозрачными и светятся, а вот дополнительные макросы-функции нанесены гравировкой.

Над стрелками расположились три светодиода: Caps Lock, Scroll Lock и... я так и не понял, для чего нужен третий, он светит постоянно.

Нет, серьезно, это же нумпад...

Подсветка здесь только белая (хотя в инструкции написано про RGB), имеет множество режимов, также можно менять яркость и скорость эффектов.

https://iriscot.tumblr.com/post/186044775778

Одной из особенностей клавиатуры является съемная накладка. Без нее клавиатура превращается в skeleton.

В этой модели доступно на выбор три вида переключателей Kailh Box: красный, коричневый и белый. Я выбрал с коричневым, ибо надоело щелканье.

Следует отметить еще одну особенность рассматриваемой клавиатуры — можно снять переключатели. Они вставляются в специальные сокеты, так что ничего паять не надо. За прозрачными переключателями прячется белый SMD светодиод.

На фото ниже плата с обратной стороны. Промазана лаком с завода.

И как же мы обойдемся без записи тайпинга. Это как клавиатура звучит из коробки:

Небольшой апгрейд

Что ж, теперь настало время немного прокачать нашу клавиатуру. Для этого нам пригодятся следующие вещи: вата, тонкая кисть, силиконовая смазка, пуллер для свичей и отвертки.

Для начала снимаем все кейкапы. Дальше по идее надо снять свичи, но... Я снял один и передумал. Вынимаются они очень трудно, к тому же можно легко повредить его корпус и/или контакты. Впрочем, они не помешают выкрутить винты.

Добравшись внутрь, видим такую картину:

Слишком много пустого пространства, в котором гуляет звук от клавиш. Пусть его поглощает вата!

На фото я затолкал слишком много ваты, пришлось убирать лишнее. Обратите внимание, что в закрытом корпусе кабель будет лежать не так, как в открытом. Закручиваем назад винты и приступаем к смазке. Я смазывал только стабилизаторы, особо кропотливые могут смазать и сами свичи, для этого их надо разобрать, гайдов полно на YT.

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

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

Это еще не все улучшения, которые я планирую для этой клавиатуры. Скоро закажу радужные PBT кейкапы и поставлю резиновые кольца. Пост обновлю.

Li-Ion аккумуляторы — Doing it wrong

Недавно я приобрел себе новый смартфон. Настроив его и немного поюзав, на нем остался заряд, и я подумал: «стоит ли разрядить его полностью для калибровки?». Тогда я и решил написать эту статью, в которой я не только отвечу на свой же вопрос, а еще и дам советы по эффективному и безопасному использованию Li-Ion аккумуляторов.

Собственно, сабж.

Литий-ионные (или, теперь уже чаще встречающиеся, литий-полимерные) аккумуляторы прочно вошли в нашу жизнь. Они есть в подавляющем большинстве устройств, имеющих автономное питание. Но этой технологии предшествовала другая — Ni-Cd или никель-кадмиевые аккумуляторы. Особенностью их являлся «эффект памяти», это когда аккумулятор надо полностью разряжать и полностью заряжать всегда, в противном случае он теряет емкость. Такие аккумуляторы на данный момент вымерли чуть более, чем полностью, однако, оставили за собой ряд мифов, крепко засевших в сознании многих людей. Так как же правильно обращаться с литиевыми элементами питания?

Когда аккумулятор новый

Если вы купили новое устройство, нет необходимости полностью разряжать аккумулятор. Он за вас уже откалиброван на заводе. Но если уж очень хочется, разрядите до 10-20% и после зарядите до 100% без перерывов.

Повседневное использование

Литиевые аккумуляторы имеют ограниченное количество циклов заряда/разряда — около 1000. Так что, если есть возможность, подключайте зарядное устройство. Не нужно ждать, пока аккумулятор полностью разрядится, от этого он быстро потеряет емкость. А вот поддержание полного заряда не вредит аккумулятору.
Никогда не заряжайте аккумулятор на морозе. Разрядка на морозе не вредит аккумулятору, хоть и разрядится он быстрее. Перегрева тоже допускать нельзя — можно даже фейерверк устроить. Рабочие температуры аккумулятора: от —40°C до +50°C.

Как хранить?

Если вы собираетесь долго не использовать литиевый аккумулятор, его нужно зарядить до 60-70% (именно поэтому телефоны из коробки уже имеют заряд) и отключить от устройства. Не кладите аккумулятор в холодильник, это не банка пеппера, ему там делать нечего. Коррозия, возникающая в результате процессов микроконденсации снаружи и внутри аккумулятора убьют его.

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

Онлайн-радио на Liquidsoap и Icecast

На одном из эфиров на Iriscot Radio меня попросили рассказать о том, как сделать своё собственное онлайн-радио. Что ж, я и расскажу и покажу, как это делается.

Что понадобится?

На хосте:

  1. Браузер
  2. SSH-клиент
  3. FTP-клиент
  4. Текстовый редактор

На сервере (подойдет любой Linux-сервер)

  1. FTP-доступ (я использую vsftpd. Мануал по настройке есть на сайте Ubuntu)
  2. Права администратора

Итак, для начала немного теории. Сердцем онлайн-радио является Liquidsoap (a.k.a. «жидкое мыло»). Именно эта программа читает аудио-файлы, формирует из них поток и выдаёт в эфир. Icecast, в свою очередь, дополнительная прослойка, позволяющая смотреть статистику по потокам и блокировать слушателей. Мы рассмотрим конфигурации как с использованием Icecast, так и без него.

Приступим к настройке сервера.
Установим нужные пакеты:

sudo apt install liquidsoap icecast2

Нам предложат настроить пароли для Icecast. Отвечаем утвердительно и решительно.

Имя узла: оставляем localhost;
Пароль к источникам: ставим любой и запоминаем. Я поставил «pwned»;
Пароль к релею: ставим любой, запоминать необязательно;
Административный пароль: ставим удобный для себя пароль, чтобы заходить в веб-интерфейс.

Теперь надо подготовить папку для радио. Я создал папку «onlineradio» в домашней директории. Вы можете выбрать для неё любое место. Внутри папки также создана папка «music» для хранения музыки, которую мы будем крутить на радио. Эта папка может быть отдельно от радио, я создал всё в одном месте для удобства. Сразу загружаем туда нужную нам музыку.

Настало время конфига. Создаем файл «radio.conf» (имя может быть любым) и начинаем заполнять.

Логгирование

Если хотите, можете не добавлять эту часть кода.

set("log.stdout", true)  # вывод в консоль 
set("log.level", 3)  # уровень логгирования - 3
set("log.file.path","radio.log")  # дополнительно вывод в файл

Кодировка

Устанавливаем кодировку тегов в UTF-8, чтобы избежать кракозябр.

set("tag.encodings",["UTF-8"])

Первоначальный поток

music = mksafe(audio_to_stereo(playlist(reload=1, reload_mode="rounds", mode="randomize", "./music/")))

Разложим по полочкам всё вышенаписанное.
playlist() — создаёт плейлист с музыкой из папки music, находящейся в одной папке с конфигом. reload_mode=«rounds» — обеспечивает равномерность треков при рандоме. mode=«randomize» — собственно, сам рандом (normal — по порядку). reload=1 — перезагружает плейлист каждую секунду;
audio_to_stereo() — конвертирует полученный поток в формат стерео;
mksafe() — делает поток infaillible, добавляя тишину, когда ничего не играет.

Кстати, пару слов о видах потоках. В Liquidsoap их два:
faillible — когда поток может оборваться в любой момент. Например, если это поток из студии во время прямого эфира — ведущий может в любой момент отключиться от эфира;
infaillible — когда поток не обрывается. Как в примере выше, это может быть проигрывание локальных ресурсов.

У нас получился поток music. Дальше мы можем работать с ним — навешивать дополнительные примочки или выводить в эфир.

Делаем приятно ушам

Мне очень нравится перекрестное затухание, я использую его даже в аудиоплеерах. Добавим его и на радио.

music = crossfade(start_next=2.,fade_out=3.,fade_in=1.,music)

start_next — длительность эффекта;
fade_out, fade_in — длительности затухания заканчивающегося и следующего треков соответственно.

ON AIR!

Как уже писалось, решить проблему вывода потока в эфир можно двумя способами. Рассмотрим простейший способ без Icecast, с использованием harbour.

output.harbor(%mp3.vbr,
port = 1337, encoding = "UTF-8",
mount = "radio-live", music)

%mp3.vbr — задаем кодирование в MP3 с переменным битрейтом;
port — можете выбрать любой;
encoding — как обычно, только UTF-8;
mount — точка монтирования. По сути являет собой путь на сервере, по которому будет доступен поток;
music — поток для вывода.

Запускаем сервер

cd ~/onlineradio
liquidsoap /path/to/radio.conf

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

Готово! Открываем в браузере адрес http://[адрес сервера]:[порт]/[точка монтирования] и слушаем результат.

Казалось бы, на этом можно остановиться, но мы-то заслуживаем большего...

Настройка Icecast

Внесем некоторые изменения в конфигурационный файл /etc/icecast2/icecast.xml.

sudo nano /etc/icecast2/icecast.xml

В самом начале можете прописать справочную информацию о сервере — место нахождения и почта админа:

<location>Earth</location>
    <admin>[email protected]</admin>

В разделе <authentication> можно поменять пароли, или подсмотреть их, если забыли.

И, самое главное здесь — <port> в <listen-socket>. Это порт, на котором будет работать Icecast. Пропишем там тоже 1337 для аутентичности.

Сохраняем и выходим из редактора. Чтобы изменения конфига вступили в силу, нужен перезапуск Icecast:

sudo service icecast2 restart

Теперь поменяем в основном конфиге (radio.conf) вывод на Icecast. Удаляем последнюю секцию, связанную с harbour и вместо неё пишем:

output.icecast(%mp3.vbr,
description="Iriscot Radio",
genre="Вичуха",
url="https://radio.iriscot.org/",
host="localhost", port=1337, password="pwned",
mount="radio-live", music)

Как видите, здесь уже больше простора: можно указать описание потока, жанры музыки, и ссылку на страницу, где можно послушать это всё. host — это адрес, на котором крутится Icecast. В данном случае он у нас на той же машине, что и жидкое мыло. port — то, что мы прописывали выше, password — пароль к источникам. Все остальное идентично harbor’у.

Запускаем радио, открываем в браузере тот же адрес, что и раньше. Играет? Отлично, но это не всё. В соседней вкладке открываем этот же адрес, но без точки монтирования (корневой) и сразу же попадаем в веб-интерфейс:

Здесь можно посмотреть, что сейчас играет на сервере и сколько людей его слушают. В разделе Administration (логин — admin, пароль — указали на этапе установки) можно посмотреть более детальную информацию о сервере, посмотреть список слушателей, переместить их, забанить, а также отключить источник. Штука довольно удобная и в основном используется как API для получения текущего трека средствами того же PHP, например.

Более удобный запуск радио

liquidsoap /path/to/radio.conf >> /dev/null &

Эта команда запускает радио в фоновом режиме, а все сообщения выводятся в мусорку /dev/null. В терминал при этом выведется номер процесса. Такую строку можно также вставить в скрипт автозагрузки.

Чтобы завершить процесс радио сначала ищем номер процесса (или вспоминаем число, которое нам дали при запуске):

ps aux | grep liquidsoap

Затем завершаем его:

kill [номер]

Что дальше?

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

Почему мы откладываем дела на потом

Лежал я в кровати, собирался уже спать, но перед сном же надо обдумать глобальные и не очень проблемы, проанализировать произошедшее за день, ну вы понимаете. А ещё можно распланировать ближайшее будущее. И вот, запланировав парочку дел на завтра-послезавтра я почувствовал приятное чувство «уюта». Я поймал себя на этом и решил рассмотреть подробнее.
Моя теория такова: когда мы что-то отложили на будущее, оно переходит в наши планы. То есть, наше будущее становится распланированным так или иначе. Ощущение этого создает чувство вроде уюта, не знаю, как описать. Запланированное действие может быть выполнено, а может быть не выполнено, но какая уже разница? Мы все равно будем откладывать дела на потом, потому что так нам комфортнее.
Это наталкивает на мысль о том, что это не баг, а фича, ведь организм устроен так, что полезные для него явления поощряются нервной системой.

2019   теория

С новым 2019 годом!

Вот и подошел к концу 2018. За этот год случилось реально многое. Заслужили мы этого? Давайте кратко пройдемся по всем значимым событиям.
Год начался с возобновления работы форума Zero BBS. Спасибо @silverfork за помощь в подготовке агитационной пасты.
Весной наши с вами добродеятели пытались заблокировать телегу. Конец немного предсказуем. Из-за этого шатало совершенно непричастные сервисы.
В течение года я выпустил много новых проектов, таких как amnesia, онлайн-радио, прокси для голосовух и разных других.
Уровень социализации пошел вверх, я больше всего гулял в этом году, да что там, даже эфир на радио провел вчера, целых два часа, шутки что ли.
Но теперь всё. Пора закрывать книгу под названием 2018 и где-то там на полке лежит 2019, надо бы начать писать понемногу.

Если сравнивать два прошлых года, по моей версии:

А пока остались считанные часы до НАЧАЛА, хочу пожелать вам счастья и добра в новом году. Люблю вас, котаны.

надеюсь в новом году всё будет так же хорошо, как и с сервером
prokladka228

Proton — долгожданная фича от Valve

Помните времена, когда приходилось настраивать Wine (a.k.a. винишко), чтобы поиграть в свои любимые игрища, будучи на Линуксе? Я в своем блоге даже пару раз писал об этом. Так вот, это в прошлом.
Valve готовит Proton — технология, которая позволит играть в Windows-игры на Линуксе прямо через Стим. То есть, больше никаких эмуляторов, виртуальных машин и т. п. Все, как говорится, из-коробки.

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

Учитывая факт, что Valve активно поддерживает разработку Wine, Proton будет иметь преимущества по сравнению с обычным запуском через винишко, в том числе:

  • Поддержка DirectX 11 и 12, основанная на Vulkan — улучшит совместимость, уменьшит лаги;
  • Улучшена поддержка полного экрана: игры будут растягиваться до родного разрешения монитора, а не менять его;
  • Будут определяться все игровые контроллеры;
  • Увеличена производительность многопоточных игр по сравнению с ванильным винишком.

На данный момент технология поддерживает не все игры. Вот их список на данный момент:

  • Beat Saber
  • Bejeweled 2 Deluxe
  • Doki Doki Literature Club! (да! самая главная игра поддерживается!)
  • DOOM
  • DOOM II: Hell on Earth
  • DOOM VFR
  • Fallout Shelter
  • FATE
  • FINAL FANTASY VI
  • Geometry Dash
  • Google Earth VR
  • Into The Breach
  • Magic: The Gathering — Duels of the Planeswalkers 2012
  • Magic: The Gathering — Duels of the Planeswalkers 2013
  • Mount & Blade
  • Mount & Blade: With Fire & Sword
  • NieR: Automata
  • PAYDAY: The Heist
  • QUAKE
  • S.T.A.L.K.E.R.: Shadow of Chernobyl
  • Star Wars: Battlefront 2
  • Tekken 7
  • The Last Remnant
  • Tropico 4
  • Ultimate Doom
  • Warhammer® 40,000: Dawn of War® — Dark Crusade
  • Warhammer® 40,000: Dawn of War® — Soulstorm

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

После этого Стим перезагрузится и можно будет скачать игру из списка:

Что ж, ждем дальнейшего развития этой технологии, чтобы играть во все игры.

Три года моему блогу

Вчера моему блогу исполнилось ровно три года. По иронии так вышло, что именно в этот день я потерял свой домен iriscot.cf. Впрочем, вскоре после этого я обрел новый домен, и я считаю, что это даже хорошо. Он более солидно выглядит и вообще. Есть только одно «но» — я потерял рейтинг в поисковых системах, да и вообще те, кто у себя оставлял ссылки на меня думают, что мой сайт лёг навсегда. Это, конечно, не так, мой сайт целиком и полностью работает, только на новом домене. Такие дела.
В честь трехлетия блога, я решил порадовать его и установил ему обновление. Не обновлял до этого ни разу. В комплекте шло много тем оформления и я выбрал Дуглас. Такая темно-красная, приятная глазу тема. Ведь иногда надо что-то менять в жизни. Она мне настолько понравилась, что я просто открываю блог и залипаю. Думаю, это поспособствует написанию большего количества статей, чем раньше.
Кстати, я прошелся по всем статьям и навёл порядок в тегах — там были английские вперемешку с русскими. Сделал все русскими и добавил парочку новых. Теперь у меня можно легко найти заметки на интересующую вас тему.
Этот день рождения мой сайт запомнит уж точно.

Пара лайфхаков по Windows 10

Понадобилось мне как-то поставить десятку на виртуальную машину. И заметил я одну интересную вещь... В этой статье будет сразу два лайфхака (вдруг кто не знал) на случай, если вы вдруг решите установить Windows 10. Нет, ну, в жизни всякое бывает, даже такое.
Лайфхак первый: десяткой можно пользоваться совершенно бесплатно. Да, просто скачиваете образ и ставите. Будут некоторые ограничения в плане персонализации и какие-то еще, не помню, но на работу программ это никак не влияет. И все это полностью легитимно.
А теперь второй лайфхак непосредственно о персонализации. В неактивированной системе вы не сможете ставить обои на рабочий стол, менять цвета и т. д.. Однако, есть одна багофича. Если перед установкой выдернуть сетевой кабель, то когда свежая система загрузится, она будет думать, что полностью активирована. Соответственно, мы просто кидаем на диск пак с нашей вайфу (на флешке или через Drag&Drop) и устанавливаем на фон. По вкусу настраиваем все остальное и втыкаем сеть. Винда очухается и поймет, что не активирована, но будет уже поздно...

Результат работы

Правда, теперь мы не можем поменять фон, но я могу предложить несколько путей решения. Я сам их не пробовал, потому что первый мне пришел в голову уже после подключения сети, а для второго нет желания приобретать программу.
Первый способ: создаем папку, кидаем туда картинки, в Персонализации ставим Слайд-шоу и показываем путь к папке. Можно будет потом в эту папку кидать другие картинки.
Второй способ: использовать Wallpaper Engine. Погуглите в стиме.
А вообще, ребята, используйте лучше Linux. Там намного проще можно поменять обои :)
Пишите в комментарии, получилось ли у вас обмануть систему.

Ревизор по английскому в Сочи

Отдыхаю в Сочи, решил, пока есть возможность, проверить работников РЖД на знание английского — приобрести билет на электричку. Давно хотел это сделать, на самом деле. Недавно как раз прошёл футбол, по идее ещё не должны были скиллы растерять.
Подошел к кассе, говорю: «three one-way tickets to Khosta, please». Кассир сначала немного растеривается, затем говорит: «210 рублей»... И как я, заморский гость, должен понять эти сложные русские числительные? Решил не подавать вида и дал купюры. На листике бумаги кассир пишет время отправления и номер путей, показывает мне со словами: «time... track...». Потом отдаёт мне билеты, перед этим показав мне, что все так, как я просил.
В общем, английская локализация в РЖД реализована на очень базовом уровне. Конечно, при сильном желании можно купить билет, но в числительные они вообще не могут и это плохо. Хотя, может на листочке писать все же лучше во избежание недопонимания. Но почему тогда цену не написали так же?
Обсуждение: https://vk.com/wall-122497130_695

Ранее Ctrl + ↓