Search
Write a publication
Pull to refresh
5
6
Владислав Щапов @phprus

Манул

Send message

Бесплатные варианты лицензирования PVS-Studio

Reading time4 min
Views11K

PVS-Studio Free

Существует несколько вариантов бесплатного лицензирования статического анализатора кода PVS-Studio, предназначенного для поиска ошибок и потенциальных уязвимостей. Бесплатной лицензией могут воспользоваться открытые проекты, маленькие закрытые проекты, публичные специалисты по безопасности и обладатели статуса Microsoft MVP. В статье кратко рассматривается каждый из этих вариантов.

PVS-Studio — это инструмент для выявления ошибок и потенциальных уязвимостей в исходном коде программ, написанных на языках С, C++, C# и Java. Работает в среде Windows, Linux и macOS.
Читать дальше →

«Latency numbers» на iPhone

Reading time10 min
Views12K
Latency Numbers Every Programmer Should Know — таблица «задержек, которые должен знать каждый программист». Там собраны средние значения времени для выполнения базовых операций компьютера в 2012-м году. Для этой таблицы есть несколько альтернативных представлений и вот одно из них.


Ссылка на источник схемы

Но какая польза мобильным разработчикам от этой информации в 2019? Кажется, что никакой, но Дмитрий Куркин (SClown) из команды Яндекс.Навигатора задумался: «А как бы таблица выглядела для современного iPhone?». Что из этого получилось, в переработанной текстовой версии доклада Дмитрия на AppsConf.


Для чего это нужно?


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

Государственный интернет: рассказ удалёнщика о VPN в Китае

Reading time6 min
Views60K
Цензура тесно связана с политикой. Ежегодный мировой рейтинг свободы в интернете наглядно иллюстрирует эту зависимость: государства, в которых нарушаются права человека, блокируют «неугодные» ресурсы или перекрывают доступ к глобальной сети.
   

Только 13 из 65 стран, анализ которых исследователи из Freedom House провели в 2017 году, не препятствует информационной свободе своих граждан. Большинство остальных пользователей мирового интернета может получить доступ к заблокированным ресурсам только с помощью VPN-сервисов. В том числе и жители Китая, где в последнее время ужесточилась охота за нелицензионными VPN.

Фронтенд-разработчик Арарат Мартиросян, который живет в Китае и работает удалённо, рассказал нам о том, что происходит с местными VPN-сервисами и где, по его мнению, самый свободный интернет. Публикуем здесь его рассказ.
Читать дальше →

Как побывать в корейском университете с помощью Network File System

Reading time15 min
Views32K


Предисловие


Давным-давно в начале 2000-х многие развлекались тем, что регулярно «сканировали» сети своего провайдера, а иногда и более далекие цели на предмет обнаружения Windows машин и ресурсов на них (SMB), доступных на чтение (запись). Процесс поиска был примитивен: задавался диапазон IP-адресов или маска сети и посредством различных инструментов — LANguard Network Scanner, xIntruder и подобных — сканировались адреса и находились сервера. Зачастую на обнаруженных машинах оказывались доступными на чтение, реже на запись, различные сетевые ресурсы (диски, принтеры, директории). Через анонимную сессию посредством IPC$ и пользователя «Guest» удавалось перечислять ресурсы на машине, иногда находились члены «Administrators» без паролей, а иногда, после более «активного» воздействия в отношении обнаруженных машин, удавалось найти сервера с ОС Windows NT 4.0 или Windows 2000 Server. Если удача соблаговолила обнаружить машины с распространенной тогда Windows 98, то становилось проще — в те времена в указанной ОС содержалось множество разных уязвимостей, в том числе в реализации работы с SMB, брутфорс для получения доступа к ресурсу осуществлялся за считанные минуты даже на dial-up соединениях. Для желающих окунуться в старину здесь подробно написано про «доступ» к Windows 9x — Hacking Exposed: Network Security Secrets & Solutions. Chapter 4: Hacking Windows 95/98 and Me. Но далее в статье речь не об этом.

Читать дальше →

Как одно изменение конфигурации PostgreSQL улучшило производительность медленных запросов в 50 раз

Reading time3 min
Views45K
Здравствуйте, хабровчане! Предлагаю вашему вниманию перевод статьи «How a single PostgreSQL config change improved slow query performance by 50x» автора Pavan Patibandla. Она очень сильно мне помогла улучшить производительность PostgreSQL.

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

