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

C++/Qt

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

63 ядра заблокированы семью инструкциями

Время на прочтение7 мин
Количество просмотров27K
Кажется, у меня появилась привычка писать о мощных машинах, где множество ядер простаивают из-за неправильных блокировок. Так что… Да. Опять про это.

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

Вопреки распространённому мнению, у меня на самом деле нет машины с 64 логическими процессорами, и я никогда не видел этой конкретной проблемы. Но с ней столкнулся мой друг, этот ботан зацепил меня он попросил о помощи, и я решил, что проблема достаточно интересная. Он выслал трассировку ETW с достаточным количеством информации, чтобы коллективный разум в твиттере быстро решил проблему.
Читать дальше →
Всего голосов 69: ↑69 и ↓0+69
Комментарии24

Критика протокола и оргподходов Telegram. Часть 1, техническая: опыт написания клиента с нуля — TL, MT

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

В последнее время на Хабре стали чаще появляться посты о том, как хорош Telegram, как гениальны и опытны братья Дуровы в построении сетевых систем, и т.п. В то же время, очень мало кто действительно погружался в техническое устройство — как максимум, используют достаточно простой (и весьма отличающийся от MTProto) Bot API на базе JSON, а обычно просто принимают на веру все те дифирамбы и пиар, что крутятся вокруг мессенджера. Почти полтора года назад мой коллега по НПО "Эшелон" Василий (к сожалению, его учетку на Хабре стёрли вместе с черновиком) начал писать свой собственный клиент Telegram с нуля на Perl, позже присоединился и автор этих строк. Почему на Perl, немедленно спросят некоторые? Потому что на других языках такие проекты уже есть На самом деле, суть не в этом, мог быть любой другой язык, где еще нет готовой библиотеки, и соответственно автор должен пройти весь путь с нуля. Тем более, криптография дело такое — доверяй, но проверяй. С продуктом, нацеленным на безопасность, вы не можете просто взять и положиться на готовую библиотеку от производителя, слепо ему поверив (впрочем, это тема более для второй части). На данный момент библиотека вполне работает на "среднем" уровне (позволяет делать любые API-запросы).


Тем не менее, в данной серии постов будет не так много криптографии и математики. Зато будет много других технических подробностей и архитектурных костылей (пригодится и тем, кто не будет писать с нуля, а будет пользоваться библиотекой на любом языке). Итак, главной целью было — попытаться реализовать клиент с нуля по официальной документации. То есть, предположим, что исходный код официальных клиентов закрыт (опять же во второй части подробнее раскроем тему того, что это и правда бывает так), но, как в старые времена, например, есть стандарт по типу RFC — возможно ли написать клиент по одной лишь спецификации, "не подглядывая" в исходники, хоть официальных (Telegram Desktop, мобильных), хоть неофициальных Telethon?

Ответ на этот вопрос неоднозначен
Всего голосов 187: ↑182 и ↓5+177
Комментарии240

Разработка демо для NES — HEOHdemo

Время на прочтение24 мин
Количество просмотров6K
История проведения фестивалей компьютерного искусства, также известных как демопати, насчитывает в нашей стране уже четверть века. Люди со всех концов страны собираются, чтобы показать свои упражнения в извлечении невозможного из старых или современных компьютеров и сверхмалых объёмов кода. В первую пятилетку одним из главных демопати страны стал CAFe (внезапно, Computer Art Festival), проводившийся в Казани с 1999 по 2003 годы. Позже он надолго исчез с радаров, отдав пальму первенства более известным ныне Chaos Constructions и DiHalt, и только в этом году произошло довольно триумфальное его возвращение — если не по масштабу мероприятия, то по количеству разнообразных работ, показ которых затянулся до шести утра. Среди них была и моя, о создании которой пойдёт речь в этой статье.

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

Как работает оптимизирующий компилятор

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

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

В этой статье мы рассмотрим некоторые из основных методик приведения (inference techniques) в оптимизирующих компиляторах: как спроектировать программу, с которой компилятору будет легко работать; какие приведения можно сделать в вашей программе и как использовать их для её уменьшения и ускорения.
Читать дальше →
Всего голосов 78: ↑75 и ↓3+72
Комментарии14

Как мы сделали хакатон в поезде и что из этого получилось

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

Всем привет! Я Миша Клюев, DevRel в Авито. В этой статье расскажем вам про наш опыт организации и проведения необычного хакатона. Внутри: рассказ о 56 часах кодинга в поезде, о том, что надо сделать, чтобы они состоялись, о том, какие проекты в итоге получились, и немного октябрьского моря.


Осторожно, трафик.


Всего голосов 53: ↑50 и ↓3+60
Комментарии32

Время не ждет: чем Windows 10 Timeline может быть полезен криминалисту

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


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

Обработка носителей информации для подготовки таймлайна (например, с помощью Plaso) — это процесс, отнимающий много времени. Поэтому компьютерные криминалисты сильно обрадовались, узнав, что в очередном обновлении Windows 10 появился новый функционал — Windows 10 Timeline.

«Когда я впервые узнал о новой функции Windows, я подумал: «Здорово! Теперь не придется тратить время на генерацию таймлайнов». Однако, как оказалось, радость моя была преждевременна», — признается Игорь Михайлов, специалист Лаборатории компьютерной криминалистики Group-IB. Специально для читателей «Хабра» Игорь рассказывает, какое отношение Windows 10 Timeline — новый вид артефактов Windows 10 — имеет к традиционным видам таймлайна и какие сведения в нем содержатся.
Читать дальше →
Всего голосов 20: ↑17 и ↓3+14
Комментарии11

Суверенный интернет — уточняющие приказы

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


Подготовка к реализации закона «О суверенном интернете», подписанного президентом в мае этого года, идёт полным ходом. К работе подключился и Роскомнадзор, разместив на Федеральном портале проектов нормативных правовых актов целый ряд документов. Давайте посмотрим, чем хочет нас порадовать данное ведомство.
Читать дальше →
Всего голосов 29: ↑21 и ↓8+13
Комментарии27

Решение задания с pwnable.kr 01 — fd. Файловые дескрипторы и процессы

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

В данной статье разберем: что же такое файловый дескриптор, как процессы получают доступ к определенным потокам ввода/вывода, и решим первое задание с сайта pwnable.kr.
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии1

Анатомия IPsec. Проверяем на прочность легендарный протокол

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


В современном мире различные VPN-технологии используются повсеместно. Некоторые (например, PPTP) со временем признаются небезопасными и постепенно отмирают, другие (OpenVPN), наоборот, с каждым годом наращивают обороты. Но бессменным лидером и самой узнаваемой технологией для создания и поддержания защищенных частных каналов по-прежнему остается IPsec VPN. Иногда при пентесте можно обнаружить серьезно защищенную сеть с торчащим наружу лишь пятисотым UDP-портом. Все остальное может быть закрыто, пропатчено и надежно фильтроваться.

В такой ситуации может возникнуть мысль, что здесь и делать-то особо нечего. Но это не всегда так. Кроме того, широко распространена мысль, что IPsec даже в дефолтных конфигурациях неприступен и обеспечивает должный уровень безопасности. Именно такую ситуацию сегодня и посмотрим на деле. Но вначале, для того чтобы максимально эффективно бороться c IPsec, нужно разобраться, что он собой представляет и как работает. Этим и займемся!
Читать дальше →
Всего голосов 25: ↑23 и ↓2+21
Комментарии13

«Преодолевая» закон Мура: чем заменить традиционные планарные транзисторы

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

Обсуждаем альтернативы подходы к разработке полупроводниковых изделий.



/ фото Taylor Vick Unsplash

В прошлый раз мы говорили о материалах, которые могут заменить кремний в производстве транзисторов и расширить их возможности. Сегодня обсуждаем альтернативные подходы к разработке полупроводниковых изделий и какое применение они найдут в дата-центрах.
Читать дальше →
Всего голосов 21: ↑20 и ↓1+19
Комментарии3

Что не так с федеральным законом «Об электронной подписи» (63-ФЗ), и как это можно исправить

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

Рисовальная машина за работой, © axisdraw.com

Электронная подпись в России впервые появилась в январе 2002 года вместе с принятием первого закона «Об электронной цифровой подписи» (1-ФЗ). Затем, спустя 9 лет, в апреле 2011 появился новый закон «Об электронной подписи» (63-ФЗ). Спустя еще 8 лет, в начале лета 2019, в СМИ стали появляться леденящие душу публикации о том, как с помощью электронной подписи воруют квартиры, как мошенники оформляют на ничего не подозревающих граждан фиктивные фирмы, и так далее, и тому подобное.

Давайте без лишних эмоций попробуем разобраться в сложившихся проблемах и подумаем, как их можно исправить.

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

Правильные способы исключения файлов в Git

Время на прочтение1 мин
Количество просмотров209K
Иногда встречаю в файле .gitignore то, чего там быть никак не должно. Например, папка .idea, в которой лежат конфиги известных IDE от JetBrains. Это часть вашего рабочего окружения и она никаким боком не относится к проекту и репозиторию. Если над проектом работает несколько человек и каждый из них добавит конфиги своего окружения в .gitignore, то он превратится в нечитаемую помойку.

В этом топике я расскажу о правильных способах исключения файлов и о том когда какой способ использовать.
Читать дальше →
Всего голосов 98: ↑74 и ↓24+50
Комментарии68

Bug Inside: крохотный шанс сделать громадную ошибку на Pentium

Время на прочтение23 мин
Количество просмотров27K
«Ошибка в Pentium настолько специфичная, что обычный пользователь столкнется с ней раз в 27000 лет»
— руководство Intel

«Вот вам правдоподобный сценарий, когда пользователь будет сталкиваться с ошибкой каждые 3 миллисекунды»
— Воэн Пратт (дизайнер логотипа SUN и соавтор алгоритма Кнута-Морриса-Пратта)

66 MHz Intel Pentium (sSpec=SX837) with the FDIV bug

Вопрос: Сколько нужно разработчиков Pentium чтобы вкрутить лампочку?
Ответ: 1.99904274017, такой ответ должен удовлетворить людей без технического образования.

А теперь главный вопрос: «Чем занимался Томас Найсли с начала июня до конца октября 1994 года?»
Читать дальше →
Всего голосов 82: ↑67 и ↓15+52
Комментарии30

Немного о типах DDoS-атак и методах защиты

Время на прочтение5 мин
Количество просмотров36K
Согласно проведенным исследованиям, масштабы DDoS-атак выросли примерно в 50 раз за последние несколько лет. При этом злоумышленники «метят» как в локальные инфраструктуры, так и публичные облачные площадки, на которых сосредотачиваются решения клиентов.

«Успешно реализованные атаки имеют непосредственное влияние на бизнес клиентов и носят деструктивные последствия», – комментирует Даррен Ансти (Darren Anstee), представитель компании Arbor Networks, поставляющей решения для обеспечения безопасности в сетях.

При этом частота атак также увеличивается. В конце 2014 года их число составляло 83 тыс., а в первом квартале 2015 года цифра увеличилась до 126 тыс. Поэтому в нашем сегодняшнем материале мы бы хотели рассмотреть различные виды DDoS-атак, а также способы защиты от них.


/ Flickr / Kenny Louie / CC
Читать дальше →
Всего голосов 23: ↑18 и ↓5+13
Комментарии2

Археология программиста

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


В прошедшую субботу решил провести «субботник» и наконец-то навести порядок на полках и в шкафах.

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

Дело было так. В далеком-далеком году мы получили заказ на разработку прошивки для микросхемы Cypress CY7C63723. Это был такой PS/2-USB микроконтроллер. Задача: написать прошивку к этой микросхеме. Но был один нюанс. Микросхема предназначена для преобразования протокола из PS/2 в USB, а нужно было подключить два устройства PS/2, то есть нужно подключить PS/2 мышь и PS/2 клавиатуру с помощью одной такой микросхемы USB конвертера. Микросхема должна была бы устанавливаться на материнскую плату Jetway (если память не изменяет).

Точнее, дело было даже так: эта задача уже делалась каким-то разработчиком, но у него чего-то не получалось. Нам отдали его исходники и сказали, что нужно срочно починить и переделать, но чтоб работало. Кроме исходных текстов нашего неудачливого предшественника тогда мы получили вот это…
Читать дальше →
Всего голосов 71: ↑68 и ↓3+65
Комментарии10

7 мер защиты сервера

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

В прошлый раз мы рассказывали о том, как выбрать серверы и как установить их в офисе своими руками.

Теперь пришло время позаботиться о следующем шаге — наладить ИТ-инфрастуктру, чтобы работать с приложениями, веб-сервисами и базами данных. Это непростая задача, но без должной защиты вся инфраструктура окажется под угрозой.
Читать дальше →
Всего голосов 27: ↑19 и ↓8+11
Комментарии11

Методы удаленного доступа к Linux GUI

Время на прочтение11 мин
Количество просмотров348K
В службу технической поддержки RUVDS регулярно обращаются по поводу GUI и удаленного доступа к нему на виртуальных серверах с Linux, несмотря на то что в интернете достаточно много материалов освещающих эту проблему. Поэтому, для наших пользователей мы решили собрать всё по этой теме в одну статью.


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

Ни единого разрыва: как мы создавали беспроводную сеть для 3000 устройств

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

Wireless Society by JOSS7

Wi-Fi в офисах Mail.Ru Group за последние десять лет пережил несколько смен оборудования, подходов к построению сети, схем авторизации, администраторов и ответственных за его работу. Начиналась беспроводная сеть, наверное, как и во всех компаниях — с нескольких домашних роутеров, которые вещали какой-то SSID со статичным паролем. Долгое время этого было достаточно, но количество пользователей, площади и количество точек доступа стало расти, домашние D-Linkʼи постепенно заменили на Zyxel NWA-3160. Это уже было относительно продвинутым решением: одна из точек могла выступать в качестве контроллера для остальных и давала единый интерфейс для менеджмента всей сети. Какой-то более глубокой логики и автоматизации софт NWA-3160 не давал, только возможность настройки подключенных к контроллеру точек, пользовательский трафик обрабатывался каждым устройством независимо. Следующей сменой оборудования стал переход на контроллер Cisco AIR-WLC2006-K9 + несколько точек доступа Aironet 1030. Уже совсем взрослое решение, с безмозглыми точками доступа и обработкой всего трафика контроллером беспроводной сети. После еще была миграция на пару AIR-WLC4402-K9, сеть уже выросла до сотни точек Cisco Aironet 1242AG, 1130AG, 1140AG.
Читать дальше →
Всего голосов 61: ↑57 и ↓4+53
Комментарии25

Лента – все еще лидер в резервном копировании данных

Время на прочтение4 мин
Количество просмотров49K
Что-то давно мы не рассказывали о классических системах резервного копирования данных – ленточных библиотеках. Ведь что бы не говорили некоторые вендоры СХД (сосредоточенные исключительно на дисковых устройствах), ленточные библиотеки остаются важнейшим средством резервного копирования и долгосрочного архивирования. В 2012 году был проведен опрос среди севроамериканских ИТ-директоров на предмет их планов по использованию лент. Так вот, 87% подтвердили, что будут увеличивать их применение или, как минимум, оставят его на прежнем уровне. А кто же является ведущим производителем ленточных библиотек? По данным storagenewsletter.com лидирует компания НР, в 2012 г. продавшая 31% устройств, почти в два раза больше ближайшего конкурента. Несмотря на то, что НР поддерживает стандарты DDS и LTO, сегодня мы поговорим только о последнем, т.к. продажи LTO составляют 94% от всех типов приводов.
Читать дальше →
Всего голосов 28: ↑23 и ↓5+18
Комментарии59

JSON-сериализатор на быстрых шаблонах

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


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

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

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

Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии19
1

Информация

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