Как стать автором
Обновить
63
0

Погромист

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

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

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

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

Пассивный DPI

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

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

Время на прочтение3 мин
Количество просмотров19K


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

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

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

Время на прочтение9 мин
Количество просмотров19K
Хотя большинство частиц дезинтегрируются, или распадаются, на другие частицы, некоторые из них так себя не ведут. Но почему?

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

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

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

Время на прочтение3 мин
Количество просмотров70K

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


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

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


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


Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии42

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

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

Читать дальше →
Всего голосов 37: ↑33 и ↓4+29
Комментарии50

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

Время на прочтение9 мин
Количество просмотров22K
Ранее мы обсуждали прикладное применение механизма обработки исключений вне среды Windows. Теперь мы более подробно рассмотрим, как это работает в Windows x64. Материал будет описан последовательно, начиная с самых основ. Поэтому многое может оказаться вам знакомым, и в этом случае такие моменты можно просто пропустить.
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии6

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

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


Читать дальше →
Всего голосов 35: ↑35 и ↓0+35
Комментарии35

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

Время на прочтение10 мин
Количество просмотров49K
Хочу рассказать вам историю, как решение конкретных прикладных задач привело меня к использованию реестра Windows в качестве платформы для хранения и исполнения кода.
Читать дальше →
Всего голосов 92: ↑84 и ↓8+76
Комментарии35

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

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

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


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

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

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

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

Время на прочтение2 мин
Количество просмотров24K

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

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

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

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

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

image

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

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

Время на прочтение42 мин
Количество просмотров56K


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

Содержание


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

Резюме


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

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

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

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

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

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

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

Время на прочтение1 мин
Количество просмотров12K
И какие угрозы могут подстерегать обывателя в этом будущем?



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

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

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

Время на прочтение10 мин
Количество просмотров80K

image
КДПВ


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


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


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

Читать дальше →
Всего голосов 32: ↑29 и ↓3+26
Комментарии69

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

Время на прочтение4 мин
Количество просмотров31K
Недавняя статья на Slashdot о программировании игр на ассемблере для Атари (Donkey Kong и я) напомнила об ассемблерных приложениях, которые я писал по молодости, и о компьютерах, которые у нас тогда были.

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

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

Время на прочтение6 мин
Количество просмотров39K
Ну что такого сложного может быть в создании скриншота? Казалось бы — позови функцию, любезно предоставленную операционкой и получи готовую картинку. Наверняка многие из вас делали это не один раз, и, тем не менее, нельзя просто так взять и заскриншотить полноэкранное directx или opengl приложение. А точнее — можно, но в результате вы получите не скриншот этого приложения, а залитый черным прямоугольник.
Читать дальше →
Всего голосов 46: ↑45 и ↓1+44
Комментарии22

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

Время на прочтение4 мин
Количество просмотров8.9K
Имеется типична ситуация:

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

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

Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии5

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

Время на прочтение3 мин
Количество просмотров27K
В комментариях к недавнему топику возникло обсуждение: до какого размера можно ужать 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 байт, добавлю сюда ссылку.)


Пояснения
Всего голосов 49: ↑45 и ↓4+41
Комментарии18

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

Время на прочтение9 мин
Количество просмотров99K


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

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

Время на прочтение2 мин
Количество просмотров38K
Как сообщает 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.
Читать дальше →
Всего голосов 22: ↑22 и ↓0+22
Комментарии67

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность