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

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

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

Настройка BGP для обхода блокировок, или «Как я перестал бояться и полюбил РКН»

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

Ну ладно, про «полюбил» — это преувеличение. Скорее «смог сосуществовать с».


Как вы все знаете, с 16 апреля 2018 года Роскомнадзор крайне широкими мазками блокирует доступ к ресурсам в сети, добавляя в "Единый реестр доменных имен, указателей страниц сайтов в сети «Интернет» и сетевых адресов, позволяющих идентифицировать сайты в сети «Интернет», содержащие информацию, распространение которой в Российской Федерации запрещено" (по тексту — просто реестр) по /10 иногда. В результате граждане Российской Федерации и бизнес страдают, потеряв доступ к необходимым им совершенно легальным ресурсам.


После того, как в комментариях к одной из статей на Хабре я сказал, что готов помочь пострадавшим с настройкой схемы обхода, ко мне обратились несколько человек с просьбой о такой помощи. Когда у них всё заработало, один из них порекомендовал описать методику в статье. Поразмыслив, решил нарушить свое молчание на сайте и попробовать в кои-то веки написать что-то промежуточное между проектом и постом в Facebook, т.е. хабрапост. Результат — перед вами.

Читать дальше →
Всего голосов 124: ↑120 и ↓4+116
Комментарии303

Обход блокировок РКН с помощью DNSTap и BGP

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


Тема довольно изъезжена, знаю. К примеру, есть отличная статья, но там рассматривается только IP-часть блоклиста. Мы же добавим еще и домены.


В связи с тем, что суды и РКН блокируют всё направо и налево, а провайдеры усиленно пытаются не попасть под штрафы, выписанные "Ревизорро" — сопутствующие потери от блокировок довольно велики. Да и среди "правомерно" заблокированных сайтов много полезных (привет, rutracker)


Я живу вне юрисдикции РКН, но на родине остались родители, родственники и друзья. Так что было решено придумать легкий для далеких от ИТ личностей способ обхода блокировок, желательно вовсе без их участия.


В этой заметке я не буду расписывать базовые сетевые вещи по шагам, а опишу общие принципы как можно реализовать эту схему. Так что знания как работает сеть вообще и в Linux в частности — must have.

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

Многопоточность в .NET: когда не хватает производительности

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


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

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

Под катом — видео и расшифровка моего доклада с конференции DotNext, где я разбираю несколько примеров, когда использование средств из стандартной библиотеки .NET (Task.Delay, SemaphoreSlim, ConcurrentDictionary) привело к просадкам производительности, и предлагаю решения, заточенные под конкретные задачи и лишённые этих недостатков.
Всего голосов 49: ↑48 и ↓1+47
Комментарии87

Обзор ноутбука Dell Latitude 7390: корпоративный супергерой

Время на прочтение8 мин
Количество просмотров53K
Привет, друзья! Совсем недавно мы провели мероприятие, посвященное запуску новых ноутбуков Dell Latitude в России, и сразу же после него одна из «топовых» машин серии оказалась в нашем московском офисе. Мы ее пристально изучили и теперь хотим поделиться с вами подробными впечатлениями от использования. Знакомьтесь: это Latitude 7390, компактный 13-дюймовый лэптоп с процессором Intel Core 8-го поколения, быстрым NVMe SSD, опциональным LTE-модемом, считывателем смарт-карт и хорошей автономностью.


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

Проектирование процессора ModelSim

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

Часть I
Часть II
Часть III
Часть IV
Часть V

Это полная версия предыдущей статьи, к которой добавлены тестбенчи.

Спроектируем Little Man Computer на языке Verilog.

Статья про LMC была на Хабре.

Online симулятор этого компьютера здесь.

Напишем модуль оперативной памяти (ОЗУ), состоящий из четырех (ADDR_WIDTH=2) четырёхбитных (DATA_WIDTH=4) слов. Данные загружаются в ОЗУ из data_in по адресу adr при поступлении тактового сигнала clk.

module R0 #(parameter ADDR_WIDTH = 2, DATA_WIDTH = 4)
(
    input clk, //тактовый сигнал
    input [ADDR_WIDTH-1:0] adr, //адрес
    input [DATA_WIDTH-1:0] data_in, //порт ввода данных
    output [DATA_WIDTH-1:0] RAM_out //порт вывода данных
);
    reg [DATA_WIDTH-1:0] mem [2**ADDR_WIDTH-1:0]; //объявляем массив mem
 
    always @(posedge clk) //при поступлении тактового сигнала clk 
        mem [adr] <= data_in; //загружаем данные в ОЗУ из data_in 
    
    assign RAM_out = mem[adr]; //назначаем RAM_out портом вывода данных
endmodule
Читать дальше →
Всего голосов 43: ↑43 и ↓0+43
Комментарии1

Пневмоника и влажные мечты стимпанка

Время на прочтение13 мин
Количество просмотров64K
“Пневмоавтоматика с каждым годом приобретает все большее значение для современной техники. Пневматические приборы широко применяются при автоматизации производственных процессов и при управлении энергетическими установками”

Л.А.Залманзон Пневмоника. Струйная пневмоавтоматика. изд. Наука, М. 1965


Рисунок 1: Fluidic Kit by Tekniska musee


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


Введение


Знаете ли вы что такое эффект прилипания струи к стенке? Пройдемся ка с вами в ванную, предварительно захватив с собой столовую ложку:



Рисунок 2: Эффект прилипания струи


Мы видим, как струя воды соприкоснувшись с горбом ложки тут же прилипает к ее стенке, заметно искривляясь. Это явление известно давно и описывалось многими исследователями, в том числе такими видными как Юнг и Рейнольдс. Свое название “Эффект Коанда”, однако это явление получило по имени работавшего во Франции румынского изобретателя Анри Коанда, который в начале прошлого века предложил использовать его для ряда технических приложений.

Всего голосов 108: ↑108 и ↓0+108
Комментарии96

Бесплатное программное обеспечение для IP-камер

Время на прочтение5 мин
Количество просмотров753K
За 11 лет работы на рынке видеонаблюдения, нам пришлось столкнутся с множеством программ для управления системами видеонаблюдения, с какими-то мы работали, какие то тестировали, какие хотели потестировать, но так и не успели этого сделать, про какое-то просто читали в обзорах подобных тому, что читаете вы.

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

Все программное обеспечение разбито на три группы:

  • Программное с открытым исходным кодом
  • Бесплатное программное обеспечение с ограниченным функционалом
  • Программное обеспечение бесплатное в течении пробного периода

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

Как правильно настроить Wi-Fi

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


Введение


Думаю, не ошибусь сильно, если у большинства из нас подключение к интернету выглядит следующим образом: есть некоторый довольно скоростной проводной канал до квартиры (сейчас уже и гигабит не редкость), а в квартире его встречает роутер, который раздаёт этот интернет клиентам, выдавая им «чёрный» ip и осуществляя трансляцию адресов.

Довольно часто наблюдается странная ситуация: при скоростном проводе, с роутера раздаётся совсем узенький wifi-канал, не загружающий и половины провода. При этом, хотя формально Wi-Fi, особенно в его ac-версии поддерживает какие-то огромные скорости, при проверке оказывается, что либо Wi-Fi подключается на меньшей скорости, либо подключается, но не выдаёт скорости на практике, либо теряет пакеты, либо всё вместе.

В какой-то момент и я столкнулся с похожей проблемой, и решил настроить свой Wi-Fi по-человечески. На удивление, это заняло примерно в 40 раз дольше, чем я ожидал. Вдобавок, как-то так случилось, что все инструкции по настройке Wi-Fi, которые я находил, сходились к одному из двух видов: в первом предлагали поставить роутер повыше и выпрямить антенну, для чтения второго же мне не хватало честного понимания алгоритмов пространственного мультиплексирования.

Собственно, эта заметка — это попытка заполнить пробел в инструкциях. Я сразу скажу, что задача до конца не решена, несмотря на приличный прогресс, стабильность подключения всё ещё могла бы быть лучше, поэтому я был бы рад услышать комментарии коллег по описанной тематике.
Читать дальше →
Всего голосов 58: ↑56 и ↓2+54
Комментарии111

STM32 + EmBlocks — мигаем светодиодами

Время на прочтение3 мин
Количество просмотров67K
Как и просили в комментариях к предыдущей статье о EmBlocks, сегодня я покажу от начала и до конца как создать в EmBlocks простой проект для мигания парой светодиодов.
В качестве отладочной платы мы будем использовать кроху на STM32F103C8.
Вот наш стенд:

Подключаем аноды светодиодов к пинам PB5 и PB6, катоды через резсторы в 390 Ом к земле.
Заставим их перемигиваться
Всего голосов 24: ↑19 и ↓5+14
Комментарии35

FreeRTOS: межпроцессное взаимодействие

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

Здравствуйте. В данной статье я постараюсь описать метод межпроцессного обмена данными и синхронизацию с эвентами.
Ссылки на остальные части:
FreeRTOS: введение.
FreeRTOS: мьютексы и критические секции.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии4

Исследование защищенности карты Тройка

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

Карта Тройка представляет из себя универсальный пополняемый электронный кошелек, широко используемый в системах оплаты общественного транспорта Москвы с 2013 года.

Цель данного исследования — выяснить защищенность системы электронного кошелька от подделки баланса, оценить безопасность инфраструктуры, работающей с картой. Вся работа была выполнена без использования специальных технических средств. Использовался дешевый смартфон на платформе Android и персональный компьютер. Общее время, затраченное на исследование, составило 15 дней.

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

Итогом исследования стала разработка приложения TroikaDumper, позволяющего эксплуатировать уязвимости системы электронного кошелька.

Внимание! Данные материалы представлены исключительно в ознакомительных целях. Подделка проездных билетов является уголовным преступлением и преследуется по закону.

Читать дальше →
Всего голосов 380: ↑374 и ↓6+368
Комментарии348

Эмодзи?! Нет, не слышал

Время на прочтение5 мин
Количество просмотров36K
image В нашу жизнь уже давно вошли эмодзи. И в социальных сетях, и во всевозможных мессенджерах мы используем их не задумываясь, выражая свои эмоции всего одним символом. Но для кроссплатформенного приложения отправка и отображение эмодзи — непростая задача. Проблема заключается в том, что отправленные эмодзи с мобильных приложений не всегда отображаются корректно на веб-сайтах.

Последние версии iOS и Android имеют поддержку более 1200 символов эмодзи, но «десктопный» рынок не может похвастаться такими успехами. Мы же в Badoo хотим и делаем все, чтобы пользователям было комфортно общаться на всех платформах, не имея никаких ограничений в переписке.
Далее я расскажу, каким способом мы добились 100% поддержки эмодзи для веба.
Читать дальше →
Всего голосов 37: ↑34 и ↓3+31
Комментарии32

Основы Elasticsearch

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

Elasticsearch — поисковый движок с json rest api, использующий Lucene и написанный на Java. Описание всех преимуществ этого движка доступно на официальном сайте. Далее по тексту будем называть Elasticsearch как ES.


Подобные движки используются при сложном поиске по базе документов. Например, поиск с учетом морфологии языка или поиск по geo координатам.


В этой статье я расскажу про основы ES на примере индексации постов блога. Покажу как фильтровать, сортировать и искать документы.

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

Отправляем сообщения в Telegram из C#

Время на прочтение2 мин
Количество просмотров96K
TLSharp rocks!

С# — развитый язык с большим количеством библиотек, но среди них нет ни одной работающей реализации Telegram API. Эту ситуацию я хочу исправить с помощью своей небольшой библиотеки TLSharp. В статье будет много кода и один котик.
Читать дальше →
Всего голосов 40: ↑33 и ↓7+26
Комментарии12

Разбираемся с синтаксисом шаблонов в Angular2

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

Многие впервые увидев синтаксис шаблонов Angular2 начинают причитать, мол ужас какой сделали, неужто нельзя было как в Angular1 хотя-бы. Зачем нужно было вводить это разнообразие скобочек, звездочек и прочей ерунды! Однако при ближайшем рассмотрении все становится куда проще, главное не пугаться.

Так как шаблоны в AngularJS являются неотъемлемой его частью, важно разобраться с ними в самом начале знакомства с новой версии этого фреймворка. Заодно обсудим, какие преимущества дает нам данный синтаксис по сравнению с angular 1.x. Причем лучше всего будет рассматривать это на небольших примерах.

Данная статья во многом основана на материалах этих двух статей:



Для того, что бы упростить подачу материала, давайте разберемся. Под AngularJS я буду подразумевать всю ветку Angular 1.x, в то время как под Angular2 — ветку 2.x.

Так же спасибо господину Bronx за ценное дополнение, которое я включил в текст статьи.

Примечание: вечер выходного дня, потому о опечатках и т.д. сообщайте в личку. Премного благодарен и приятного чтения.
Читать дальше →
Всего голосов 67: ↑64 и ↓3+61
Комментарии64

Новый алгоритм для проверки надёжности паролей

Время на прочтение2 мин
Количество просмотров29K
Многие сайты пытаются помочь пользователям установить более сложные пароли. Для этого устанавливают базовые правила, которые требуют обычно указать хотя бы одну прописную букву, одну строчную букву, одну цифру и так далее. Правила обычно примитивные вроде таких:

