Pull to refresh
0
@QuAzIread⁠-⁠only

Лучше недостаток кармы, чем мозгов и совести

Send message

JavaScript. WebRTC. Соединение браузеров напрямую без сервера, peer-to-peer

Level of difficultyEasy
Reading time2 min
Views10K

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

Читать далее

ML в полях. Как упростить жизнь агрономов?

Reading time5 min
Views1.9K

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

Узнать о применении ML в агротехе

Особенности проксирования через CDN/Websocket/gRPC для обхода блокировок

Level of difficultyMedium
Reading time15 min
Views95K

Эта статья — заключительная (наконец‑то!) из моего огромного цикла про недетектируемые инструменты для обхода блокировок. В предыдущих публикациях я упоминал, что клиенты и серверы XRay (форк V2Ray) и Sing‑box при использовании протоколов VLESS/VMess/Trojan могут работать через веб‑сокеты и gRPC, что позволяет подключаться к даже заблокированным Роскомнадзором прокси‑серверам через CDN (content delivery или content distribution network) и дает дополнительные преимущества. Сегодня мы поговорим об этом поподробнее.

Читать далее

Собственная копия YouTube

Level of difficultyMedium
Reading time7 min
Views48K


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

В итоге получается, что мы делаем нечто вроде маленькой копии YouTube, только на своём сервере. В определённом смысле это архивная копия на случай удаления видеоконтента из-за цензуры YouTube. Или на случай, если серверы YouTube станут недоступны с территории РФ из-за какого-то «технического сбоя».
Читать дальше →

VimPorn

Reading time6 min
Views58K

На reddit большое комьюнити, которое посвящено vim: neovim, vim, vimplugins, vimporn. И чтобы не пропускать какие-то интересные вещи, которые случаются в мире vim, я накидал bash-скрипт. Скрипт выводит топ-5 лучших постов за год по каждому сабредиту. В статье будет сам скрипт, а также я своими словами расскажу о каждом посте, который попал в топ.

Читать далее, под катом много картинок ...

Обход блокировок на OpenWRT с помощью HomeProxy (sing-box)

Level of difficultyEasy
Reading time4 min
Views50K

HomeProxy или luci‑app‑homeproxy это часть проекта ImmortalWRT, графическая надстройка для sing‑box позволяющая настроить подключение к shadowsocks, xray, vless, vmess, trojan.

В данной статье будет рассматриваться установка luci‑app‑homeproxy на OpenWRT 23.05.0-rc3 (поддерживаются версии 23.05.0 или SNAPSHOT).

Можно использовать как чистую версию OpenWRT так и от проекта ImmortalWRT.

Потребуется роутер со свободными 30 Мб памяти и минимум 256 Мб ОЗУ (Работающий HomeProxy занимает от 70Мб ОЗУ).

Читать далее

Самый суровый магнитный ключ

Level of difficultyMedium
Reading time6 min
Views25K
Приветствую всех!

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

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

image

Итак, в сегодняшней статье поговорим о ферритовых домофонных ключах. Узнаем, как же они считываются, как устроена панель. Традиционно будет много интересного.
Читать дальше →

Приручаем GitLab: прикольные фишки и инциденты, которые упростят вашу жизнь

Level of difficultyMedium
Reading time11 min
Views42K

В текущих реалиях все IT-продукты разрабатываются с использованием какого-либо ПО, способного управлять репозиториями программного кода для Git. В нашем случае, хотелось бы рассказать про один из самых популярных продуктов — Gitlab. «Gitlab — наше всё» должно быть слоганом каждой компании, которая его использует, иначе могут произойти события, которые приведут к печальным последствиям. На Habr можно найти множество различной информации, связанной с кейсами, туториалами или просто интересными историями. Но сколько бы ни было написано, найти место где было бы собрано всё и сразу — не получилось. Придется исправлять. 

Начнём?

Уровень хранения данных vStack: мощь ZFS

Reading time6 min
Views3K

Глубокое погружение в уровень хранения vStack, сфокусированное на использовании файловой системы ZFS

С постоянным ростом объема данных, а также повышением требований к их целостности и доступности необходимость применения передовых технологий хранения становится все более очевидной. Именно эту задачу решает платформа vStack, основой которой является мощная файловая система ZFS с избыточностью RAID-Z. В данной статье мы погрузимся в уровень хранения данных vStack, рассмотрим ключевые особенности и преимущества ZFS, а также расскажем о принципах работы файловой системы с технической точки зрения.

Читать далее

Настраиваем двухступенчатый WireGuard для выхода из страны

Level of difficultyMedium
Reading time4 min
Views69K

У Wireguard есть немало прекрасного, включая его простоту реализации, скорость и минималистичные клиенты, которые не вызывают проблем у пользователей.

В начале августа некоторые интернет операторы и провайдеры начали блокировку протокола WireGuard в РФ по его рукопожатию.

Лично испытывал блокировку у Мегафон и Теле2, но не заметил у Ростелеком. VPN по-прежнему работал через последнего.

Очень не хотелось отказываться от Wireguard в пользу прокси-серверов в духе VLESS+TLS-Vision, в виду того, что все наши пользователи уже сильно привыкли именно к Wireguard.
Поэтому вариант с кардинальной сменой клиентского софта не рассматривался.

Поскольку трафик Wireguard блокируется только на зарубежные адреса было принято решение добавить еще один хоп в систему, а начальное подключение осуществлять к серверу в РФ.

Читать далее

Университет: как техперсоналу получить полный доступ в интернет в любой точке сети

Level of difficultyEasy
Reading time12 min
Views4.5K

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

Написать статью подтолкнул комплекс проблем.

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

Проблема №2. Большинство устройств и софта требуют стабильный, быстрый интернет с минимальным пингом и задержками, без прокси и ограничений. При использовании прокси некоторый софт (пример 1, пример 2) не может обновиться. Ему нужен интернет без прокси и обязательно шустрый или софт исчерпает таймаут на подключение к серверу обновлений.

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

Техподдержка софта и вебинаров об этом знают, в FAQ и в общении предупреждают, что нужен "нормальный" интернет.

Ещё пример тут, обратим внимание на первую и четвёртую рекомендации.

Читать далее

«Мультиверсионная» документация с GitHub Pages

Level of difficultyMedium
Reading time9 min
Views4.1K

Недавно мне потребовалось собрать и развернуть документацию для одного из своих небольших проектов на Python. Написал документацию, собрал Sphinx'ом, дальше собрался заливать на readthedocs.org и обнаружил что без VPN сайт не алё. Более того, почему то и с VPN нормально не получалось импортировать свой проект с GitHub.

Не долго думая, решил изучить ситуацию на "рынке" и нашел неплохую альтернативу - GitHub Pages. Эта статья о том, как я деплоил мультиверсионную документацию на GitHub Pages c помощью GitHub Actions и своими собственными "костылями".

Читать далее

Производительность таблиц в WPF и Avalonia

Level of difficultyMedium
Reading time3 min
Views4.2K

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

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

Читать далее

Изучаем английский с Anki

Reading time1 min
Views215K
Anki — это программа для запоминания иностранных слов. Список её преимуществ перед аналогами впечатляет! Судите сами:
  • Широкие возможности по настройке вида карточек
  • Поддержка мультимедиа
  • Большое количество плагинов
  • Настройка алгоритма обучения
  • Подробная статистика
  • Поддержка большинства современных платформ (Linux, Windows, Mac, iPhone, Android, список можно продолжить!)
  • Синхронизация данных

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



Официальный сайт — ichi2.net/anki
Программу можно найти в Центре приложений Ubuntu.

Пишем plugin для IDEA, используя External System API, на примере простой build системы

Level of difficultyMedium
Reading time20 min
Views1.3K

Привет, ранее я написал статью о своем плагине и том, как переосмыслил подход к получению проектной модели Maven. И обещал более подробно рассказать о технических деталях реализации плагина и точках расширения IDEA, которые использовал.

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

Всем этим условиям удовлетворяют популярные билд-системы: Gradle, Maven, Sbt и не только, например Docker-compose. IDEA плагины для них построены на External System API. Поэтому для написания своего плагина, я также использовал данное API и хочу рассказать о нем более подробно.

Читать далее

Проксируем OpenVPN через Shadowsocks или чиним OpenVPN во время блокировок

Level of difficultyEasy
Reading time3 min
Views47K

В данной статье рассмотрим как настроить существующее подключение к OpenVPN серверу, которое могло или может перестать работать, через shadowsocks (Outline VPN) туннель на OpenWRT любых версий с помощью openvpn-openssl и shadowsocks-libev.

Понадобятся:

Существующий сервер OpenVPN и настроенный клиент на OpenWRT

Конфиг shadowsocks (Outline) вашего либо чужого сервера.

Свободные 650кб памяти в роутере

Читать далее

Xray на Keenetic / Xkeen

Level of difficultyEasy
Reading time9 min
Views196K

Утилиту для поддержки Xray на роутерах Keenetic — Xkeen.
Весь код написан на чистом shell и открыт на GitHub.

Собирает Xray под Ваш Keenetic на Entware.
Доступны GeoIP и GeoSite от AntiFilter, AntiZapret и v2fly.

Автоматически обновляет в указанное время Xray, GeoIP и GeoSite.

Ознакомиться с Xkeen

Запуск приложений на .NET в качестве службы на Linux-системе с systemd

Level of difficultyHard
Reading time7 min
Views16K
image

В этом материале будет рассмотрено, как запускать приложение .NET Core / .NET 5 в качестве сервиса под Linux. Мы воспользуемся Systemd, чтобы интегрировать наше приложение с операционной системой, научимся запускать и останавливать наш сервис, а также получать от него логи.

Чтобы организовать атаку на цепочку поставок при помощи .NET, мне потребовалось настроить DNS-сервер, который перехватывал бы те хост-имена, которые ко мне направляются. Давайте возьмём этот кейс для примера.
Читать дальше →

Anki — настолько круто, что я даже представить не мог

Reading time4 min
Views197K

Если вдруг кто не знает, Anki - это бесплатная opensource программа для запоминания слов (и не только). Есть версии под декстоп и мобилы. Она довольно популярна при этом имеет интуитивно-НЕпонятный интерфейс. Мне понадобилось много лет, чтобы понять, насколько она крута, т.к. базовые статьи и туториалы этого не описывают. А многие люди используют ее даже не понимая ее возможностей.

Впервые про Anki я услышал много лет назад. Может быть 10 или больше, точно сказать сложно. Прочитал здесь на Хабре, что есть такая крутая штука как интервальное повторение, и что Anki как раз такая программа, которая использует этот механизм. Помню что в статье рассказывалось только про версию под декстоп.

Читать далее

Распределённые снапшоты: определение глобального состояния распределённых систем

Level of difficultyHard
Reading time19 min
Views2.4K

Наша команда продолжает развивать Platform V DataGrid — распределенную базу данных в оперативной памяти для высокопроизводительных вычислений. В последнем релизе мы реализовали инкрементальные снапшоты, которые быстро снимаются, сохраняют транзакционную целостность и почти не влияют на общую производительность системы.

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

Читать далее

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity

Specialization

Fullstack Developer, DevOps
Middle
C#
.NET
ASP.Net
Git
SQL
Linux
Docker
Python
Database
Bash