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

Так получилось, что в один период времени я обсуждал в интернете, казалось бы, разные темы: бесплатные альтернативы Matlab для университетов и студентов, и поиск ошибок в алгоритмах с помощью статического анализа кода. Все эти обсуждения объединило ужасное качество кода современных программ. В частности, качество софта для математиков и учёных. Тут же возникает вопрос о доверии к расчётам и исследованиям, проведённым с помощью таких программ. Попробуем поразмыслить на эту тему и поискать ошибки.
Чипы Intel Skylake и Kaby Lake — обнаружена проблема при активном Hyper-Threading

Оптимизация расходов на AWS в SaaS-бизнесе

Расходы Cronitor на AWS за последние 12 месяцев
В первые 30 дней после перевода Cronitor на AWS в январе 2015 года мы собрали платежей на $535 и заплатили $64,47 за хостинг, передачу данных и доменное имя. С тех пор мы наращивали потребление услуг, апгрейдили инстансы, добавляли сервисы. Несмотря на репутацию AWS как дорогого пистолета, чтобы выстрелить себе в ногу, наши счета сохранялись на уровне 12,5% от дохода. Смотрите сами.
Всё, что вам нужно знать про Windows Server 2016

Внимание, Хабрахабр: IBM открывает бесплатный доступ к большому количеству своих ресурсов

Компания IBM уже много лет публикует материалы о своих разработках на Хабрахабре. Мы рады, что многие статьи интересны читателям. Тем не менее, мы также не раз видели желание наших читателей начать работу с сервисами и ресурсами IBM на бесплатной основе. И сегодня мы рады сообщить о том, что теперь многие пользователи смогут получить бесплатный доступ к большинству ресурсов Академического хаба, IBM Bluemix, когнитивным технологиям IBM Watson и Интернета вещей.
Такая возможность предоставляется преподавателям и студентам вузов, а также научным сотрудникам академических институтов. Мы знаем, что ученые делают мир лучше, поэтому многие пользователи Хабрахабра теперь могут работать вместе с нами над достижением этой достойной цели.
Современный CMake: 10 советов по улучшению скриптов сборки
CMake — это система сборки для C/C++, которая с каждым годом становится всё популярнее. Он практически стал решением по умолчанию для новых проектов. Однако, множество примеров выполнения какой-либо задачи на CMake содержат архаичные, ненадёжные, раздутые действия. Мы выясним, как писать скрипты сборки на CMake лаконичнее.
Как пропатчить K̶D̶E̶ TCP-стек под FreeBSD
Новые «плюшки» компилятора – безопасней, быстрее, совершеннее

Как говорилось во всеми нами любимом фильме: «Налетай, торопись, покупай живопись». Последняя, конечно, тут ни при чем, а вот «налетать» на новую Бета версию компилятора уже пора. Сегодня я расскажу о том, что нового появилось в пакете Intel Parallel Studio XE 2018 Beta, и в частности, в компиляторной её составляющей. А там действительно много что добавилось, ведь стандарты не стоят на месте — C++14, C++17, Fortran 2008, 2015, OpenMP 4.5 и 5.0, а компилятор должен не только их поддерживать, но и генерировать совершенный, производительный и безопасный код. Кроме этого, новые наборы инструкций AVX512, позволяющие «снимать сливки» с последних процессоров Skylake и KNL, всё больше входят в арсенал современных компиляторов. Но а самое вкусное — новые ключи, которые позволяют получить ещё больше производительности «не напрягаясь». Итак, поехали!
ENTRYPOINT vs CMD: назад к основам
Название ENTRYPOINT
всегда меня смущало. Это название подразумевает, что каждый контейнер должен иметь определенную инструкцию ENTRYPOINT
. Но после прочтения официальной документации я понял, что это не соответствует действительности.
Эксперименты с malloc и нейронными сетями

Больше года назад, когда я работал антиспамщиком в Mail.Ru Group, на меня накатило, и я написал про эксперименты с malloc. В то время я в свое удовольствие помогал проводить семинары по АКОСу на ФИВТе МФТИ, и шла тема про аллокацию памяти. Тема большая и очень интересная, при этом охватывает как низкий уровень ядра, так и вполне себе алгоритмоемкие структуры. Во всех учебниках написано, что одна из основных проблем динамического распределения памяти — это ее непредсказуемость. Как говорится, знал бы прикуп — жил бы в Сочи. Если бы оракул заранее рассказал весь план по которому будет выделяться и освобождаться память, то можно было составить оптимальную стратегию, минимизирующую фрагментацию кучи, пиковое потребление памяти и т.д. Отсюда пошла возня с ручными аллокаторами. В процессе раздумий я натолкнулся на отсутствие инструментов логирования malloc()
и free()
. Пришлось их написать! Как раз про это была статья (а ещe я изучал macOS). Были запланированы две части, однако жизнь круто повернулась и стало не до malloc()
. Итак, пора восстановить справедливость и реализовать обещанное: ударить глубоким обучением по предсказанию работы с кучей.
Внутри:
- Совершенствуем
libtracemalloc
, перехватчикmalloc()
. - Строим LSTM на Keras — глубокую рекуррентную сеть.
- Обучаем модель на примере работы реального приложения (vcmi/vcmi — а вы думали, причем здесь Heroes III?).
- Удивляемся неожиданно хорошим результатам.
- Фантазируем про практическое применение технологии.
- Исходники.
Интересно? Добро пожаловать под кат.
Вы неверно измеряете загрузку процессора
Вот что может означать «процессор загружен сейчас на 90%»? Возможно, вы думаете, что это выглядит как-то так:

А на самом деле это выглядит вот так:

«Работа вхолостую» означает, что процессор способен выполнить некоторые инструкции, но не делает этого, поскольку ожидает чего-то — например, ввода-вывода данных из оперативной памяти. Процентное соотношение реальной и «холостой» работы на рисунке выше — это то, что я вижу изо дня в день в работе реальных приложений на реальных серверах. Есть существенная вероятность, что и ваша программа проводит своё время примерно так же, а вы об этом и не знаете.
Услуги сервиса Firebase подорожали в 70 раз, а нас никто не предупредил

Начало
«Как и многие другие, наш стартап начался с очень простой идеи. Фактически это был инструмент, созданный, чтобы помочь программистам систем автоматизации для «умного дома» разбираться с возникающими проблемами, интегрировать девайсы и экономить время.
Мы распространяли свой продукт бесплатно, и вскоре он начал завоевывать популярность. Это было так захватывающе! За какие-то несколько месяцев наша аудитория из десяти бета-тестеров в скайп-конференции выросла до сотен, а потом и тысяч пользователей. Мы были на седьмом небе! Помню, как просто сидел и смотрел на статистику Google и Woopra, наблюдая за действиями пользователей.
Я первый готов признать, что на этом этапе мы допустили несколько серьезных ошибок (от которых, надеюсь, сможем предостеречь других). Тогда мы активно создавали и внедряли дополнительные функции, изо всех сил стараясь обрабатывать нескончаемый поток запросов.
Ошибка заключалась не в том, что мы не ознакомились с документацией. И не в том, что выбрали сервисы, у которых какие-то проблемы с функционалом или плохие показатели. Нет, мы допустили мелкую, но опасную оплошность (и я подозреваю, что многие другие разработчики приложений допускают ее в этот самый момент) — мы позволили сервису превратиться в ловушку.
Форум центров сертификации и разработчиков браузеров утвердил обязательность DNS CAA
CAA (Certification Authority Authorization – авторизация центров сертификации), определенная в RFC 6844 в 2013 г., была предложена, чтобы усилить экосистему PKI (Public Key Infrastructure) при помощи нового средства контроля за тем, какой именно центр сертификации может выдавать сертификат данному конкретному домену.
Несмотря на то, что САА введена уже более 4 лет назад, она все еще мало известна сегодня, и на данный момент только 100 или, может быть, около 200 сайтов ее используют. Однако предстоят значительные перемены, потому что форум центров сертификации и разработчиков браузеров (форум CA/Browser) утвердил CAA в качестве обязательной – в рамках стандартного набора базовых условий для выпуска сертификата безопасности. Новая норма начнет действовать с сентября 2017 года.
Баг в NTFS, или как подвесить всю систему

Т.е. в данном примере, если попытаться открыть любой файл относительно файла $mft, доступ ко всему тому «С» повиснет, а так как этот том является системным, подвиснет и вся система. При этом не нужно иметь каких-либо прав. Если же том был не системным, то повиснет только доступ к этому тому, но если выполнить перезагрузку, то система повиснет на ней.
Большие данные для большой науки. Лекция в Яндексе
Под катом — расшифровка и основная часть слайдов.
Как закалялась GPL
С тех самых пор, как появились лицензии открытого кода, появился соблазн проверить их на прочность. GNU Public License самая бескомпромиссная среди них, она защищает свободу пользователя и программиста от присвоения результатов чужого труда, подмены открытого и общедоступного продукта, закрытым и платным. Не удивительно, что именно GPL чаще всего нарушают малые, средние и даже крупные компании.

Принуждение к соблюдению условий GPL является вопросом стратегической важности для открытого сообщества и легко понять почему это так. GPL является краеугольным камнем, точкой сбора сообщества и его самых принципиальных сторонников. Из них самый известный — основатель GNU и автор GPL — Ричард Столлман. Давайте узнаем как сообщество борется с нарушителями лицензии, кто нарушал и продолжает нарушать GPL и как экспроприируют экспроприаторов открытого кода.
Стандарты и шаблоны для ТЗ на разработку ПО
Введение
Недавно ко мне обратились, чтобы я посоветовал стандарты для написания технического задания (ТЗ) на разработку автоматизированных систем (АС) и программного обеспечения (ПО). Вот думаю, сейчас зайду в Яндекс, найду подходящую статейку и отправлю её. Но не тут-то было! Одной статьи, где перечисляются стандарты для ТЗ, включая шаблоны и примеры готовых документов, я не нашел. Придется сделать такую статейку самому…
И так, основные стандарты, методологии и своды знаний, где упоминается ТЗ или SRS (Software (or System) Requirements Specification):
• ГОСТ 34
• ГОСТ 19
• IEEE STD 830-1998
• ISO/IEC/ IEEE 29148-2011
• RUP
• SWEBOK, BABOK и пр.
Всё, что вы не знали о CAP теореме
Подробнее об одном новшестве в свежей версии SObjectizer
Когда мы начали рассказывать про свой OpenSource акторный фреймворк для C++ на Хабре, мы пообещали описывать некоторые особенности деталей реализации SObjectizer-а. Одна из новых фич, которая была реализована в недавно вышедшей версии 5.5.19, отлично подходит для такого рассказа. Кроме того, она интересна еще и тем, что нам пришлось взглянуть на сценарии использования SObjectizer с совершенно другой стороны. Можно даже сказать, что один из наших шаблонов оказался разорванным.
Речь идет о возможности SObjectizer-а выполнять все свои действия на одной единственной рабочей нити. Начиная с версии 5.5.19 использовать Actor- и Publish/Subscribe модели можно даже в однопоточном приложении. Понятное дело, что акторы должны будут работать в режиме кооперативной многозадачности, но в каких-то случаях именно это и требуется.
А где может потребоваться использовать акторов в однопоточном приложении?
Information
- Rating
- 378-th
- Location
- Пермь, Пермский край, Россия
- Date of birth
- Registered
- Activity