Отслеживая задержку на разных уровнях, мы поняли, что одному конкретному запросу PostgreSQL потребовалось 20 секунд для завершения. Для нас это стало неожиданностью, так как обе таблицы имеют индексы в соединяемом столбце.

Медленный запрос

image
Читать дальше →

Облака и пороховая бочка Open Source

Reading time7 min
Views17K


«Европа сегодня похожа на пороховой погреб, а лидеры — словно люди, курящие внутри. Одна искра вызовет взрыв, который погребёт нас всех. Я не знаю, когда это произойдёт, но знаю, где. Всё испортит какое-нибудь дурацкое событие на Балканах» — Отто фон Бисмарк, 1878

Сто лет назад 11 ноября 1918 года было подписано перемирие, положившее конец Первой мировой войне. Число потерянных жизней в той войне сейчас трудно себе представить. Например, в Америке по праву считают вьетнамскую войну военной катастрофой. За двадцать лет боевых действий США потеряли 58 318 бойцов. Для сравнения, только в первой битве на Марне в 1914 году союзники потеряли вчетверо больше. За пять дней.
Читать дальше →

Архитектура Рунета

Reading time8 min
Views20K
Как знают наши читатели, Qrator.Radar неустанно исследует глобальную связность протокола BGP, равно как и региональную. Так как «Интернет» является сокращением от «interconnected networks» — «взаимосвязанных сетей», наилучшим способом обеспечения высоких качества и скорости его работы является богатая и разнообразная связность индивидуальных сетей, чье развитие мотивировано в первую очередь конкуренцией.

Отказоустойчивость интернет-соединения в любом отдельно взятом регионе или стране связана с количеством альтернативных маршрутов между автономными системами — AS. Однако, как мы уже неоднократно писали в наших исследованиях национальной устойчивости сегментов глобальной сети, некоторые пути становятся более важными по-сравнению с остальными (например, пути до Tier-1 транзитных провайдеров или AS, на которых размещены авторитативные DNS-серверы) — это значит, что наличие как можно большего числа альтернативных маршрутов в итоге является единственным жизнеспособным способом обеспечить надежность системы (в смысле AS).

В этот раз, мы поближе посмотрим на устройство интернет-сегмента Российской Федерации. Есть причины не сводить глаз с данного сегмента: согласно данным, которые предоставляет база данных регистратора RIPE, к РФ относится 6183 AS из 88664 зарегистрированных глобально, что составляет 6,87%.

Такой процент ставит Россию на второе место в мире по данному показателю, сразу после США (30,08% зарегистрированных AS) и перед Бразилией, владеющей 6,34% всех автономных систем. Эффекты, которые возникают вследствие изменений российской связности, могут наблюдаться в других странах, зависимых от или примыкающих к данной связности и, наконец, на уровне почти любого интернет-провайдера.
Читать дальше →

Профилирование и трейсинг с perf

Reading time1 min
Views31K
Учимся дебажить с perf — целых 18 страниц про основные подкоманды, фичи и устройство инструмента. Джулия рекомендует; “Я даже использовала его несколько раз для профилирования Ruby программ!”

Уровень сложности — для суперпродвинутого администратора.

Когда нужно отыскать причину сбоя, не имея доступа к исходным кодам. Все логи уже просмотрены, все debug и verbose-ключи включены, а причина проблем так и не обнаружена — используйте perf. Потребуется навык кодинга на языках типа Си.


Читать дальше →

Feature freeze C++20. Coroutines, Modules и прочее

Reading time5 min
Views25K
На днях прошла встреча международного комитета по стандартизации C++ в американском городе Кона. Это была не просто встреча, а feature freeze! Никакие серьёзные новые идеи больше не могут просачиваться в стандарт, остаётся лишь пара встреч на добавление предварительно одобренных вещей, исправление недочётов и устранение шероховатостей.

Ожидать ли Модули и Корутины в C++20, будет ли там быстрая библиотека для форматирования вывода, сможет ли она работать с календарями, добавили ли std::stacktrace, начнёт ли компилятор сам вызывать std::move в ряде случаев, приняли ли std::flat_map? Всё это и многое другое ожидает вас под катом.


Читать дальше →

Решение RIPE и его последствия по исключению двух российских LIR (Netup, gcxc.net)

Reading time4 min
Views15K
На прошедшей неделе RIPE NCC разослал письма клиентам Netup о том, что их LIR исключён из RIPE NCC и они должны найти себе нового LIR или получить статус LIR самостоятельно. Само письмо было опубликовано в чате ENOG (копия на pastebin). Краткая выдержка из письма:
We would like to inform you that your current sponsoring LIR, NetUP Ltd., is no longer a member of the RIPE NCC. Therefore, the sponsorship agreement that you have signed with this organisation has become invalid.

If you would like to continue using the above resources you will need to:

a) Sign an End User Assignment Agreement with a sponsoring LIR of your choice. You can find a list of Local Internet Registries here
or
b) Become a RIPE NCC Member. You can find more information about becoming a RIPE NCC member here
Эта новость была опубликована на порталах opennet.ru и linux.org.ru, однако сама новость была политизирована в комментариях, а реальные последствия этого события не раскрыты. Давайте попробуем спокойно разобраться в этой ситуации.
Читать дальше →
Множество профессий сегодня не требует регулярного присутствия на территории работодателя — ни в его офисе, ни даже в стране. А значит, находясь в России, трудиться можно на компанию из США или Европы. Но получив преимущество в разнице курсов валют, можно проиграть гораздо больше — из-за разницы в законах и неправильного оформления документов. Попробуем разобраться со всеми ошибками валютного договора.
Подробности — под катом

Машинное обучение в IT-мониторинге

Reading time8 min
Views11K

Введение



Netcracker – это международная компания, разработчик комплексных IT-решений, включающих услуги по размещению и поддержке клиентского оборудования, а также хостингу созданной IT-системы для телеком-операторов.

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

Постоянная доступность разрабатываемого решения очень важна. Если у оператора связи хотя бы на один час перестанет работать биллинг, это приведет к большим финансовым и репутационным потерям как оператора, так и поставщика программного обеспечения. Поэтому одним из ключевых требований к решению является параметр availability, значение которого варьируется от 99,995 % до 99,95 % в зависимости от типа решения.

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

Поэтому для команды поддержки очень важен мониторинг всех аппаратно-программных комплексов, интегрированных в единое решение. Чаще всего в компании используется традиционный мониторинг. Этот процесс хорошо отлажен: мы умеем строить подобную систему мониторинга с нуля и знаем, как правильно организовать процессы реагирования на инциденты. Однако в этом подходе есть несколько сложностей, с которыми мы сталкиваемся от проекта к проекту.
Читать дальше →

Что такое Strict Aliasing и почему нас должно это волновать? Часть 1

Reading time7 min
Views21K
(ИЛИ каламбур типизации, неопределенное поведение и выравнивание, о мой Бог!)

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

Что такое strict aliasing? Сначала мы опишем, что такое алиасинг (aliasing), а затем мы узнаем, к чему тут строгость (strict).

В C и C ++ алиасинг связан с тем, через какие типы выражений нам разрешен доступ к хранимым значениям. Как в C, так и в C ++ стандарт определяет, какие выражения для именования каких типов допустимы. Компилятору и оптимизатору разрешается предполагать, что мы строго следуем правилам алиасинга, отсюда и термин — правило строгого алиасинга (strict aliasing rule). Если мы пытаемся получить доступ к значению, используя недопустимый тип, оно классифицируется как неопределенное поведение (undefined behavior — UB). Когда у нас неопределенное поведение, все ставки сделаны, результаты нашей программы перестают быть достоверными.

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



Чтобы лучше понять, почему нас должно это волновать, мы обсудим проблемы, возникающие при нарушении правил строго алиасинга, каламбур типизаций (type punning), так как он часто используется в правилах строгого алиасинга, а также о том, как правильно создавать каламбур, наряду с некоторой возможной помощью C++20, чтобы упростить каламбур и уменьшить вероятность ошибок. Мы подведем итоги обсуждения, рассмотрев некоторые методы выявления нарушений правил строго алиасинга.
Читать дальше →

Физические итоги 2018 года

Reading time8 min
Views30K


Новогодние праздники подходят к концу, а значит самое время подвести итоги года вместе с Американским физическим сообществом. Год выдался интересным по всем фронтам – и фундаментальными открытиями, и техническими достижениями.

Читать дальше →

io_submit: альтернатива epoll, о которой вы никогда не слышали

Reading time8 min
Views14K


Недавно внимание автора привлекла статья на LWN о новом интерфейсе ядра для опроса (polling). В ней обсуждается новый механизм опроса в Linux AIO API (интерфейс для асинхронной работы с файлами), который добавили в ядро версии 4.18. Идея довольно интересная: автор патча предлагает использовать Linux AIO API для работы с сетью.

Но постойте! Ведь Linux AIO был создан для работы с асинхронным вводом-выводом с диска / на диск! Файлы на диске — это не то же самое, что сетевые соединения. Возможно ли вообще использовать Linux AIO API для работы с сетью?

Оказывается, да, возможно! В этой статье объясняется, как использовать сильные стороны Linux AIO API для создания более быстрых и лучших сетевых серверов.

Но давайте начнём с разъяснения, что представляет собой Linux AIO.
Читать дальше →

Разработчик SearchFace о возможностях алгоритма

Reading time2 min
Views107K
Всем привет, я один из разработчиков сервиса SearchFace и готов поговорить о нём в комментариях.



Из-за шумихи с иском ВК на второй план отошло то важное, ради чего мы запустили сервис — чтобы протестировать возможности поиска. А раз уж теперь сервис доступен широкой публике, хочется продемонстрировать всем, на что способны наши алгоритмы распознавания.
Читать дальше →

Разновидности SIMD

Reading time17 min
Views12K
Во время разработки meshoptimizer частенько возникает вопрос: «А может этому алгоритму использовать SIMD?»

Библиотека ориентирована на производительность, но SIMD не всегда обеспечивает значительные преимущества по скорости. К сожалению, SIMD может сделать код менее переносимым и менее ремонтопригодным. Поэтому в каждом конкретном случае приходится искать компромисс. Когда первостепенное значение имеет производительность, приходится разрабатывать и поддерживать отдельные реализации SIMD для наборов инструкций SSE и NEON. В других случаях нужно понять, каков эффект от применения SIMD. Сегодня мы попытаемся ускорить меш-рационализатор (sloppy mesh simplifier) — новый алгоритм, недавно добавленный в библиотеку — используя наборы инструкций SSEn/AVXn.
Читать дальше →

Как защититься от брендовых троллей

Reading time15 min
Views12K


Изображение взято из Викимедии, автор – Gil. Распространяется на условиях лицензии Creative Commons Attribution 2.0 Generic license


Привет, Хабр! Меня зовут Андрей, я юрист в сфере интеллектуальной собственности и IT-технологий.


Некоторое время назад на Хабре была опубликована история andrei_mankevich — автора мобильного приложения — реализации игры «Балда», которое было удалено по жалобе правообладателя соответствующего товарного знака. Судя по комментариям к этой истории, многим было интересно, можно ли как-то восстановить справедливость и наказать тролля.


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


На заметку: «патентные тролли» («patent troll») — это лица, осуществляющие покупку или регистрацию патента на изобретение, полезную модель или промышленный образец исключительно для того, чтобы требовать с других лиц вознаграждение за использование патента под угрозой предъявления судебного иска. Такие лица, как правило, не производят какой-либо полезный продукт на основании купленного патента.


В отношении лиц, осуществляющих аналогичную деятельность с товарными знаками и объектами авторских прав, используются, соответственно, термины «trademark troll» (можно перевести как «брендовый тролль») и «copyright troll» («копирайтный тролль», «копитролль»).
Далее я буду говорить о брендовых троллях — лицах, которые регистрируют или покупают товарные знаки, для того чтобы заработать на предъявлении претензий и судебных исков.

Читать дальше →

Консистентность и ACID-гарантии в распределенных системах хранения данных

Reading time8 min
Views30K
Распределенные системы используют, когда возникает необходимость в горизонтальном масштабировании, чтобы обеспечить повышенные показатели производительности, которые не способна обеспечить за адекватные деньги вертикально масштабированная система.

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

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

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

Эта статья основана на наших материалах по консистентности и ACID-гарантиям в распределенных системах.
Читать дальше →

Information

Rating
363-rd
Location
Пермь, Пермский край, Россия
Date of birth
Registered
Activity