Pull to refresh
63
0

Погромист

Send message

Автономный способ обхода DPI и эффективный способ обхода блокировок сайтов по IP-адресу

Reading time7 min
Views744K
Провайдеры Российской Федерации, в большинстве своем, применяют системы глубокого анализа трафика (DPI, Deep Packet Inspection) для блокировки сайтов, внесенных в реестр запрещенных. Не существует единого стандарта на DPI, есть большое количество реализации от разных поставщиков DPI-решений, отличающихся по типу подключения и типу работы.

Существует два распространенных типа подключения DPI: пассивный и активный.

Пассивный DPI

Пассивный DPI — DPI, подключенный в провайдерскую сеть параллельно (не в разрез) либо через пассивный оптический сплиттер, либо с использованием зеркалирования исходящего от пользователей трафика. Такое подключение не замедляет скорость работы сети провайдера в случае недостаточной производительности DPI, из-за чего применяется у крупных провайдеров. DPI с таким типом подключения технически может только выявлять попытку запроса запрещенного контента, но не пресекать ее. Чтобы обойти это ограничение и заблокировать доступ на запрещенный сайт, DPI отправляет пользователю, запрашивающему заблокированный URL, специально сформированный HTTP-пакет с перенаправлением на страницу-заглушку провайдера, словно такой ответ прислал сам запрашиваемый ресурс (подделывается IP-адрес отправителя и TCP sequence). Из-за того, что DPI физически расположен ближе к пользователю, чем запрашиваемый сайт, подделанный ответ доходит до устройства пользователя быстрее, чем настоящий ответ от сайта.
Читать дальше →
Total votes 212: ↑212 and ↓0+212
Comments352

Правообладатели называют рипы музыки из интернета «самой агрессивной формой музыкального пиратства»

Reading time3 min
Views19K


Управление по интеллектуальной собственности Великобритании и ассоциация PRS for Music, представляющая интересы правообладателей, бьют тревогу из-за одного вида пиратства, который набирает обороты — рипа стримов. Согласно исследованию правообладателей, это «самая агрессивная форма музыкального пиратства», популярность которой за 2014-2016 годы выросла на 141%.

В интернете очень популярны сервисы, которые сохраняют звук из трансляций Spotify, YouTube и других в удобные файлы MP3. Правообладатели уверены, что эти сервисы действуют незаконно.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments72

Большинство частиц распадается, а некоторые — нет

Reading time9 min
Views19K
Хотя большинство частиц дезинтегрируются, или распадаются, на другие частицы, некоторые из них так себя не ведут. Но почему?

В мире есть много типов частиц, часть из них выглядит элементарными, другие можно построить из элементарных – к примеру, протоны, нейтроны и атомное ядро – но большинство из них распадаются за малую долю секунды. В предыдущей статье я объяснил, почему они распадаются; на самом деле это форма рассеивания, о которой мы имеем интуитивное представление, происходящее из нашего опыта, связанного с волнами и вибрациями. Но почему же несколько типов частиц вообще не распадаются, или, по крайней мере, живут гораздо дольше, чем 13,7 миллиардов лет, дольше возраста Вселенной?

Единственные из известных в природе стабильных частиц – это электрон (и антиэлектрон), легчайший из трёх типов нейтрино (и его античастица), фотон, и предполагаемый гравитон (оба последних являются античастицами сами себе). Другие нейтрино, протон и множество атомных ядер (и их античастиц – тут я прекращаю упоминание античастиц, оно будет подразумеваться), вероятно, нестабильны, но живут очень, очень, очень долго. Протоны, например, живут так долго, что с Большого взрыва их распалось очень малое количество, так что со всех практических точек зрения они стабильны. Другая долгоживущая частица – это нейтрон, который сам по себе, вне атомного ядра, живёт всего около 15 минут. Но внутри атомных ядер нейтроны могут жить дольше возраста Вселенной. Наконец, стоит добавить, что если тёмная материя состоит из частиц, тогда эти частицы тоже должны быть стабильными или очень, очень долгоживущими.
Читать дальше →
Total votes 27: ↑25 and ↓2+23
Comments50

Асинхронный JavaScript против отложенного

Reading time3 min
Views70K

В моей статье «Понимание критического пути рендеринга» (перевод статьи) я писала о том, какой эффект оказывают JavaScript-файлы на Критический Путь Рендеринга(CRP).


JavaScript является блокирующим ресурсом для парсера. Это означает, что JavaScript блокирует разбор самого HTML-документа. Когда парсер доходит до тега <script> (не важно внутренний он или внешний), он останавливается, забирает файл (если он внешний) и запускает его.

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


К счастью, элемент <script> имеет два атрибута async и defer, которые дают нам возможность контролировать то, как внешние файлы загружаются и выполняются.


