
Купили новые недешевые Bluetooth-наушники, а они звучат странно?
Разбираемся в причинах плохого звука с кодеком AAC и выясняем мотивацию установки ограничений битрейта со стороны производителей.
User
Купили новые недешевые Bluetooth-наушники, а они звучат странно?
Разбираемся в причинах плохого звука с кодеком AAC и выясняем мотивацию установки ограничений битрейта со стороны производителей.
Написание собственного стека TCP/IP поначалу может показаться пугающей задачей. И в самом деле, за свой тридцатилетний срок жизни TCP впитал в себя множество спецификаций. Однако базовая спецификация остаётся относительно компактной1 — из важных частей в ней можно выделить парсинг заголовков TCP, машину состояний, отслеживание перегрузок и вычисление таймаута повторной передачи.
Самые распространённые протоколы слоя 2 и слоя 3, Ethernet и IP, скромны по сравнению с сложностью TCP. В этой серии статей мы реализуем минимальный стек TCP/IP пользовательского пространства для Linux.
Посты и код служат исключительно в образовательных целях, они позволят вам глубже изучить сетевое и системное программирование.
Привет, Хабр!
Сегодня разбираемся, почему sync.Map
— выглядит аппетитно, но почти всегда оказывается не тем, чем вы ожидали.
Салют, Хабр! Я думаю, каждый из вас знаком или, по крайней мере, слышал о такой прекрасной утилите как GoodbyeDPI (большое спасибо @ValdikSS!). Сегодня я хочу представить вам (почти) свою разработку - аналог GoodbyeDPI.
Около полугода назад в своей статье Обвиваем YouTube змеем, или как смотреть и скачивать видео с YouTube без VPN на чистом Python-е. Часть 1 (заблокирована по требованию РКН) я рассказывал о том, как скачивать видео с YouTube на Python, а так как YouTube у нас "деградировал", я поделился инструментом, с помощью которого можно исправить этот вопиющий недостаток. Инструмент тогда выглядел достаточно сыро, и несмотря на то, что он выполнял свою задачу, требовал серьезных улучшений. Увидев интерес общественности, я решил допилить его, и вот, спустя полгода, после немалой работы, я рад представить вам NoDPI - проект, который явно не понравится РКН (и он опять меня заблокирует).
В этой статье я хочу рассказать о его возможностях, внутреннем устройстве, отличии от аналогов. Надеюсь, статья будет вам полезна и интересна. Поехали!
Современный мир пресыщен различной информацией, и в наше непростое время её важно уметь не только находить и сохранять. Многие наверняка заметили, что в на YouTube, кроме мусора, котиков и прочих бесполезных вещей (которые мы иногда не прочь посмотреть) есть масса полезного материала по самым различным темам. И иногда этот материал неплохо было бы сохранить себе на будущее, чтобы не зависеть от переменчивых настроений в мире.
В этой статье я хочу рассказать, как можно скачивать видео, аудио (1 часть статьи), плейлисты и целые каналы с YouTube (2 часть статьи) без использования VPN и на чистом Python-е. Сразу оговорка: VPN нам не понадобится, но мы сделаем собственное средство, которое будет решать "проблему с устаревшим и изношенным оборудованием Google Global Cache" (вы поняли, о чём я). Я думаю это средство будет особенно актуально сегодня, когда у многих россиян YouTube почти или совсем не работает.
$ rm -rf /*
Уверен, многие читатели Хабра знакомы с этим способом, ведь он существует не первый день. Чтобы сэкономить ваше время, я скажу всего два слова: comss DNS.
Все остальные - велком под кат :-)
Lua — это лёгкий, быстрый и гибкий скриптовый язык, который появился в 1993 году. Он написан на C и чаще всего используется не как самостоятельный язык, а как встраиваемый инструмент для других приложений.
Если вы играли в World of Warcraft и устанавливали аддоны, вы уже сталкивались с Lua. Redis исполняет Lua-скрипты внутри себя. Lua используется в Nginx через модуль ngx_http_lua_module, который позволяет писать обработчики HTTP-запросов. В NeoVim плагины тоже можно писать на Lua. Короче говоря — язык не из популярных топов, но крайне полезен и встраиваем во многие инфраструктурные решения.
Я опишу главные особенности языка и приведу небольшой пример использования из Go.
Привет, Хабр!
Сегодня мы рассмотрим, как создать собственный DHCP‑сервер на Python. Суть сервера проста — он динамически раздаёт IP‑адреса устройствам в сети, избавляя нас от головной боли статической конфигурации.
Суть сервера будет заключаться в том, чтобы «подставлять» IP‑адреса устройствам, заходящим в сеть. Сервер будет ловить DHCP‑запросы от клиентов, выбирать свободный IP из заранее подготовленного пула и подтверждать выдачу.
лучшие 10 продвинутых хитростей Python
, то вы найдёте кучу постов или статей на LinkedIn с обзором тривиальных (но всё же полезных) вещей типа генераторов
или кортежей
.Иногда под моими публикациями оставляют превосходные комментарии, причём читателя может привлечь какой-то второстепенный факт или сюжетный экскурс, лишь дополняющий статью. Такие комментарии мне особенно ценны, поскольку я вижу, что человек дочитал текст и воспринял его критически или эмоционально.
Один из таких комментариев оставил уважаемый @3epka к статье о поисках «острова стабильности» в глубинах таблицы Менделеева, высказавшись об астероиде Полигимния. А буквально вчера вечером я обнаружил ещё более резкий комментарий уважаемого @Panzerschrek с закономерным вопросом о том, существуют ли какие-либо естественные процессы, приводящие к возникновению элементов из Острова Стабильности. Я тоже задумывался о такой проблеме. Наука, растущая из сократовской майевтики и аристотелевского научного метода, основывается не только на опыте и наблюдении, но и на тщательном сравнении образцов с эталоном. Если же образец не вписывается в выборку, либо эталон нельзя смоделировать в лаборатории, то наука начинает пробуксовывать, чем то и дело не преминут воспользоваться уфологи, астрологи и креационисты.
В статье рассказываем, что такое Ansible и как инструмент может применяться в проектах DWH: от автоматического развертывания и настройки компонентов до восстановления после сбоев и централизованного управления параметрами.
Сравниваем Ansible с другими инструментами для автоматизации управления инфраструктурой: Puppet, Chef, SaltStack.
Привет, Хабр!
В этой статье рассмотрим //go:linkname
— неофициальной, но невероятно мощной фиче Go, которая позволяет вызывать приватные функции и обращаться к закрытым переменным других пакетов.
Хеш-таблица(мапа) — одна из самых популярных структур данных, потому что поиск по ключу происходит за O(1). Причем ключ может быть любым любым типом, элементы которого можно сравнивать (Comparable Trait).
Я столкнулся с тем, что мапа не такая быстрая по бенчмаркам на языке GO, хотя теоретическая сложность алгоритма О(1).
Давайте рассмотрим следующую задачу и способы ее решения.
Посмотрим, как устроен современный TLS-сертификат со "сверхкоротким" сроком действия. В статье описано значение основных полей и ряд неочевидных особенностей, с этими полями связанных - формат серийного номера, SCT-метки и другие занимательные элементы.
Bash-скрипты: начало
Bash-скрипты, часть 2: циклы
Bash-скрипты, часть 3: параметры и ключи командной строки
Bash-скрипты, часть 4: ввод и вывод
Bash-скрипты, часть 5: сигналы, фоновые задачи, управление сценариями
Bash-скрипты, часть 6: функции и разработка библиотек
Bash-скрипты, часть 7: sed и обработка текстов
Bash-скрипты, часть 8: язык обработки данных awk
Bash-скрипты, часть 9: регулярные выражения
Bash-скрипты, часть 10: практические примеры
Bash-скрипты, часть 11: expect и автоматизация интерактивных утилит
Так как я любитель selfhosted, у меня есть домашняя инфраструктура:
Orange Pi - медиасервер;
Synology - файлопомойка;
Neptune 4 - 3д принтер с веб интерфейсом и видео с камеры. И хотелось бы иметь безопасный доступ к ней снаружи через телефон и ПК, но при этом иметь выход в интернет не в РФ. Раньше для этих нужд я использовал OpenVPN, но теперь на него полагаться не стоит. Поэтому я начал изучать документацию к отличному инструменты от китайских товарищей - Xray!
Что понадобится:
Сервер с внешним IP с инфраструктурой. У меня - Orange Pi, далее - Bridge
Сервер, к которому хотим получить доступ - Server
Сервер вне РФ для выхода в интернет. Далее - Proxy
Клиент на ваш вкус. Далее - Client
Клиент и сервер на Linux - Xray-core, который можно поставить через оффициальный скрипт установки Xray
Клиент на андроид - v2rayNG
Еще клиенты можно найти в репозитории Xray-core
За базу берем файл конфигурации VLESS-TCP-XTLS-Vision-REALITY и начинаем читать документацию к Xray
Маршрутизация происходит на клиенте. Если клиент обращается к домену xray.com
, например, то направляем траффик в Bridge
, а для всех остальных соединений - в Proxy
. Затем Bridge
направляет траффик к Server
, если клиент обращался к server.xray.com
.
Выглядит так: