Pull to refresh
81
0
Михаил Зинин @Fyret

Разработчик

Самый детальный разбор закона об электронных повестках через Госуслуги. Как сняться с военного учета удаленно

Level of difficulty Easy
Reading time 19 min
Views 184K
IT-emigration Legislation in IT
Review

Новый закон об электронных повестках потенциально касается практически всех российских мужчин от 18 до 70 лет. Я узнал у адвоката со специализацией в вопросах мобилизации, чем конкретно нам грозят эти нововведения, и можно ли как-то «выписаться из военкомата» удаленно.

Читать далее
Total votes 339: ↑300 and ↓39 +261
Comments 615

Продать российскую недвижимость без возвращения в РФ: руководство для IT-специалиста

Reading time 5 min
Views 19K
IT-emigration
Sandbox

Я продал свою квартиру в России, не выезжая из-за границы. Не думал, что это возможно, но получилось. Всё в рамках закона.

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

IT-компания, в которой я работаю четвертый год, была создана на деньги зарубежных инвесторов. Весной повисла неизвестность – у компании возникло много проблем из-за санкций. Летом до нас довели информацию: российский офис меняет расположение. Условием сохранения рабочего места был переезд. Затраты на релокацию и съем жилья предлагалось компенсировать.

Пришлось взвешивать и решать. Конечно, постоянный заработок был у меня не единственным источником дохода. Можно было рискнуть остаться только на заказах и разовых проектах, в том числе через Upwork. Но по этому направлению напряжение началось еще с весны – зарубежных заказчиков не устраивал российский или белорусский IP исполнителя.

В общем, я уехал...

Что было дальше - читаем далее
Total votes 114: ↑60 and ↓54 +6
Comments 69

Руководство по CMake для разработчиков C++ библиотек

Reading time 18 min
Views 45K
Open source *Programming *C++ *C *Build automation *
Tutorial
Sandbox

Данное руководство позволит читателю составить полную картину того, как организовать сборку C++ библиотек с использованием современных возможностей CMake. Предполагается, что читатель имеет представление о базовых понятиях из мира CMake и динамических/статических C++ библиотек, так как в руководстве они могут не объясняться.

Читать далее
Total votes 71: ↑71 and ↓0 +71
Comments 46

Элементы языка С, которые являются неподдерживаемыми в языке С++

Reading time 7 min
Views 31K
C *
Recovery mode

Нижеприведенный список является моей небольшой коллекцией примеров кода на языке С, которые не являются корректными с точки зрения языка С++ или имеют какое-то специфичное именно для языка С поведение. (Именно в эту сторону: С код, являющийся некорректным с точки зрения С++.)

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

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

Читать далее
Total votes 140: ↑139 and ↓1 +138
Comments 80

Как BI «купается» в озёрах данных: практика платформы «Форсайт». Часть 4 (заключительная). Кэширование — нужно или нет?

Reading time 21 min
Views 2K
Форсайт corporate blog High performance *System Analysis and Design *Data storage *Data Engineering *

Всем привет.

Мы завершаем цикл статей о том, как BI-платформа «Форсайт» работает с данными в связке «BI+Data Lake». В этом посте мы поговорим про правильные и уместные применения кэша при работе платформы. Расскажем, чем отличается адаптивный in-memory куб и внутренний файловый MOLAP-сервер в платформе «Форсайт». Поясним, как работает персональный и кросс-сессионный кэш. Определим рекомендации, в каких случаях можно и нужно использовать технологию in-memory в BI-платформе. Также мы будем вам благодарны, если в конце статьи вы проголосуете и укажете, был ли вам полезен подобный цикл статей. Добро пожаловать под кат.

Читать далее
Total votes 5: ↑5 and ↓0 +5
Comments 0

Альтернативы исключениям С++ и зачем они нужны

Reading time 10 min
Views 13K
Skillfactory corporate blog Programming *C++ *
Translation

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

Читать далее
Total votes 29: ↑25 and ↓4 +21
Comments 40

Мой опыт технического собеседования: как не превратить его в экзамен и найти профпригодного сотрудника

Reading time 21 min
Views 25K
CloudMTS corporate blog Personnel Management *IT career
image

Привет, Хабр! Меня зовут Леонид Титов, я бэкенд разработчик в #CloudMTS. Так уж сложилось, что я не только пишу код, но и иногда собеседую кандидатов. Мне нравится процесс, и, думаю, у меня это получается.

Начал я этим заниматься ещё на предыдущем месте работы, где мы с тимлидом собирали новую команду. С тех пор прошло уже N лет, практика продолжилась, и после очередного собеседования я решил упорядочить свои знания. Кто-то считает, что от собеседований вообще толку нет, а кто-то наоборот (не будем показывать пальцем) проводит их в 3-5 раундов. Я уверен, что собеседования нужны, но важно четко понимать, зачем именно.

На всякий случай уточню: в статье речь пойдет не столько про конкретные вопросы (хотя они тоже будут), сколько про выработанную мной методику и принципы, которыми я руководствуюсь, задавая те или иные вопросы.

Еще я поделюсь неожиданными впечатлениями от ситуации, когда оказался «по ту сторону», лайфхаками, фейлами и неплохо зарекомендовавшими себя практиками. Про soft skills тут ничего не будет — это отдельная важная тема. Прежде всего мы затронем вопрос профпригодности, определения ее наличия или отсутствия. Во второй половине статьи приведу собственный список вопросов, переведенный на русский, с комментариями.
Читать дальше →
Total votes 60: ↑48 and ↓12 +36
Comments 68

Зачем С++ в Такси? Доклад Яндекса

Reading time 21 min
Views 15K
Яндекс corporate blog High performance *System Analysis and Design *C++ *Designing and refactoring *
Бэкенд первой версии Яндекс.Такси, которая вышла в 2011 году, был написан на Python. Мы довольно долго не меняли основной язык, но постепенно пришли к идее о необходимости С++ в стеке технологий. Перед вами доклад о том, что мы переписали в первую очередь и почему, а также о трюках С++, которые помогают нам справляться с ростом.

— Добрый день. Меня зовут Александр Голубев, и сегодня я вам расскажу, зачем C++ появился в Такси.
Читать дальше →
Total votes 28: ↑25 and ↓3 +22
Comments 18

Does the latency matter?

Reading time 12 min
Views 8.1K
Конференции Олега Бунина (Онтико) corporate blog High performance *IT Infrastructure *Network technologies *Distributed systems *
✏️ Technotext 2021

Есть исследование от Google, которое говорит, что если ваш сайт открывается больше трех секунд, то вы потеряете около 40% десктопных пользователей и более 50% — мобильных. Еще есть репорт от Amazon, который говорит, что для Amazon каждые 100 мс дополнительного latency стоит им 1% продаж. В объемах Amazon это миллионы долларов.

В зависимости от вашего бизнеса вам стоит тоже ответить на вопрос: Does the latency matter?

Я работаю как системный инженер уже более 8 лет. Хочу поделиться опытом, который получил в процессе решения задач в компании Big Data Technologies. У нас есть какой-никакой highload. В пике это 30 тысяч rps, и вопрос с latency довольно остро стоит перед бизнесом.

Читать далее
Total votes 46: ↑45 and ↓1 +44
Comments 3

Закалка тимлида: как вывести проект из пожара, не сгореть самому и не спалить команду

Reading time 23 min
Views 18K
Конференции Олега Бунина (Онтико) corporate blog Plesk corporate blog Development Management *IT career
✏️ Technotext 2021

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

На прошедшей в апреле конференции TeamLead Conf 2021 я поделился своим опытом, как вытащить проект из пожара и обойтись без человеческих жертв. Под катом моя история, а если предпочитаете смотреть — вот запись выступления.

Читать далее
Total votes 52: ↑52 and ↓0 +52
Comments 17

Книга «Облачные архитектуры: разработка устойчивых и экономичных облачных приложений»

Reading time 19 min
Views 4.7K
Издательский дом «Питер» corporate blog Cloud computing *Professional literature *
image Привет, Хаброжители! Облачные вычисления — это, пожалуй, наиболее революционная разработка в IT со времен виртуализации. Облачно-ориентированные архитектуры обеспечивают большую гибкость по сравнению с системами предыдущего поколения. В этой книге продемонстрированы три важнейших аспекта развертывания современных cloud native архитектур: организационное преобразование, модернизация развертывания, паттерны облачного проектирования.

Книга начинается с краткого знакомства с облачно-ориентированными архитектурами — на примерах объясняется, какие черты им присущи, а какие нет. Вы узнаете, как организуется внедрение и разработка облачных архитектур с применением микросервисов и бессерверных вычислений как основ проектирования. Далее вы изучите такие столпы облачно-ориентированного проектирования, как масштабируемость, оптимизация издержек, безопасность и способы достижения безупречной эксплуатационной надежности. В заключительных главах будет рассказано о различных общедоступных архитектурах cloud native, — от AWS и Azure до Google Cloud Platform.
Читать дальше →
Total votes 8: ↑8 and ↓0 +8
Comments 3

Серебряная пуля геораспределенных систем

Reading time 11 min
Views 3K
Конференции Олега Бунина (Онтико) corporate blog Conferences IT-companies

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

Я — руководитель департамента эксплуатации и разработки сервисных систем ECOMMPAY IT. В своем докладе на конференции HighLoad++ Весна 2021 я рассказал, правда ли, что геораспределенные системы потенциально могут повышать надежность. И разобрал ситуации, когда геораспределенность не помогает, а добавляет потенциальных проблем и заставляет задумываться о новых вещах. Расшифровку доклада читайте под катом.

Читать далее
Total votes 20: ↑19 and ↓1 +18
Comments 2

Внутренности Linux: как /proc/self/mem пишет в недоступную для записи память

Reading time 7 min
Views 8.3K
VK corporate blog Abnormal programming **nix *C *Development for Linux *
Translation

Странная причудливость псевдофайла /proc/*/mem заключается в его «пробивной» семантике. Операции записи через этот файл будут успешными даже если целевая виртуальная память помечена как недоступная для записи. Это сделано намеренно, и такое поведение активно используется проектами вроде компилятора Julia JIT или отладчика rr.

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

Мы постараемся ответить на эти вопросы и рассмотрим нюансы взаимодействия между операционной системой и оборудованием, на котором она исполняется. Изучим ограничения процессора, которые могут влиять на ядро, и узнаем, как ядро может их обходить.
Total votes 33: ↑31 and ↓2 +29
Comments 1

Топ 6 библиотек Python для визуализации: какую и когда лучше использовать?

Reading time 13 min
Views 43K
OTUS corporate blog Python *Machine learning *
Translation

Если вы только собираетесь начать работу с визуализацией в Python, количество библиотек и решений вас определенно поразит:

- Matplotlib

- Seaborn

- Plotly

- Bokeh

- Altair

- Folium

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

Читать далее
Total votes 19: ↑19 and ↓0 +19
Comments 3

C++17. Функция стандартной библиотеки std::launder и задача девиртуализации

Reading time 34 min
Views 23K
Programming *C++ *
Tutorial
✏️ Technotext 2021

В этой статье мы попробуем разобраться с одним из самых неоднозначных и непонятных нововведений стандарта C++17 — функцией стандартной библиотеки std::launder. Мы посмотрим на std::launder с другой стороны, посмотрим на источник. Разберем что лежит в основе функции на примере решения задачи девиртуализации и реализации виртуальных указателей в LLVM.


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

Коты в коробочках, или Компактные структуры данных

Reading time 12 min
Views 26K
VK corporate blog Programming *Algorithms *Mathematics *
🔥 Technotext 2020

image


Как быть, если дерево поиска разрослось на всю оперативку и вот-вот подопрет корнями соседние стойки в серверной? Что делать с инвертированным индексом, жадным до ресурсов? Завязывать ли с разработкой под Android, если пользователю прилетает «Память телефона заполнена», а приложение едва на половине загрузки важного контейнера?


В целом, можно ли сжать структуру данных, чтобы она занимала заметно меньше места, но не теряла присущих ей достоинств? Чтобы доступ к хэш-таблице оставался быстрым, а сбалансированное дерево сохраняло свои свойства. Да, можно! Для этого и появилось направление информатики «Succinct data structures», исследующее компактное представление структур данных. Оно развивается с конца 80-х годов и прямо сейчас переживает расцвет в лучах славы big data и highload.


А тем временем на Хабре найдется ли герой, способный пересковоговорить три раза подряд
[səkˈsɪŋkt]?

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

ARM и программирование без блокировок

Reading time 7 min
Views 18K
Яндекс corporate blog Programming *C++ *CPU
Translation


Выпуск ARM-процессора Apple M1 вдохновил меня на то, чтобы написать в Твиттер про опасности программирования без блокировок (lock-free). Этот твит вызвал бурную дискуссию. Обсуждение прошло довольно неплохо, учитывая то, что попытки втиснуть в рамки Твиттера обсуждениие такой сложной темы, как модели памяти центрального процессора, — в принципе бессмысленны. Но у меня осталось желание немного раскрыть тему.

Этот пост задуман не только как обычная вводная статья про опасности программирования без блокировок (о которых я в последний раз писал около 15 лет назад), но и как объяснение, почему слабая модель памяти ARM ломает некоторый код, и почему этот код, вероятно, не работал изначально. Я также хочу объяснить, почему стандарт C++11 значительно улучшил ситуацию в программировании без блокировок (несмотря на возражения против противоположной точки зрения).
Читать дальше →
Total votes 59: ↑55 and ↓4 +51
Comments 60

Один совет, благодаря которому я успешно прошёл несколько собеседований

Reading time 6 min
Views 167K
IT career
Translation
— Что вы скажете, если я попрошу вас разработать сервис, который обрабатывает тысячи запросов в секунду с минимальной задержкой?

— Хм… Я скажу, что у вас в компании возникла такая проблема. Но у вас нет идей и вы обсуждаете её на собеседованиях с кандидатами :)

Именно так я ответил, когда мне впервые задали вопрос по архитектуре. Мы хорошо посмеялись. Но потом интервьюер всё-таки заставил меня спроектировать сервис.
Читать дальше →
Total votes 107: ↑101 and ↓6 +95
Comments 222

dynamic_cast на этапе компиляции

Reading time 10 min
Views 2.9K
C++ *

Приветствую все читающих.


О чём статья (или задача статьи): практический ответ на вопрос "возможно ли создать большой проект так, чтобы полностью отказаться от dynamic_cast на этапе выполнения?", где под большим проектом подразумевает такой в котором уже нет человека, что бы держал в голове всю кодовую базу проекта целиком.


Предварительный ответ: ДА, это возможно — возможно создать механизм, позволяющий решить задачу dynamic_cast на этапе компиляции, но — едва ли подобное будет применяться на практике по причинам как: (1) с самого начала целевой проект должен строиться согласно наперёд заданным правилам, в следствии чего взять и применить методику к существующему проекту, очень трудоёмко (2) существенное повышение сложности кода с точки зрения удобства его читаемости в определённых местах, где, собственно, происходит замена логики dynamic_cast на предложенную ниже (3) использование шаблонов, что может быть неприемлемым в некоторых проектах по идеологическим соображениям ответственных за него (4) интерес автора исключительно в том, чтобы дать ответ на поставленный вопрос, а не в том, чтобы создать универсальный и удобный механизм решения поставленной задачи (в конце-концов, не нужно на практике решать проблемы, которые не являются насущными).

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

Information

Rating
Does not participate
Registered
Activity