Читать дальше →
Total votes 32: ↑29 and ↓3+26
Comments42

Могучий малыш — TrueRMS мультиметр Aneng AN8001

Reading time2 min
Views55K
Несколько лет назад невозможно было себе представить, что TrueRMS-мультиметр с автоматическим переключением диапазонов, способный измерять постоянное и переменное напряжение, постоянный и переменный ток, сопротивление, ёмкость и частоту с 6000 отсчётами и 0.5-процентной точностью может стоить меньше 15 долларов. Сегодня этот прибор у меня в руке.

Читать дальше →
Total votes 37: ↑33 and ↓4+29
Comments50

Исключения в Windows x64. Как это работает. Часть 1

Reading time9 min
Views22K
Ранее мы обсуждали прикладное применение механизма обработки исключений вне среды Windows. Теперь мы более подробно рассмотрим, как это работает в Windows x64. Материал будет описан последовательно, начиная с самых основ. Поэтому многое может оказаться вам знакомым, и в этом случае такие моменты можно просто пропустить.
Читать дальше →
Total votes 27: ↑26 and ↓1+25
Comments6

Расширение Visual C++ for Linux Development

Reading time9 min
Views37K
Расширение Visual C++ for Linux Development позволяет создавать решения на C++ для серверов, настольных ПК и устройств под управлением Linux. Управлять подключениями к ним можно непосредственно в Visual Studio. VS будет автоматически копировать и удалённо собирать исходный код программ. Также среда позволяет запустить ваше приложение в режиме отладки. Система управления проектами поддерживает создание решений для конкретных архитектур, в том числе APM. Под катом мы расскажем, как начать работу с новыми проектами для Linux.


Читать дальше →
Total votes 35: ↑35 and ↓0+35
Comments35

«Полезняшки» или «Реестр Windows как платформа»

Reading time10 min
Views49K
Хочу рассказать вам историю, как решение конкретных прикладных задач привело меня к использованию реестра Windows в качестве платформы для хранения и исполнения кода.
Читать дальше →
Total votes 92: ↑84 and ↓8+76
Comments35

youtube-dl, или как скачать видео с YouTube в качестве 1080p и выше

Reading time5 min
Views365K
Видеохостинг YouTube — второй по посещаемости сайт в мире. Его смотрят с умных телевизоров, игровых и телевизионных приставок, настольных компьютеров и ноутбуков, планшетов и смартфонов. Не все из этих устройств требуют одинаковой картинки. Сетевая природа сервиса и потокового видео предполагает, что на сайте должны быть доступны опции просмотра в разном качестве.

Качество картинки на YouTube варьируется от 144p (144 строчки в прогрессивной развёртке) до 8K 4320p. Последнее видео в четыре раза крупнее 4К 2160p, в шестнадцать — 1080p, в тридцать шесть — 720p, который также называют HD.


Мало какой компьютер может проиграть это видео в его полном разрешении, а доступных по цене 8K-мониторов в мире просто нет.

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

Несколько лет назад пользователи YouTube заметили введение DASH по тому, что буферизация видео больше не шла до конца ролика, а ограничивалась примерно минутой. Около того же времени другая проблема возникла у скачивающих видео с YouTube. Внезапно обнаружилось, что ролики с качеством 1080p доступны в виде файлов без звука. Сайты-сервисы, которые раньше выдавали ссылки на скачивание видео, отдавали лишь 720p, не выше. Около 1080p стояло «без звука» или «только видео».
Читать дальше →
Total votes 58: ↑50 and ↓8+42
Comments98

Удивительные свойства программируемых полимагнитов

Reading time2 min
Views24K

Магнитное поле обычного магнита (слева) и двух полимагнитов

Американская компания Polymagnet уже несколько лет выпускает магниты с произвольной формой намагниченного материала — полимагниты. Они кардинально отличаются от обычных магнитов и обладают различными свойствами, которые задаются перед печатью. Например, такие магниты могут автоматически выравниваться друг относительно друга или удерживать заданное расстояние друг от друга (в миллиметрах), отталкиваясь при сокращении этого расстояния (аналог защёлки) или, наоборот, сближаясь при превышении расстоянии, но не прикасаясь друг к другу (аналог пружины), демонстрацию см. под катом.

Главное, что вы задаёте произвольные свойства в программном редакторе, а потом за несколько минут печатаете нужный магнит. Свойства магнита выбираются из каталога заранее запрограммированных полимагнитов или задаются произвольно.
Читать дальше →
Total votes 22: ↑19 and ↓3+16
Comments77

Оптимизация кода: процессор

Reading time18 min
Views115K
Все программы должны быть правильными, но некоторые программы должны быть быстрыми. Если программа обрабатывает видео-фреймы или сетевые пакеты в реальном времени, производительность является ключевым фактором. Недостаточно использовать эффективные алгоритмы и структуры данных. Нужно писать такой код, который компилятор легко оптимизирует и транслирует в быстрый исполняемый код.

image

В этой статье мы рассмотрим базовые техники оптимизации кода, которые могут увеличить производительность вашей программы во много раз. Мы также коснёмся устройства процессора. Понимание как работает процессор необходимо для написания эффективных программ.
Читать дальше →
Total votes 107: ↑102 and ↓5+97
Comments142

Математические обозначения: Прошлое и будущее

Reading time42 min
Views57K


Перевод поста Стивена Вольфрама (Stephen Wolfram) "Mathematical Notation: Past and Future (2000)".
Выражаю огромную благодарность Кириллу Гузенко KirillGuzenko за помощь в переводе и подготовке публикации

Содержание


Резюме
Введение
История
Компьютеры
Будущее
Примечания
Эмпирические законы для математических обозначений
Печатные обозначения против экранных
Письменные обозначения
Шрифты и символы
Поиск математических формул
Невизуальные обозначения
Доказательства
Отбор символов
Частотное распределение символов
Части речи в математической нотации
Стенограмма речи, представленной на секции «MathML и математика в сети» первой Международной Конференции MathML в 2000-м году.

Резюме


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

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

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

Традиционная математическая нотация представляет математические объекты, а не математические процессы. Я расскажу о попытках разработать нотацию для алгоритмов, об опыте реализации этого в APL, Mathematica, в программах для автоматических доказательств и других системах.

Обычный язык состоит их строк текста; математическая нотация часто также содержит двумерные структуры. Будет обсуждён вопрос о применении в математической нотации более общих структур и как они соотносятся с пределом познавательных возможностей людей.

Сфера приложения конкретного естественного языка обычно ограничивает сферу мышления тех, кто его использует. Я рассмотрю то, как традиционная математическая нотация ограничивает возможности математики, а также то, на что могут быть похожи обобщения математики.
Читать дальше о математической нотации, её прошлом и будущем...
Total votes 52: ↑51 and ↓1+50
Comments9

Наше виртуальное будущее — каким оно будет?

Reading time1 min
Views12K
И какие угрозы могут подстерегать обывателя в этом будущем?



Уже сейчас дополненная реальность, равно, как и «чистая» виртуальная реальность постепенно становятся частью нашей жизни. Цифровой прогресс помогает нам жить, но во главу угла становится и вопрос информационной безопасности. Хакеры, malware, NSA и прочее — все это может здорово пугать, и бояться действительно есть чего.

Чем сильнее «цифра» проникает в нашу жизнь, тем актуальнее становятся новые угрозы, которых никогда не было ранее. С другой стороны, и плюсов от использования новых технологий огромное количество, так что никто не собирается возвращаться назад «в пещеры». Авторы ролика «HYPER-REALITY» решили показать, к чему могут привести компьютерные технологии, и чем это чревато.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments17

C/C++: как измерять процессорное время

Reading time10 min
Views81K

image
КДПВ


От переводчика:
Большинство моих знакомых для измерения времени в разного вида бенчмарках в С++ используют chrono или, в особо запущенных случаях, ctime. Но для бенчмаркинга гораздо полезнее замерять процессорное время. Недавно я наткнулся на статью о кроссплатформенном замере процессорного времени и решил поделиться ею тут, возможно несколько увеличив качество местных бенчмарков.


P.S. Когда в статье написано "сегодня" или "сейчас", имеется ввиду "на момент выхода статьи", то есть, если я не ошибаюсь, март 2012. Ни я, ни автор не гарантируем, что это до сих пор так.
P.P.S. На момент публикации оригинал недоступен, но хранится в кэше Яндекса


Функции API, позволяющие получить процессорное время, использованное процессом, отличаются в разных операционных системах: Windows, Linux, OSX, BSD, Solaris, а также прочих UNIX-подобных ОС. Эта статья предоставляет кросс-платформенную функцию, получающую процессорное время процесса и объясняет, какие функции поддерживает каждая ОС.

Читать дальше →
Total votes 32: ↑29 and ↓3+26
Comments69

Бесконечно выгодная программа

Reading time4 min
Views31K
Недавняя статья на Slashdot о программировании игр на ассемблере для Атари (Donkey Kong и я) напомнила об ассемблерных приложениях, которые я писал по молодости, и о компьютерах, которые у нас тогда были.

Поначалу я набирался опыта на DEC PDP-8, но самый кайф начался, когда появилась CP/M. CP/M изначально была «операционной системой для бизнеса», но ещё это была система, которую можно было позволить себе иметь дома, — серьёзная вещь для молодого подающего надежды гика.
Читать дальше →
Total votes 105: ↑104 and ↓1+103
Comments18

