Pull to refresh
0
0
Boris P @AlexeyK

Пользователь

Send message

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

Reading time 7 min
Views 696K
Провайдеры Российской Федерации, в большинстве своем, применяют системы глубокого анализа трафика (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
Comments 352

Тюнинг сетевого стека Linux для ленивых

Reading time 5 min
Views 90K

Сетевой стек Linux по умолчанию замечательно работает на десктопах. На серверах с нагрузкой чуть выше средней уже приходится разбираться как всё нужно правильно настраивать. На моей текущей работе этим приходится заниматься едва ли не в промышленных масштабах, так что без автоматизации никуда – объяснять каждому коллеге что и как устроено долго, а заставлять людей читать ≈300 страниц английского текста, перемешанного с кодом на C… Можно и нужно, но результаты будут не через час и не через день. Поэтому я попробовал накидать набор утилит для тюнинга сетевого стека и руководство по их использованию, не уходящее в специфические детали определённых задач, которое при этом остаётся достаточно компактным для того, чтобы его можно было прочитать меньше чем за час и вынести из него хоть какую-то пользу.

Читать дальше →
Total votes 94: ↑94 and ↓0 +94
Comments 45

О языке С и производительности

Reading time 31 min
Views 64K


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

Но как можно считать себя профессионалом в каком-либо (высокоуровневом) языке, если даже не знаешь, как именно работает процессор, как он выполняет вычисления, эффективным ли способом? Сегодня автоматическое управление памятью становится главной проблемой в большинстве высокоуровневых языков, и многие программисты подходят к её решению без достаточной теоретической базы. Я уверен, что знание низкоуровневых процессов сильно помогает в разработке эффективных высокоуровневых программ.
Читать дальше →
Total votes 153: ↑141 and ↓12 +129
Comments 269

Kill switch для OpenVPN на основе iptables

Reading time 5 min
Views 32K
Известно, что при подключении к открытым Wi-Fi сетям ваш трафик может быть легко прослушан. Конечно, сейчас всё больше и больше сайтов используют HTTPS. Тем не менее, это ещё далеко не 100%. Возникает естественное желание обезопасить свой трафик при подключении к таким открытым Wi-Fi сетям.

Популярное решение этой проблемы — подключение через VPN. В таком случае ваш трафик передается в зашифрованном виде до VPN-сервера, и уже оттуда идет в интернет.

У такого решения есть небольшой недостаток: пока VPN-подключение ещё не установлено, все приложения на вашем компьютере (включая открытые вкладки браузера) получают доступ в интернет в обход VPN-подключения.

В этой статье я расскажу, как можно этого избежать.

Читать дальше →
Total votes 25: ↑25 and ↓0 +25
Comments 12

Консоль разработчика Google Chrome: десять неочевидных полезностей

Reading time 6 min
Views 227K
Как с помощью консоли разработчика превратить Google Chrome в подобие текстового редактора? Какой смысл в ней приобретает знакомый многим по jQuery значок $? Как вывести в консоль набор значений, оформленный в виде вполне приличной таблицы? Если сходу ответы на эти вопросы в голову не приходят, значит вкладка Console из инструментов разработчика Chrome ещё не раскрылась перед вами во всей красе.

image

На первый взгляд, перед нами – вполне обычная JavaScript-консоль, которая годится только на то, чтобы выводить в неё логи ответов серверов или значения переменных. Я, кстати, так ей и пользовался, когда только начал программировать. Однако, со временем набрался опыта, подучился, и неожиданно для себя обнаружил, что консоль Chrome умеет много такого, о чём я и не догадывался. Хочу об этом сегодня рассказать. Да, если вы читаете сейчас не на мобильнике, можете тут же всё это и попробовать.
Читать дальше →
Total votes 88: ↑83 and ↓5 +78
Comments 62

Как работают ИТ-специалисты. Игорь Сысоев — основатель и СТО в Nginx

Reading time 2 min
Views 21K
image7 и 8 ноября в Сколково прошла конференция HighLoad++ 2016. Более 200 экспертов выступали с докладами о высоконагруженных сервисах, проблемах работы с ними, администрировании и многом другом.

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

С каждым мы провели интервью в формате блиц-опроса. Будет интересно выяснить, что объединяет этих IT-специалистов, в чем они похожи. Возможно, их ответы помогут выявить какие-то общие закономерности, полезные советы, которые помогут многим из нас.
Читать дальше →
Total votes 52: ↑46 and ↓6 +40
Comments 15

50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

Reading time 44 min
Views 211K


Go — простой и забавный язык. Но в нём, как и в любых других языках, есть свои подводные камни. И во многих из них сам Go не виноват. Одни — это естественное следствие прихода программистов из других языков, другие возникают из-за ложных представлений и нехватки подробностей. Если вы найдёте время и почитаете официальные спецификации, вики, почтовые рассылки, публикации в блогах и исходный код, то многие из подводных камней станут для вас очевидны. Но далеко не каждый так начинает, и это нормально. Если вы новичок в Go, статья поможет сэкономить немало часов, которые вы бы потратили на отладку кода. Мы будем рассматривать версии Go 1.5 и ниже.
Читать дальше →
Total votes 80: ↑76 and ↓4 +72
Comments 270

Как запустить ClickHouse своими силами и выиграть джекпот

Reading time 15 min
Views 77K

Мы решили описать простой и проверенный путь для тех, кто хочет внедрить аналитическую СУБД ClickHouse своими силами или просто испробовать ClickHouse на собственных данных. Именно этот путь прошли мы сами в новостном агрегаторе СМИ2 и добились впечатляющих результатов.


Clickhouse-client


В предисловии статьи — небольшой рассказ о наших попытках внедрить Druid и InfluxDB. Почему после успешного запуска ClickHouse мы смогли отказаться от использования InfiniDB и Cassandra.


Total votes 59: ↑59 and ↓0 +59
Comments 50

Идентификация личности по обычной охранной камере: приключения на одной проходной

Reading time 5 min
Views 96K

Фото с объекта нельзя. Это — примерно похожее место на примере КРОК.

Началось всё с кота-терминатора. На начало операции мы знали следующее:

  • При строительстве здания с крупным продуктовым рабочая бригада завела кота, чтобы он ловил крыс.
  • После приёмки кот незнамо где заныкался, и уже три или четыре года его никто не видел.
  • Какая-то сволочь показала ему прямую взаимосвязь между открытым мешком кошачьего корма из торгового зала и появлением корма.
  • Появлялся он только на камерах — приходил ночью охотиться на мешки, причём как настоящий матёрый охотник, детей и самок не трогал, а брал только жирных самцов, то есть выбирал самые крупные мешки, неожиданно на них прыгал и вскрывал им брюхо.
  • Ему пробовали на ночь накладывать отдельную миску с кормом, но он был уже далеко не домашним, и отказаться от охоты не мог.
  • Кроме этого, кот любил крайне дорогой алкоголь: сотрудники догадались списывать на кота бутылки. Мол, уронил, уборщица уже осколки убрала.
  • Суммарный убыток он приносил примерно на 50–100 тысяч в месяц (да, это будет покруче, чем в нашумевшей истории про единоразовый обед кота на 1000 долларов в аэропорту Владивостока).
  • За поимку кота уже 4 месяца была награда в 5 тысяч рублей.

Мысль про алкоголь навела нас на идею о том, что стоит для начала проверить, насколько честны сотрудники. Так, слово за слово, мы поставили свою камеру на пункт пропусков в задней части магазина и начали смотреть на тех, кто заходит в здание.

Здесь и нас и операционного директора ждало несколько открытий, согласующихся с русским менталитетом. Когда мы для начала узнали, что происходит, мату главного просто не было предела.
Читать дальше →
Total votes 157: ↑147 and ↓10 +137
Comments 123

Сделано в МТИ: система контроля версий Gitless

Reading time 4 min
Views 36K

Все вы знаете систему Git. Хотя бы слышали — это наверняка. Разработчики, которые пользуются системой, ее или любят, или ругают за сложный интерфейс и баги. Система управления версиями Git де-факто является стандартом в индустрии. У разработчика могут быть мнения о преимуществах Mercurial, но чаще всего приходится мириться с требованием уметь пользоваться Git. Как у любой сложной системы, у нее множество полезных и необходимых функций. Однако, до гениальной простоты добираются не все, поэтому существующая реализация оставляла пространство для совершенствования.

Простыми словами — мудреным приложением было трудно пользоваться. Поэтому в лаборатории Массачусетского Технологического Института взялись за улучшения и отсекли все «проблемные элементы» (ведь то, что для одного проблема, для другого легко может быть преимуществом). Улучшенную и упрощенную версию назвали Gitless. Её разрабатывали с учетом 2400 вопросов, связанных с Git и взятых с сайта разработчиков StackOverflow.

Команда авторов вычленила самые проблемные места в Git, включая две концепции staging и stashing. Затем они предложили изменения, призванные решить известные проблемы.
Читать дальше →
Total votes 97: ↑87 and ↓10 +77
Comments 93

Как работает Git

Reading time 19 min
Views 148K
В этом эссе описана схема работы Git. Предполагается, что вы знакомы с Git достаточно, чтобы использовать его для контроля версий своих проектов.

Эссе концентрируется на структуре графа, на которой основан Git, и на том, как свойства этого графа определяют поведение Git. Изучая основы, вы строите своё представление на достоверной информации, а не на гипотезах, полученных из экспериментов с API. Правильная модель позволит вам лучше понять, что сделал Git, что он делает и что он собирается сделать.

Текст разбит на серии команд, работающих с единым проектом. Иногда встречаются наблюдения по поводу структуры данных графа, лежащего в основе Git. Наблюдения иллюстрируют свойство графа и поведение, основанное на нём.

После прочтения для ещё более глубокого погружения можно обратиться к обильно комментируемому исходному коду моей реализации Git на JavaScript.
Читать дальше →
Total votes 110: ↑99 and ↓11 +88
Comments 38

Советы западных консалтинговых компаний. Часть 1, теоретическая

Reading time 19 min
Views 38K


В статье «Как новые руководители разрушают доверенные им компании» мы остановились на роли в этом процессе иностранных консалтинговых фирм.

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

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

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

Но всё же, как эти консалты умудряются «угодить и нашим и вашим»?
Как они ведут дела так, что их деятельность одновременно одобряют и руководители компаний РФ, и западные спецслужбы?

Это не магия и не искусство, это — отработанная технология.
Total votes 60: ↑40 and ↓20 +20
Comments 159

В ядре Linux обнаружена опасная 0-day уязвимость Dirty COW (CVE-2016-5195)

Reading time 2 min
Views 43K


В ядре Linux обнаружена опасная уязвимость, которая связана с обработкой подсистемой памяти ядра механизма copy-on-write (COW). Эксплуатируя баг можно спровоцировать так называемое состояние гонки (race condition). При эксплуатации уязвимости неавторизованный локальный пользователь сможет получить доступ к memory mappings с правом записи, хотя доступ должен быть ограничивать только чтением (read-only). Уязвимость относится к privilege escalation.
Читать дальше →
Total votes 68: ↑67 and ↓1 +66
Comments 51

Социальная Архитектура: стратагемы для успеха open source проектов

Reading time 7 min
Views 11K
Питер Хинченс (Pieter Hintjens) — бельгийский разработчик, писатель. Занимал должность CEO и chief software designer для iMatix, компании, производящей free software, такие как библиотека ZeroMQ (библиотека берет на себя часть забот по буферизации данных, обслуживанию очередей, установлению и восстановлению соединений, и прочие вещи), OpenAMQ, Libero, GSL code generator, и веб-сервиса Xitami.

  • Автор более 30 протоколов и распределённых систем.
  • Основатель проекта Edgenet по созданию полностью безопасной, анонимной глобальной P2P-сети.
  • Президент ассоциации Foundation for a Free Information Infrastructure (FFII), которая воевала с патентным правом.
  • CEO сервиса по созданию собственных вики-проектов Wikidot.
  • Он был активистом open standards, и основателем Digital Standards Organization.
  • Питер в 2007 был назван одним из «50 самых влиятельных людей в области Интеллектуальная собственность».


Когда Питер Хинченс узнал, что жить ему осталось несколько лет, он решил подвести итог своим трудам и систематизировать свое наследие. 3 октября 2016 Питер Хинченс решился на эвтаназию.

Один из его предсмертных трудов — книга «Социальная Архитектура», про построение онлайн-сообществ по разработке open source проектов. Хочу представить вам переводы некоторых глав.

Шаблоны для успеха


Это глава с серией шаблонов поведения для достижения успеха в разработке программного обеспечения. Они стремятся включить всё, что отделяет успех от славной трагической неудачи. Они были написаны за один день как “религиозно-маниакальные догматы” руководителем и “всё остальное безумное” — коллегой. Для меня они являются наукой. Но относитесь к Ленивым перфекционистам и другим инструментам так, как вы относитесь к обычным инструментам — заточите их, используйте и выбросите, если подвернется что-то получше.

Total votes 27: ↑24 and ↓3 +21
Comments 4

Питер Тиль: Из шести сооснователей PayPal, четверо собирали бомбы, будучи школьниками

Reading time 8 min
Views 26K
«Ваш мозг — это ПО. Программируйте его. ваше тело — это оболочка. Меняйте его. Смерть — это болезнь. Исцелитесь. Вымирание приближается. Боритесь с ним.»



Сегодня день рождения Питера Тиля, дона PayPal мафии. Ему стукнуло 49 лет.

Его ачивки:

  • Основал PayPal в 1998 с Максом Левчиным
  • Первый внешний инвестор Facebook ($500 тыс.)
  • В 2003 году основал компанию Palantir
  • Управляющий партнер в Founders Fund
  • Сооснователь и председатель инвестиционного комитета Mithril Capital Management (фонд для инвестиций на поздней стадии)
  • С 2010 года 30 студентам предоставляет по $100 000, чтобы они бросили универ и занимались своим проектом (в 2014 году инвестировал в Ethereum)
  • В 2015 стал партнером стартап-инкубатора Y Combinator

Журналист: — В «Википедии» говорится, что вы входите в управляющий комитет Бильдербергского клуба. Правда ли это, и если да, чем вы там занимаетесь? Организуете тайное мировое господство?

Питер Тиль: — Это правда, хотя все не до такой степени тайно или секретно, чтобы я не мог вам рассказать. Суть в том, что ведется хороший диалог между разными политическими, финансовыми, медиа- и бизнес-лидерами Америки и Западной Европы. Никакого заговора нет. И это проблема нашего общества. Нет секретного плана. У наших лидеров нет секретного плана, как решить все наши проблемы. Возможно, секретные планы – это и плохо, но гораздо возмутительнее, по-моему, отсутствие плана в принципе.

Под катом — несколько цитат по ключевым направлениям деятельности Тиля. Попробуем отследить ход мыслей великого ИТ-стратега.
Total votes 20: ↑20 and ↓0 +20
Comments 22

Как мы отучили аутсорсинг перекидываться мячом со внутренним ИТ-отделом

Reading time 5 min
Views 52K


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

Началась история с того, что нам понадобилась централизованная система с фермой терминалов. На тот момент у нас было порядка 10 магазинов, и каждый из них вёл свою базу, данные из которой использовались для составления совокупного отчёта в конце периода или по запросу.
Читать дальше →
Total votes 87: ↑80 and ↓7 +73
Comments 56

Как преподнести учащимся курсовой/дипломный проект или строим «башню» со второго этажа

Reading time 5 min
Views 7.4K
Перед преподавателем стоит задача не только «начитать материал», но и заинтересовать учащихся. Личная заинтересованность, как правило, лучший двигатель и допинг, которые позволяют погрузиться в предмет, читать статьи и книги, а не только Википедию по диагонали, проходить дополнительные курсы и сдавать квалификационные экзамены.

Как «зажечь» интерес? Как подобрать материал и преподнести его, помочь увидеть перспективность исследуемой темы и востребованность знаний? Курсовой/дипломный проект, на мой взгляд, сложнее в плане поддержания заинтересованности, по сравнению с освоением курса лекций, т.к. требует усилий. Выбирая тему студент, часто в силу разных причин, ориентируется на минимизацию усилий, воспринимая курсовую/диплом как «что-то ненужное/для галочки/неизбежное зло», а не на повышение своего уровня реальных знаний.
Попробуем сделать это
Total votes 14: ↑13 and ↓1 +12
Comments 38

Как устроен поиск

Reading time 28 min
Views 34K
Андрей Аксёнов

Андрей Аксенов (shodan, Разработчик поискового движка Sphinx)


Поиск устроен вот так:

Краткое устройство поиска

Индексация – по большому счету, ничего сложного. Понятное дело, что по малому счету, там в каждой из трех «деталей» спрятан не то, что демон, а целое где-то стадо, где-то легион, не совсем понятно. Но концепция всегда простая. Все начинается с маленького простенького патчика к Многосерчу, а потом 15 лет этой херней занимаешься.

Берешь документы, разваливаешь их на ключевые слова. И просто взять и развалить документ на ключевые слова «мама, мыла, раму» – это ты не далеко ушел от grep’а, потому что потом все равно эти ключевые слова перебирать. Надо строить некую спец. структуру – полнотекстовый индекс. Вариантов для его построения человечество придумало в свое время довольно много, но, слава Богу, от всех отказалось и в нормальных продакшн системах, по большому счету, победил на данный момент вариант ровно один. Про него и буду рассказывать. Все остальные имеют скорее историческое значение, что ли, и практического интереса не представляют.
Total votes 64: ↑53 and ↓11 +42
Comments 22

Juniper Hardware Architecture

Reading time 20 min
Views 72K


Современные маршрутизаторы обрабатывают по несколько миллионов пакетов в секунду, работают с несколькими FV таблицами маршрутизации, позволяют реализовать огромное количество сервисов. Различные вендоры используют разный подход к построению оборудования. В данной статье не будет огромного количества выводов. Сегодня поговорим об архитектуре оборудования Juniper.
Читать дальше →
Total votes 33: ↑32 and ↓1 +31
Comments 14

Архитектура распределенных вычислений: от облака к туману и росе

Reading time 5 min
Views 12K

Независимые вычисления, совместимые с облачными, называются росистыми (прости, Хабр, но другого хорошего определения Dew Computing на русском языке мы не нашли). Основной принцип росистых вычислений в том, что они восполняют основной недостаток облачных вычислений — требование к стабильному интернет-подключению. Хотя росистые вычисления и будут обеспечивать сервисы и функции в режиме оффлайн, по-прежнему вызывает недоверие длительность промежутка времени, в течение которого будет недоступно облако. Здесь поможет дополнительный уровень — туманные вычисления, который является своеобразной прослойкой между облачными и росистыми вычислениями. В этой статье, собранной из нескольких источников, мы рассмотрим данный концепт подробнее.

image

Читать дальше
Total votes 12: ↑10 and ↓2 +8
Comments 4

Information

Rating
Does not participate
Registered
Activity