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

Программист-фрилансер

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

Пишем свой BitTorrent-клиент на базе библиотеки Bt

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

Всем привет! В данной статье я расскажу о том, что из себя представляет библиотека Bt, чем она хороша и почему стоит иметь ее в виду, если для решения каких-то задач планируется использовать BitTorrent. Затем, в качестве демонстрации базовых функций и основного API, мы реализуем простейший консольный торрент-клиент.


Отличительные особенности Bt


Bt — это современная полнофункциональная реализация протокола BitTorrent на Java 8 [1]. По сравнению с существующими open-source аналогами [2][3], Bt обладает следующими преимуществами:

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

Отслеживаем действия пользователя с помощью CSS

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

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


Также здесь мы рассмотрим метод, как получить поведенческую информацию от пользователей используя только HTML и CSS.


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


Так или иначе, эта информация поможет вам понять один нестандартный метод отслеживания поведения пользователей, который на данный момент нельзя "отключить" (в настройках) или заблокировать (плагинами вроде AdBlock или Ghostery).

Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии49

Создаем CSS кейлоггер

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

Часто бывает так, что внешние JS файлы выглядят как угроза для клиента, в то время как внешнему CSS не придают особого значения. Казалось бы, как CSS правила могут угрожать безопасности вашего приложения, и собирать логины? Если вы считаете что это невозможно, то пост будет вам полезен.


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

Читать дальше →
Всего голосов 88: ↑87 и ↓1+86
Комментарии32

Шифрования сообщений вконтакте методом AES для браузеров Chrome и Firefox

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

После скандала с PRISM вопрос безопасности данных стал еще актуальней чем был, и даже если вы не секретный агент, то ваша личная переписка, должна соответствовать своему названию, и по умолчанию должна быть закрыта от доступа третьих лиц. Взяв это за аксиому это принцип, я занялся разработкой дополнений для браузеров для работы с популярной в странах СНГ социальной сетью вконтакте методом AES.
Читать дальше →
Всего голосов 80: ↑69 и ↓11+58
Комментарии132

Простейший кросcплатформенный сервер с поддержкой ssl

Время на прочтение5 мин
Количество просмотров29K
Не так давно передо мной встала задача: написать кроссплатформенный сервер для обработки запросов по протоколу ssl. До этого я писал сервера для обычных, не шифрованных протоколов, но с ssl столкнулся впервые.
Беглый обзор интернета показал, что лучшим решением будет не велосипедостроение, а использование библиотеки OpenSSL.
В этой статье я не хочу рассматривать процесс установки OpenSSL на Linux и Windows, замечу лишь, что для Windows процесс этот оказался нетривиальным. А рассказать я хочу о том, как мне удалось скомпилировать в Visual Studio пример простейшего сервера, входящий в состав исходников OpenSSL.
Неискушенному читателю может показаться: «что тут особенного — создал проект, включил в него готовый исходник, запустил»… Однако обо всем по порядку.

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

Как работает поиск в Kad Network

Время на прочтение3 мин
Количество просмотров11K
Довольно часто встречаются жалобы на то, что в Mainline DHT битторрента нет поиска по ключевым словам. Обычно просьбы о добавлении такого поиска на форумах BitTorrent Inc. игнорируются или получают традиционный ответ о том, что DHT не позволяет искать по ключевым словам, а только по индивидуальным ключам. Это в принципе верно, но существует такой выход из этой прискорбной ситуации как создание инвертированного индекса ключевых слов у каждой ноды.

Собственно так и работает поиск в Kad Network, реализации распределённой хэш-таблицы, основанной на довольно широко используемом протоколе Kademlia. Kad Network используется такими программами как eMule, iMule, aMule и MLDonkey для поиска хэшей файлов по ключевым словам и источников файлов по их хэшам.
Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии2

Разреженные файлы в NTFS

Время на прочтение2 мин
Количество просмотров26K
В NTFS есть поддержка разреженных файлов (sparse files). Это такие файлы, которые занимают меньше дискового пространства, чем их собственный размер. Данная технология не имеет отношения к встроенной в NTFS поддержке компрессии файлов, так как экономия места на диске в sparse-файлах основана на другом принципе. Никакого сжатия данных не осуществляется. Вместо этого, в файле высвобождаются области, занятые одними лишь нулями (0x00). Приложение, читающее разреженный файл, дойдя до области с нулями, прочитает нули, но реального чтения с диска не произойдёт.
Читать дальше →
Всего голосов 63: ↑53 и ↓10+43
Комментарии49

Какой была виртуальная реальность 1990-х

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

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


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


image
Кадр из фильма "Джонни Мнемоник"

Читать дальше →
Всего голосов 25: ↑22 и ↓3+19
Комментарии31

Обход NAT с помощью IPv6 & CloudFlare

Время на прочтение3 мин
Количество просмотров72K
Доброго времени суток. Сегодня я бы хотел поделиться с вами интересным способом решения проблемы доступа к вашему серверу/ПК из-за NAT, используя IPv6 Tunnel Broker и бесплатные возможности сервиса CloudFlare.

Предисловие


Как известно, многим пользователям предоставляется доступ в интернет или с помощью динамического IP-адреса, или с помощью технологии NAT.

Если первые еще могут воспользоваться каким-либо Free DDNS сервисом, то вторым приходится сидеть, сложа руки, или покупать у провайдера заветный статический IP-адрес.

В данной статье вы увидите как с помощью вышеупомянутых сервисов «захостить» блог из компьютера, который находится за NAT. В итоге сайт будет доступен даже там, где IPv6 подключения нет и в помине.
Читать дальше →
Всего голосов 27: ↑23 и ↓4+19
Комментарии16

Обзор фантастики на Geektimes с 2009 по 2017 годы

Время на прочтение23 мин
Количество просмотров44K
На geektimes есть хабы «Читальный зал» (про литературу для гиков), «Научная фантастика» (про научную фантастику), «Киберпанк» (про киберпанк). Как-то так повелось, что в эти хабы всякие деятели стали публиковать свои рассказы. Причём, это не только небольшие зарисовки, для лёгкого пятничного чтения, но и этакие «мыльные оперы»: в реальном времени можно следить, как авторы пишут главы рассказов, можно сказать, «Special for GT».

Я сейчас не хочу обсуждать целесообразность подобных публикаций на техническом ресурсе (кто-то за, кто-то против, кто-то предлагает создать отдельных хаб) или соответствие статей выбранным хабам. Так получилось, что последние пару лет я непериодически читал ресурс (вновь активно «сидеть» стал где-то только в последние полгода) и мне стало интересно — а сколько же фантастики тут вообще написано?



Предлагаю вниманию небольшой обзор по становлению литературной составляющей хаба «Читальный зал», а так же список рассказов с моими краткими аннотациями.
Читать дальше →
Всего голосов 54: ↑49 и ↓5+44
Комментарии152

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

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

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

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

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

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

Пассивный DPI

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

Создаём собственный программный 3D-движок

Время на прочтение32 мин
Количество просмотров50K
image

Часть 1: точки, векторы и базовые принципы


Современные трёхмерные игровые движки, используемые в крупнейших проектах — это тонкая смесь математики и программирования. Многие программисты игр признают, что всецело понять их очень непросто. Если вам не хватает опыта (или профессионального образования, как мне), эта задача становится ещё более сложной. Я хочу познакомить вас с основами графических систем 3D-движков.

В этой части мы рассмотрим точки и векторы, а также всё интересное, что с ними связано. Если вы владеете основами алгебры (переменные и математика переменных) и информатики (основы любого объектно-ориентированного языка), то сможете разобраться в этой статье. Но учтите, некоторые из тем будут довольно сложными.
Читать дальше →
Всего голосов 36: ↑35 и ↓1+34
Комментарии12

Все технологии туннелирования IPv6 понятным языком

Время на прочтение4 мин
Количество просмотров69K
Ура-ура, появился хаб IPv6!
В этой статье я хотел бы рассмотреть все актуальные способы туннелирования IPv6 через готовую IPv4-инфраструктуру, описанные в RFC 7059. Один из немногих RFC, написанных понятным человеческим языком, кстати.
Вы все еще сомневаетесь, нужен ли вам IPv6?
  • У всех устройств белый IP. Никаких NAT, никаких пробросов портов
  • Выше скорость скачивания торрентов за счет пиров, имеющих IPv6-адрес, но с «серым» IPv4.
  • В некоторых случаях, выше скорость доступа к сайтам (YouTube через IPv6 не тормозит по вечерам)
  • Доступ к сайтам, заблокированным в РФ, имеющим IPv6-адрес (nnm-club, например)
Но это еще не все. Представьте ситуацию, когда у вас сломался DHCP-сервер, а на компьютер в этой сети нужно побыстрее бы зайти. Он не получает IP-адрес, вы не можете на него зайти. Беда. Однако, если у вас был просто включен IPv6 — даже не настроен — то вы можете просто пропинговать магический адрес ff02::1, получить ответ от этого компьютера (т.к. у него в любом случае будет link-local IPv6-адрес!) и зайти на него.

Ну да ладно, перейдем к туннелированию.

6in4
Один из самых старых способов туннелирования, придуманный аж в 1996 году, и до сих пор очень популярный. Такие крупные туннель-брокеры, как Hurricane Electric, gogo6 и SIXXS используют его. Использует протокол 41 (не путайте с портом!) и не работает через NAT. Поддерживается всеми современными ОС из коробки.
Читать дальше →
Всего голосов 44: ↑42 и ↓2+40
Комментарии23

«Гринпис» и iFixit выступили против запланированного устаревания гаджетов

Время на прочтение4 мин
Количество просмотров27K
Компания iFixit уже много лет ведёт кампанию за ремонтопригодность техники. Она выступает за то, чтобы производители публиковали документацию на свои устройства, не мешали работе независимых мастерских, не мешали заменять комплектующие в своей технике на альтернативные детали сторонних поставщиков и т. д.

iFixit справедливо указывает на то, что производителям выгодно запланированное устаревание гаджетов. Им выгодно, чтобы потребитель выбрасывал поломавшуюся технику, а не чинил её. Они хотят, чтобы человек постоянно покупал новые смартфоны, планшеты, ноутбуки и компьютеры. Производители даже рассчитывают, с какой периодичностью потребитель должен покупать новые гаджеты. Например, смартфоны он должен менять каждые 1,5 года.

Во-первых, такой консюмеризм бьёт по карману людей. Современный человек вынужден работать больше, чем его предки сто лет назад — только для того, чтобы позволить себе постоянно менять гаджеты, автомобили и прочие вещи. Во-вторых, пишет iFixit, постоянная смена гаджетов вместо ремонта увеличивает количество электронного мусора.
Читать дальше →
Всего голосов 39: ↑37 и ↓2+35
Комментарии223

ООН гарантировала права личности в интернете

Время на прочтение2 мин
Количество просмотров7.1K
В четверг произошло событие мировой значимости. Совет ООН по правам человека принял первую резолюцию о свободе распространения информации в интернете. 47 государств-членов ООН подписали документ, в которой говорится о том, что право на доступ в интернет является неотъемлемым правом человека и не может быть никем ограничено.

Представитель США в Совете Эйлин Чамберлейн Донахью назвала итоги голосования чрезвычайно важными. По ее словам, это первая резолюция ООН, которая подтверждает необходимость защищать права личности в интернете с той же настойчивостью, с какой это делается в «реальном мире».

Министр иностранных дел Швеции Карл Бильдт (именно этой страной и был предложен проект документа) назвал голосование «победой для Интернета»: «Мы не можем признать, что содержание Интернета должно быть ограничено или им можно манипулировать в зависимости от меняющихся пристрастий политических лидеров.Только путем обеспечения доступа к открытой и глобальной сети Интернет будет осуществляеться настоящее развитие», — заявил он.

Но не все были за принятие данной резолюции.
Читать дальше →
Всего голосов 70: ↑65 и ↓5+60
Комментарии46

ООН причислила шифрование и анонимность в интернете к правам человека

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

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

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

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

Различные агентства и главы государств неоднократно высказывались в том ключе, что современные средства шифрования позволяют террористам и преступникам уходить от ответственности и затрудняют работу спецслужб.
Читать дальше →
Всего голосов 67: ↑66 и ↓1+65
Комментарии34

Фантастика и фентези за два с половиной года, почти сто хороших книг

Время на прочтение22 мин
Количество просмотров244K
На этот пост меня подтолкнула публикация «Почему я ворую книги, бедные авторы, и как это исправить», а именно — скепсис и возражения на мой комментарий о том, что я не читаю плохие книги. Мне предложили рассказать, как я выбираю книги для чтения и что именно читаю. Ну я и повелся.
Оформить список было сравнительно просто, FBReader любезно хранил на GoogleDrive все скачанные книги с того момента, как там появилась эта услуга. Предлагаю вашему вниманию список прочитанного мной за 2,5 года из жанров фентези и фантастики.
Читать дальше →
Всего голосов 70: ↑66 и ↓4+62
Комментарии553

Cпойлер средствами css…

Время на прочтение3 мин
Количество просмотров108K
В предпраздничные дни выдалась минутка, захотелось отвлечься — окунуться в мир занятных идей, отстранясь от забот праздника. В итоге, — идея: не ожидая пришествия html5, — смастерить спойлер «по клику» посредством css и HTML.

Подробности
Всего голосов 60: ↑39 и ↓21+18
Комментарии65

Узник Тора

Время на прочтение7 мин
Количество просмотров61K
image

История задержания московского учителя математики Дмитрия Богатова по обвинению в двух тяжких преступлениях всколыхнула не только российскую IT-тусовку, но и многих зарубежных гиков и сторонников ПО с открытым кодом. По версии следствия, Дима под аккаунтом “Айрат Баширов” размещал на сайте sysadmins.ru сообщения с призывами к осуществлению террористической деятельности и направленные на организацию массовых беспорядков. Дима отрицает, что писал эти сообщения. Когда жена и мама арестованного обратились в РосКомСвободу с просьбой помочь, мы, конечно же, не могли им отказать и сразу же включились в работу по его защите.

20 апреля наш адвокат Саркис Дарбинян встретился с Димой в “Матроске”, принял участие в следственных действиях и выяснил все подробности дела для проработки эффективной стратегии защиты. Безосновательное ограничение его свободы нас, как и всё IT-сообщество, очень сильно беспокоит. Он не только пользовался открытым программным обеспечением и являлся адептом идей свободного распространения информации, но и всячески пытался внести свой личный вклад в развитие открытых технологий.
Всего голосов 85: ↑82 и ↓3+79
Комментарии378

Информация

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