Скриншотим игры — the hard way

Reading time6 min
Views39K
Ну что такого сложного может быть в создании скриншота? Казалось бы — позови функцию, любезно предоставленную операционкой и получи готовую картинку. Наверняка многие из вас делали это не один раз, и, тем не менее, нельзя просто так взять и заскриншотить полноэкранное directx или opengl приложение. А точнее — можно, но в результате вы получите не скриншот этого приложения, а залитый черным прямоугольник.
Читать дальше →
Total votes 46: ↑45 and ↓1+44
Comments22

Профилирование запросов к SQLite для Qt приложений

Reading time4 min
Views8.9K
Имеется типична ситуация:

  • кем-то написанное приложение на Qt;
  • пользователи жалуются, что программа во время работы жрем много CPU;
  • профилировщик и strace указывают на то, что происходит насилование базы.

В такой ситуации хочется посмотреть что за запросы, их количество, время выполнения. Если в PostgreSQL есть pg_stat_statements и pgBadger, то для SQLite пришлось написать свой самокат. Самокат представляет из себя вызов sqlite3_profile для каждого соединения, запись полученной информации в журнал.

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments5

«Digital Rain» для Windows в 314 байтах

Reading time3 min
Views27K
В комментариях к недавнему топику возникло обсуждение: до какого размера можно ужать Windows EXE, печатающий в консоли «Hello, World!» Ответ: 268 байт, меньшие файлы Windows просто отказывается загружать.

Раз для «Hello, World!» предел возможного ужатия уже достигнут, то мне стало интересно, до какой степени удастся ужать программу, делающую хоть что-нибудь более интересное.

Сначала похвастаюсь результатом: моя программа всего на 46 байт больше теоретического минимума!



base64
TVprZXJuZWwzMgAAUEUAAEwBAQC4AwABAPdlEIlFEMN4AA8BCwEFDL0UEEAAjXyNAFfraD
gQAAAzyesoDAAAAAAAQAAAEAAAAAIAAAAAAAACAgoCBAAAAAAAAAAAQAAAAAIAALFQ68AD
AAAAEgEAAAAAAABQABkAABAAAFAAGQADAAAAAAAAAAAAAAAoEQAAKAAAAAAAAAAAAAAA/9
Wr4vvrEQAAMAAAABAAADkBAAABAAAAi/df6wMAAAAzybFQV4sHgPwZdygPttyNHJvB4waN
HItQweAYwegei0RFOIhEMwKIpDPC/v///9WIJDNY/sSA/GR8Av/Vq+LFjUVcUFH/dWhWZI
tBMItAEP9wHP9VWOuiV3JpdGVDb25zb2xlT3V0cHV0QQBsEAAAAAAAAAAAAAACAAAAbBA=

(Если найдётся доброволец захостить эти 314 байт, добавлю сюда ссылку.)


Пояснения
Total votes 49: ↑45 and ↓4+41
Comments18

Нечеткий поиск в словаре с универсальным автоматом Левенштейна. Часть 1

Reading time9 min
Views101K


Нечеткий поиск строк является весьма дорогостоящей в смысле вычислительных ресурсов задачей, особенно если вам необходима высокая точность получаемых результатов. В статье описан алгоритм нечеткого поиска в словаре, который обеспечивает высокую скорость поиска при сохранении 100% точности и сравнительно низком потреблении памяти. Именно автомат Левенштейна позволил разработчикам Lucene повысить скорость нечеткого поиска на два порядка
Читать дальше →
Total votes 53: ↑51 and ↓2+49
Comments7

Регистраторы приостановили действие доменов Rutor и большинства The Pirate Bay

Reading time2 min
Views38K
Как сообщает TorrentFreak, сегодня утром крупнейший немодерируемый торрент-трекер The Pirate Bay потерял все свои «головы гидры» — множество доменов, которые администраторы зарегистрировали в том случае, если действие основного домена thepiratebay.se приостановят вследствие его конфискации по решению шведского суда.

Случилось, однако, прямо противоположное: доменные имена в зонах .LA, .GD, .MN, .VG, .FM, .SH, .MU и .TW были поставлены в состояние «clienthold», что делает их неработоспособными для пользователей.

Досталось и крупному российскому трекеру rutor.org, домен которого был зарегистрирован у шведского регистратора prq.se.

На данный момент The Pirate Bay доступен по своему старому домену в зоне .se, а зайти на rutor можно только используя специальные средства, такие как АнтиЗапрет и AntiCenz.
Читать дальше →
Total votes 22: ↑22 and ↓0+22
Comments67

Information

Rating
Does not participate
Registered
Activity