Обновить
35
0
Василий Е@bazilxp

DevOps

Отправить сообщение

PPP-over-HTTP/2: развлекаемся с dumbproxy и pppd

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели13K

В этой статье рассказано как подружить pppd и dumbproxy, получив в итоге PPP-тоннель внутри HTTP/2. Её можно одновременно рассматривать как руководство по настройке, журнал эксперимента, демо возможностей dumbproxy и просто пищу для удовлетворения любопытства.

Читать далее

Отрисовка в браузере большой анимации или как я ушел с mp4 к своему формату видео

Время на прочтение17 мин
Охват и читатели65K

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

Читать далее

Как смотреть Netflix US/UK из любой страны: WireSock + Dante SOCKS5 (WARP)

Уровень сложностиСредний
Время на прочтение6 мин
Охват и читатели9.8K

Когда вы оказываетесь за границей — в отпуске, командировке или после релокации — может неожиданно выясниться, что ваш привычный Netflix «похудел». Одни сериалы и фильмы исчезли, другие появились, а некоторые премьеры выходят только в США или Великобритании. Всё дело в региональных лицензиях: каталоги у Netflix различаются по странам, и то, что доступно в Лондоне или Нью-Йорке, может быть недоступно в Москве, Белграде или Берлине.

На форумах и в блогах чаще всего советуют использовать «специальный VPN для Netflix». Но у такого решения есть очевидные проблемы: коммерческие VPN-сервисы работают на ограниченных пулах IP, которые быстро попадают в базы «подозрительных адресов» и блокируются. Ещё хуже, если попытаться просто направить клиент Netflix через произвольный прокси или VPS в дата-центре — такие IP легко вычисляются по ASN, обратному DNS и истории использования, и блокируются ещё быстрее.

Cloudflare WARP устроен иначе. Его официальная цель — улучшить приватность и ускорить соединение, а не предоставлять смену геолокации. Поэтому стриминговые сервисы обычно не блокируют WARP: он не воспринимается ими как «сервис обхода», а его IP-адреса выглядят как нормальные резидентские, а не как дата-центровые.

Из коробки WARP всегда подключается к ближайшему узлу Cloudflare, фактически «садя» вас в вашей текущей стране. Но если направить трафик WARP через SOCKS5-прокси (например, Dante) в США или Великобританию, именно этот прокси станет точкой выхода. Для WARP это выглядит так: он видит, что вы пришли с адреса прокси, определяет страну этого адреса и подключает вас к своей инфраструктуре именно там. В итоге Netflix будет считать, что вы находитесь в США или UK, и покажет «американский» или «британский» каталог. Другими словами, используя прокси, мы можем «зайти» в WARP уже в нужной нам стране — а не в той, где реально находимся.

Читать далее

Регистрируете ПО? Не торопитесь…

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели13K

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

Читать далее

3D-печать без швов — Часть 1: как я «скрестил» Vase Mode и послойную печать чтобы вывести изделие в серию

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели9.8K

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

Читать ниже...

Радиолокационный радар — менее чем за 400 рублей: на базе esp32 и wi-fi

Время на прочтение9 мин
Охват и читатели41K


Приходило ли вам в голову, что ваша любимая esp32 может использоваться в роли самого натурального радиолокационного радара?

Если не приходило, то добро пожаловать под кат, так как кое-кому это пришло:-))
Читать дальше →

Сортировка слиянием на CUDA

Уровень сложностиСредний
Время на прочтение9 мин
Охват и читатели3.4K

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

В качестве тестового я возьму алгоритм сортировки слиянием (merge sort), потому что он удобно разбивает задачу на меньшие подзадачи с двумя равными половинами, что хорошо подходит для параллельных вычислений.
Читать дальше →

Загадочные проблемы браузинга: почему некоторые сайты не грузятся в Chrome?

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели36K

Меня зовут Эрик, я инженер технической поддержки в компании Shortcut. Недавно я столкнулся с интересным тикетом: пользователи жаловались, что некоторые сайты не открываются в Google Chrome, но при этом прекрасно работают в других браузерах.

Кажется, что если сайт работает в одном браузере, он должен работать и в другом. Но это не всегда так. Иногда Chrome упорно отказывается загружать страницы, которые спокойно открываются в Firefox или Edge. Недавно я столкнулся с таким случаем в работе и хочу рассказать, как я разобралися с проблемой.

Читать далее

То о чем многие молчат, или может не знают…

Время на прочтение3 мин
Охват и читатели29K

Это статья не несет особо полезной информации и на написание ее меня натолкнула недавняя стать на Хабре с заголовком «Установка базы данных на linux». Это статья мне вылезла в рекомендациях самого хрома, ну думаю дай‑ка гляну. Может там БД собирают из исходников или рассказывают о чем то важном, о каких‑то специфических настройках — но нет :-) Статья коротенькая, и всего там 6 команд: apt update, apt install mysql, mysql, create user 'user'@'%' idetified by 'password'; quit;

Все, вот она и вся статья. Мне стало любопытно, и оказалось что довольно таки много людей не понимают что они вводят а просто пользуются Ctrl+C Ctrl+V и в итоге к этой базе данных и пользователю user может получить любой желающий кто умеет перебирать пароли.

Это один из примеров таких публикаций, но последние пару лет их стало очень много и большое спасибо за это можно сказать РКН. Видя стать об обходе блокировок — НИКТО не думает о безопасности. Арендуют VPS, оставляют пароль по дефолту, настраивают что либо и забывают о VPS. Мне стало интересно, сколько я получу ботов на свой VPS по ssh, если порт будет 22. Быстренько меняем порт, через iptables открываем 22 порт и ждем пару дней. Результат меня удивил, fail2ban заблокировал почти 200 ip.

Читать далее

Лошадью ходи

Уровень сложностиСредний
Время на прочтение8 мин
Охват и читатели1.9K

Прим. 1. В статье используются 10-ичные числа, Lua, Node.js, React.js, php, sql и python.

Прим. 2. Все права принадлежат д-ру ДжиПиТи.

Сходить лошадью и Читать далее

FastAPI и Dependency Injection: правда или вымысел?

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели15K

В свое время FastAPI прогремел как гром среди ясного неба - тут тебе и минималистичный API аля-Flask (все устали от Django, диктующего свои правила), и OpenAPI документация из коробки, и удобное тестирование, и хайповая асинхронность. Буквально все, что нужно для свободы творчества, и никаких ограничений! Да еще и Depends завезли! В тот момент это был культрурный шок - Dependency Injection в Python? Разве это не что-то из Java?

Но дьявол кроется в деталях. А вы уверены, что те самые Depends == Dependency Injection? Уверены, что пишете код на FastAPI правильно?

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

Давайте разбираться

Создание полного Fast-API сервиса с фронтендом и деплоем за полчаса

Уровень сложностиПростой
Время на прочтение15 мин
Охват и читатели20K

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

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

Читать далее

Установка MS SQL Server на Linux

Уровень сложностиПростой
Время на прочтение8 мин
Охват и читатели19K

В этой статье я научу вас устанавливать Microsoft SQL Server 2022 на Linux и мы развернем тестовую базу данных от Microsoft в операционной системе Linux.

Мы будем использовать пакетным менеджером Yum для Linux дистрибутивов: RedHat (RHEL), CentOS, Scientific Linux и DPKG (Debian Package) – система управления пакетами в Debian и дистрибутивах на его основе, например Ubuntu и набирающем популярность Astra Linux, в связи с импортозамещением. Поэтому команды я приведу для обоих пакетных менеджеров. Так же рассмотрим универсальный способ запуска через Docker.

Microsoft SQL Server — система управления реляционными базами данных (СУБД), разработанная корпорацией Microsoft. Основной используемый язык запросов (диалект SQL) — Transact-SQL (T-SQL).

Для взаимодействия с СУБД MS SQL Server используются 2 основных способа:
1. Служебная программа sqlcmd
2. Microsoft SQL Server Management Studio (SSMS)

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

Читать далее

Расширяем меню и функционал Gitlab

Уровень сложностиСредний
Время на прочтение17 мин
Охват и читатели3.1K

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

Итак приступим ...

Сам себе экосистема: Как я адаптировал старый смартфон под современные реалии и написал клиенты нужных мне сервисов

Уровень сложностиСредний
Время на прочтение11 мин
Охват и читатели32K
image


Время неумолимо бежит вперед: выходят новые гаджеты, постепенно заменяя старые, превращая их в тыкву или в лучшем случае, в «тапочек» для звонков. Сейчас смартфоны стали практически одинаковы во всем: дисплей на всю площадь передней панели, почти полное отсутствие аппаратных кнопок, беспроводная зарядка… Это всё, конечно, здорово, но ведь иногда так хочется взять в руки старый, но такой необычный в наше время QWERTY-смартфон и попытаться его использовать как основной, да и цены на них могут приятно удивить: БУ девайс можно купить за несколько сотен рублей (~5-10$). Одна проблема — клиенты приложений на версии Android 1.6-2.0 безбожно устарели и давно не работают. Но иногда желание воскресить старый девайс превыше потребительского качества и тут я пришёл к мысли… а почему бы не написать с нуля свои клиенты популярных приложений? ВК с музыкой, YouTube, трекинг посылок. Так я и сел писать необходимые в повседневной жизни приложения, с нуля, на голом API Android, без каких либо фреймворков (и даже AppCompat). Получилось ли у меня это? Узнаем в статье!
Читать дальше →

Взять и влиться в музыкальное программирование — языки, которые помогут это сделать

Время на прочтение4 мин
Охват и читатели13K
В одном из предыдущих материалов мы писали о ЯП Sporth, разработанном для проведения музыкальных live-сессий. Сегодня расскажем еще об одном инструменте для «музыкального программирования» — языке Csound. И поговорим о его аналогах — SuperCollider и Pure Data.

Мы опубликовали датасет для детекции речи размером более 150 тысяч часов на 6000+ языках

Уровень сложностиПростой
Время на прочтение2 мин
Охват и читатели4.7K

Мы выложили в публичный доступ гигантский датасет для детекции речи (voice activity detection).

Датасет содержит порядка 150 тысяч часов аудио более чем на 6,000 языках. Количество уникальных ISO-кодов данного датасета не совпадает с фактическим количеством языков, так как близкие языки могут кодироваться одним и тем же кодом.

Данные были размечены для задачи детекции голоса при временной дискретизации примерно в 30 миллисекунд (или 512 семплов при частоте дискретизации 16 килогерц).

Данный датасет распространяется под лицензией CC BY-NC-SA 4.0.

Давайте смотреть датасет

Открываем Adobe Flash в Docker в 2024-м

Уровень сложностиПростой
Время на прочтение3 мин
Охват и читатели5.3K

Шарился я тут в по Интернету в поисках видео событий 15-летний давности и нашел что-то вроде искомого, но никак не смог посмотреть - требовался Adobe Flash. Погуглил я как мне открыть это видео, но рабочих вариантов не нашел. "Ладно" - подумал я: "Challenge accepted". А нам с читателем лишняя возможность потренироваться в создании Docker-контейнеров.

Дисклеймер: использование устаревших версий браузера и самого Flash-плагина несёт потенциальную угрозу безопасности. Используйте этот метод на свой страх и риск.

Итак, начнём с того, что поддержка Flash-плагина была выпилена в Chromium начиная с версии 89. То есть нам нужно что-то где есть более ранняя версия. Это что-то - это Ubuntu 18.04 - там 65я версия, если без апдейтов,а с апдейтами 112-я. В какой-то момент должна была быть и 88-ая, но не нашел где её добыть - если читатель подскажет, буду безмерно благодарен. И так, поехали - создаём Dockerfile

Читать далее

KORG в кармане

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели11K
image

Игровые консоли могут издавать звуки? Звуки могут меняться, если в игре происходят разные действия? Могут. Так, стоп! Но ведь это уже основа для создания музыкального софта для консолей. «Ни слова больше!», — слова не мальчика, но композитора, который стоит за созданием портативных версий KORG для Nintendo.
Читать дальше →

SimulIDE: открытый симулятор цифровых схем и микроконтроллеров

Время на прочтение3 мин
Охват и читатели46K

В этой заметке я решил рассказать о SimulIDE. Это относительно новое программное средство с открытым исходном кодом, предназначенное для моделирования 8-битных микроконтроллеров семейств AVR и PIC, а также прочих электронных схем. По интерфейсу SimulIDE напоминает Proteus. SimulIDE кроссплатформенный и работает под Linux, Windows и Mac. Далее будут рассмотрены основные возможности этого симулятора и рассказано о моих личных впечатлениях от работы с данной программой.

Читать далее
1
23 ...

Информация

В рейтинге
4 941-й
Откуда
Chengdu, Sichuan, Китай
Зарегистрирован
Активность