'password' => [
    'required',
    'confirmed',
    'min:8',
    'regex:/^(?=\S*[a-z])(?=\S*[A-Z])(?=\S*[\d])\S*$/',
];

К сожалению, такие простые правила означают, что пароль Abcd1234 будет признан хорошим и качественным, так же как и Password1. С другой стороны, пароль mu-icac-of-jaz-doad не пройдёт валидацию.

Некоторые специалисты говорят, что это не лучший вариант.
Читать дальше →
Всего голосов 18: ↑15 и ↓3+12
Комментарии25

Рисуем на тайлах электронной карты в MSSQL

Время на прочтение37 мин
Количество просмотров10K
Хочу рассказать читателям хабра-сообщества как используя CLR библиотеку Microsoft.SqlServer.Types можно формировать тайлы для электронной карты. В статье пойдёт речь о генерации списка картографических тайлов для их дальнейшего рендеринга. Будет описан алгоритм генерации тайлов по геометрии объектов, хранящейся в базе данных MS SQL 2008. Весь процесс рендеринга шаг за шагом будет рассмотрен на примере в конце статьи.



Содержание




Проблема
Исходные данные
Решение
Хранилище тайлов
Этапы подготовки тайлов
Используемые функции
Пример с ломаной линией
Проверка пересечения
Таблицы для хранения образов тайлов
Размещение иконки на тайле
Объединение тайлов
Отрисовка геометрии на тайле
Заключение
Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии1

«Парадокс инспекции» встречается повсюду

Время на прочтение3 мин
Количество просмотров46K
Многим известен так называемый «парадокс дружбы» (friendship paradox) в социальных сетях, впервые упомянутый в научной работе 1991 года, когда социальные сети были только в офлайне. Этот парадокс применим и к современным социальным сетям в интернете.

Если взять любого пользователя Facebook и случайным образом выбрать любого из его друзей, то с вероятностью 80% у друга будет больше «френдов». Люди, которые плохо знакомы с математической статистикой, очень огорчает тот факт, что почти все френды более «успешны» в общении, чем они сами. Но здесь нет причины для депрессии: так и должно быть, в соответствии с наукой и здравым смыслом.

Парадокс дружбы — одна из форм «парадокса инспекции» (Inspection Paradox), который встречается буквально повсюду и частенько вводит в заблуждение обывателей.
Читать дальше →
Всего голосов 71: ↑68 и ↓3+65
Комментарии36

Favicons, Touch Icons, Tile Icons и т. д. Что выбрать?

Время на прочтение6 мин
Количество просмотров154K
От переводчика.
Это перевод статьи Филипа Бернарда с сайта css-tricks.com. Часть статьи, содержащую описание работы с созданным им сервисом, я позволил себе опустить. Если вы найдете ошибки, просьба сообщить о них в личном сообщении.

Статья содержит результаты проведенного им исследования, каким должен быть фавикон (и то что его заменяет), чтобы хорошо отображаться в различных случаях.


Фавикон был представлен в 1999 году, в Internet Explorer 5 (источник) и стандартизирован W3C несколько месяцев спустя. Это была маленькая иконка, представляющая сайт.



С тех пор большинство настольных браузеров следуют тенденции и используют фавикон тем или иным способом. Это очень просто, не так ли? Создать маленькую картинку и добавить в любой интернет-проект, чтобы сделать его «завершённым». Ничего сложного.
Или нет?
Всего голосов 73: ↑71 и ↓2+69
Комментарии44

Расследование одного взлома или как быстро и просто потратить миллиард

Время на прочтение6 мин
Количество просмотров157K
UPDATE: Всем привет! Сегодня с удивлением узнал от коллег об этой записи. Выяснилось, что мой аккаунт взломали — представители Хабрахабра это подтвердили и восстановили мне доступ и сейчас разбираются, как так получилось. Но я оставляю эту запись как есть, для истории.
В комментариях уже отметились представители Яндекса: говорят, что уязвимость закрыта, ведётся аудит безопасности софта.

И, пользуясь случаем, хочу напомнить, что у нас в Badoo уже несколько лет идет программа "Проверь Badoo на прочность" и мы платим за найденные уязвимости.


Все вокруг постоянно рассуждают о коррупции. А я хочу рассказать Вам о случае, на коррупцию очень похожем, но в среде чистого IT-бизнеса, на государство никак не завязанного.

Описываемый далее случай интересен именно с точки зрения взлома бизнеса, хотя статья больше посвящена взлому в смысле IT.

Начну с нетехнической части.
Читать дальше →
Всего голосов 204: ↑188 и ↓16+172
Комментарии104

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность