Pull to refresh
9
0
Бевз Олег Денисович @RaTyS

User

Send message

Налоговый и валютный резидент РФ —последствия приобретения и утраты статусов — полный FAQ с примерами

Reading time27 min
Views30K

Друзья, всех приветствую и предлагаю ознакомиться, как мне кажется с довольно полным FAQ по теме налогового и валютного резиденства РФ. По ходу материала есть некоторые примеры, а внизу вопросы & ответы.

Читать далее
Total votes 43: ↑38 and ↓5+41
Comments47

Где искать данные по зарплате на этапе обсуждения оффера?

Reading time3 min
Views17K

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

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

Ниже я привожу несколько источников в первую очередь с фокусом на США которые можно использовать для анализа. Большинство из этих ресурсов используют данные предоставленные самими сотрудниками, анонимно.

Читать далее
Total votes 7: ↑6 and ↓1+6
Comments2

Кризис в России и финансовые вопросы: как не потерять то, что есть

Reading time6 min
Views100K

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

Читать далее
Total votes 76: ↑63 and ↓13+79
Comments196

Парадокс Ферми – вовсе не парадокс, а вопрос; в чём он состоит, и как его решать (часть 2)

Reading time7 min
Views25K
image
«Репликатор» из сериала «Звёздные врата»

В прошлый раз мы разобрались с тем, что парадокс Ферми – вовсе не парадокс, а просто вопрос: «А где все?», и рассмотрели некоторые варианты ответов на него.

Вкратце: если в нашем Млечном Пути, сотни миллиардов звёзд, и у приличного процента из них есть планетные системы, а возраст Галактики составляет около 8-10 млрд лет, то уж наверняка за это время где-то должна была появиться высокоразвитая цивилизация (а, может, и не одна), способная колонизировать звёзды. Почему же мы не видим следов её деятельности?

С 1950-х годов прошлого века появилось немало гипотез, пытающихся объяснить отсутствие наблюдений. Продолжим их рассматривать.
Читать дальше →
Total votes 38: ↑35 and ↓3+47
Comments101

Горшочек, не вари! Как я получил три оффера, а потом еще, и еще, и…

Reading time11 min
Views50K

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

Здравствуйте, меня зовут Игорь и я разработчик.

Такими словами обычно начинают стендапы в клубе анонимных алкоголиков. И сегодня я пришёл сюда, чтобы рассказать вам о моей зависимости. Может это и не зависимость даже, а вполне нормальное поведение. В любом случае я хочу вынести это на ваш суд. Итак, вот моя проблема: я очень хорошо прохожу собеседования на позицию старшего разработчика и соглашаюсь на эти собеседования раз в месяц, если меня приглашают. Звучит не очень впечатляюще? Насколько хорошо я прохожу собеседования? Последние шесть собеседований я прошёл с лёгкостью и по результату каждого из них получил оффер. А если сложить предложенные суммы ЗП из этих офферов, то получится сумма немного превышающая 21 тысячу евро! Конечно, на финишной прямой с потенциальным работодателем у меня устанавливается почти полное взаимопонимание, мы улыбаемся друг другу в скайпе, мне задают последний вопрос, что-то вроде: «а что тебя не устраивает на текущем месте работы, почему ты в поиске?». И вот в этом месте я добавляю изюминку, говорю: «я не в поиске, просто мне предложили пройти собеседование, и я согласился — вдруг, что интересное подвернётся». Возможно, это моё заявление и стреляет точнее всего.
Читать дальше →
Total votes 71: ↑55 and ↓16+60
Comments63

Как получил оффер от Microsoft

Reading time6 min
Views53K

О чем эта статья

Это продолжение моих похождений по ФААНГ. Предыдущая статья была о моем опыте собеседования в Амазоне.

Здесь я тоже поделюсь всем процессом: как я попал на собеседование, все этапы, вопросы на интервью, как я готовился, некоторые детали офера, и общее впечатление от интервью. Так же будут всякие сравнения опыта собеседования в Майкрософте и в Амазоне.

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

Читать далее
Total votes 67: ↑59 and ↓8+72
Comments139

Артефакты в CLR: как маскируют современные кибератаки и как SOC может их обнаружить

Reading time16 min
Views6.2K


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

Но однозначного преимущества у «красных» нет. Профессиональные Blue Teams давно изучили распространенные методы нападения и легко их вычисляют. Успех кибератаки сегодня во многом зависит от того, как хорошо «красные» смогут замаскировать старую проверенную утилиту, чтобы сбить детект классического защитного средства.

Меня зовут Александр Родченко (gam4er), я — Senior SOC Analyst в «Лаборатории Касперского». Под катом я расскажу, почему атакующие предпочитают использовать старые утилиты, а не писать новые, где (а на самом деле — когда) в CLR появляются артефакты от «старых добрых» утилит, и как ваш SOC может вовремя их задетектить.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments8

Погромист. Мои самые эпичные провалы за всю карьеру

Reading time13 min
Views105K

Я люблю критику. Если вы не заметили, я, как старый дед, всё поливаю грязью и всем недоволен.

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

Читать далее
Total votes 231: ↑222 and ↓9+269
Comments204

О классах Program и Startup — инициализация ASP.NET приложения. Часть II: IWebHostBuilder и Startup

Reading time72 min
Views11K

Это - продолжение статьи, первая часть которой была опубликована ранее. В той части был рассмотрен процесс инициализации, общий для любого приложения .NET Core на базе шаблона Generic Host. А в этой части будет рассмотрена инициализация, специфическая именно для веб-приложения. Именно в нее входят вызовы методов Startup-класса.

Если вы не читали первую часть, то рекомендую в нее заглянуть, по двум причинам. Во-первых, процесс инициализации, специфической именно для веб-приложения, существенно опирается на механизмы, рассмотренные в первой части: методы интерфейса построителя веб-приложения IWebHostBuilder в основном реализуются через вызовы методов интерфейса построителя IHostBuilder, и процесс инициализации проходит, в целом, через те же стадии, общие для любого базирующегося на Generic Host приложения .NET Core. А во-вторых, там объяснено, для чего часть информации убрана под спойлеры, и какую информацию под какими спойлером можно увидеть (и решить - а стоит ли ее смотреть).

И ещё пара слов про вторую часть. К моему сожалению, она получилась раза в два больше первой части, которая сама по себе была и так немалой. Но мне не удалось найти способа сократить ее без ущерба для содержания. Так что заранее прошу простить меня тех, кому большой объем статьи помешает с ней ознакомиться. Возможно, им сможет помочь краткое содержание этой статьи, которое находится сразу под катом.
А ещё, опыт публикации первой части показал, что стоит заранее предупредить потенциальных читателей, чтобы ненароком не ввести их в заблуждение: в этой статье содержится только описание "как оно работает", но нет никакой информации, как этим пользоваться практически, никаких рецептов и вообще - никакого кода. К сожалению, большой объем матераиала заставил чем-то пожертвовать. И я решил ради полноты описания принципов работы - информации, которую лично я нигде больше не видел - пожертвовать сведениями о практических приемах работы - той информацией, которая, в конце концов, уже опубликована в руководстве от изготовителя и в многочисленных статьях.

Итак, кому интересен предмет статьи - добро пожаловать под кат.

Читать далее
Total votes 5: ↑4 and ↓1+3
Comments3

Актуальность принципов SOLID

Reading time5 min
Views38K

Впервые принципы SOLID были представлены в 2000 году в статье Design Principles and Design Patterns Роберта Мартина, также известного как Дядюшка Боб. 

С тех пор прошло два десятилетия. Возникает вопрос - релевантны ли эти принципы до сих пор?

Перед вами перевод статьи Дядюшки Боба, опубликованной в октябре 2020 года, в которой он рассуждает об актуальности принципов SOLID для современной разработки.   

Недавно я получил письмо с примерно следующими соображениями:

Годами знание принципов SOLID было стандартом при найме. От кандидатов ожидалось уверенное владение этими принципами. Однако позже один из наших менеджеров, который уже почти не пишет код, усомнился, разумно ли это. Он утверждал, что принцип открытости-закрытости стал менее важен, так как по большей части мы уже не пишем код для крупных монолитов. А вносить изменения в компактные микросервисы - безопасно и просто.

Принцип подстановки Лисков давно устарел, потому что мы уже не уделяем столько внимания наследованию, сколько уделяли 20 лет назад. Думаю, нам стоит рассмотреть позицию Дена Норса о SOLID - “Пишите простой код”

Читать далее
Total votes 39: ↑33 and ↓6+36
Comments87

О классах Program и Startup — инициализация ASP.NET приложения. Часть I: Program и IHostBuilder

Reading time42 min
Views22K

Не так давно на Хабре я увидел статью с многообещающим названием "Что из себя представляет класс Startup и Program.cs в ASP.NET Core". Меня всегда интересовало и интересует, что именно происходит под капотом той или иной библиотеки или фреймворка, с которыми мне доводится работать. И к веб-приложениям на ASP.NET Core это относится в полной мере. И я надеялся получить из этой статьи новую информацию о том, как работают упомянутые классы при запуске такого приложения. Та статья, к сожалению, меня разочаровала: в ней всего лишь в очередной раз был пересказан кусок руководства, никакой новой информации я оттуда не получил. И при чтении ее я подумал, что, наверное, есть и другие люди, которым, как и мне, интересно не просто знать, как применять тот или иной фреймворк (ASP.NET Core в данном случае), но и как он работает. А так как я по разным причинам последнее время довольно сильно углубился во внутреннее устройство ASP.NET Core, то я подумал, что теперь мне есть много что рассказать о нем из того, что выходит за рамки руководств. И вот потому я решил для начала написать статью про то, что действительно представляют из себя классы Startup и Program - так, чтобы рассказать не о том, как ими пользоваться, а о том, как работают эти классы, причем - в контексте работы всего веб-приложения на ASP.NET Core. Однако поскольку необъятное объять нельзя, то предмет этот статьи ограничен. Прежде всего, она ограничивается рассказом только про веб-приложения, созданные с использованием нового типа шаблона приложения - Generic Host. Во-вторых, статья будет посвящена только тому, как происходит инициализация веб-приложения, потому что основная роль рассматриваемых классов именно такова - инициализация и запуск размещенного приложения.

И ещё - предупреждение, судя по одному из комментариев - необходимое, чтобы не вводить в заблуждение потенциальных читателей: эта статья не предназначена служить руководством, она не содержит рецептов "как это использовать на практике". Такая информация есть в многочисленных уже написанных другими руководствах, и я не вижу для себя смысла писать еще одно. Да и объем статьи и без того велик.

Итак, кому рассматриваемая тема, даже в столь ограниченном объеме, интересна - добро пожаловать под кат.

Читать далее
Total votes 13: ↑12 and ↓1+12
Comments10

Понимание (всех) «модульных» форматов и инструментов JavaScript

Reading time19 min
Views46K


Доброго времени суток, друзья!

Представляю вашему вниманию перевод статьи «Understanding (all) JavaScript module formats and tools» автора Dixin.

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

Читать дальше →
Total votes 18: ↑18 and ↓0+18
Comments6

Аутентификация и авторизация в микросервисных приложениях

Reading time11 min
Views219K

Автор: Вячеслав Михайлов, Solutions Architect

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

Мы разберемся с процессом аутентификации пользователя, работой технологии единого входа (Single sign-on/SSO), дадим общее представлении о технологии OAuth2 и принципах ее работы, не углубляясь в особенности конкретной технической реализации. В следующей статье в качестве примера удачной реализации мы рассмотрим библиотеку Thinktecture Identity Server v3, подробнее остановимся на ее функциональных возможностях, поговорим, как собрать минимальный набор компонент, необходимый для работы в микросервисной архитектуре и достойный использования в боевой системе. В третьей части мы покажем, как расширять эту библиотеку, подстраиваясь под нужды вашей системы, а завершит цикл статей разбор различных сценариев, встречавшихся в жизни многих разработчиков с рекомендациями для каждого случая.
Читать дальше →
Total votes 41: ↑40 and ↓1+39
Comments15

Авторизация для ленивых. Наши грабли

Reading time57 min
Views29K


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

Поехали!
Total votes 40: ↑39 and ↓1+38
Comments15

Три аспекта оптимизации (БД и ПО)

Reading time31 min
Views66K

Предисловие


Довольно часто пользователи, разработчики, администраторы и т д СУБД MS SQL Server встречаются с проблемами производительности БД или СУБД в целом.

В данной статье будут даны общие рекомендации по настройке оптимизации как БД, так и всей СУБД в целом. Также будут даны основные рекомендации по взаимодействию приложения .NET и MS SQL Server. Будут даны примеры решения на большинство из приведенных ниже рекомендаций.

В данной статье не будут рассматриваться оптимизация аппаратных ресурсов, самой ОС и использование разных встроенных фич для СУБД и ОС в целом, т к это заняло бы целую книгу.
Читать дальше →
Total votes 25: ↑25 and ↓0+25
Comments81

ASP.NET Core: Механизмы предотвращения атак 2.0

Reading time20 min
Views25K

По встроенным механизмам безопасности ASP .NET Core написано мало статей. Даже официальная документация имеет пробелы. В этой статье мы пройдём по всем основным компонентам, имеющим отношение к безопасности, и разберём, как это работает внутри.


Если вы используете старый добрый ASP .NET, то для вас будет полезна информация по внутреннему устройству компонентов безопасности и лучшим практикам их использования. Здесь вы найдёте ответы на следующие вопросы: как реализованы современные анти-XSS механизмы и как их правильно использовать в ASP .NET Core? Как правильно работать с cookies и какие подводные камни там могут встретиться? Как был переписан механизм защиты от CSRF? Как правильно работать с криптографическими алгоритмами? Кроме того, рассказывается про опыт участия в Bug Bounty по поиску уязвимостей в ASP .NET Core.


Перед чтением рекомендуется освежить в памяти атаки из списка OWASP Top 10.


Прототипом статьи является доклад Михаила Щербакова на конференции DotNext 2017 Moscow. Михаил — Microsoft .NET MVP, участник .NET Core Bug Bounty Program, соорганизатор сообщества .NET программистов (Московское комьюнити называется MskDotNet, питерское — SpbDotNet). По работе последние 5 лет занимается безопасностью. Работал в Positive Technologies, в Cezurity, сейчас как консультант работает напрямую с заказчиками, по большей части в этой же сфере. Профессиональные интересы: статический и динамический анализ кода, информационная безопасность, автоматизация отладки кода, исследование внутреннего устройства .NET CLR.


В этом тексте огромное количество картинок со слайдов. Осторожно, трафик!

Читать дальше →
Total votes 54: ↑53 and ↓1+52
Comments2

Как работает JS: сервис-воркеры

Reading time11 min
Views51K
[Советуем почитать] Другие 19 частей цикла
Часть 1: Обзор движка, механизмов времени выполнения, стека вызовов
Часть 2: О внутреннем устройстве V8 и оптимизации кода
Часть 3: Управление памятью, четыре вида утечек памяти и борьба с ними
Часть 4: Цикл событий, асинхронность и пять способов улучшения кода с помощью async / await
Часть 5: WebSocket и HTTP/2+SSE. Что выбрать?
Часть 6: Особенности и сфера применения WebAssembly
Часть 7: Веб-воркеры и пять сценариев их использования
Часть 8: Сервис-воркеры
Часть 9: Веб push-уведомления
Часть 10: Отслеживание изменений в DOM с помощью MutationObserver
Часть 11: Движки рендеринга веб-страниц и советы по оптимизации их производительности
Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
Часть 12: Сетевая подсистема браузеров, оптимизация её производительности и безопасности
Часть 13: Анимация средствами CSS и JavaScript
Часть 14: Как работает JS: абстрактные синтаксические деревья, парсинг и его оптимизация
Часть 15: Как работает JS: классы и наследование, транспиляция в Babel и TypeScript
Часть 16: Как работает JS: системы хранения данных
Часть 17: Как работает JS: технология Shadow DOM и веб-компоненты
Часть 18: Как работает JS: WebRTC и механизмы P2P-коммуникаций
Часть 19: Как работает JS: пользовательские элементы

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


Читать дальше →
Total votes 35: ↑34 and ↓1+33
Comments4

Удивительный Angular

Reading time31 min
Views213K

Awesome Angular



От переводчиков


Всем привет, с вами Максим Иванов и Дмитрий Сергиенков, и сегодня мы поговорим о новостях в мире Angular. Мы подготовили для вас наиболее интересные материалы и отобрали список вопросов, который вам должен понравиться. Отметим только, что если вы будете ждать от этой статьи ответа на вопрос "Чем Angular лучше других технологий?", то придется вас огорчить, у нас не будет ответа на него. Почему? Как правило, все мнения вида "Технология X лучше технологии Y" почти всегда не более, чем отражение точки зрения высказывающегося. Однако для тех, кто только начинает изучать этот фреймворк, мы постараемся объяснить, что дает вам эта технология и какую пользу она приносит. Также не проходите мимо и ответьте на опрос, самые популярные ответы будут отправлены Игорю Минару (ведущий разработчик команды Angular). Ну что же, приступим.

Читать дальше →
Total votes 47: ↑45 and ↓2+43
Comments59

Строим распредёленное реактивное приложение и решаем задачи согласованности

Reading time12 min
Views11K


Сегодня многие компании, начиная новый проект или улучшая существующие системы, задаются вопросом, какой вариант разработки более оправдан — воспользоваться «классическим» трехслойным подходом или же спроектировать систему как набор слабосвязанных компонентов?


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


В этой статье я расскажу, как и почему мы в 2ГИС выбрали второй вариант для построения новой системы, как решали возникающие задачи и какие выгоды от этого получили. Под катом — про Amazon S3, Apache Kafka, Reactive Extensions (Rx), eventual consistency и GitHub, сжатые сроки и невозможность собрать команду необходимого размера из инженеров, использующих один стек технологий.

Интересно? Тогда вперед!
Total votes 34: ↑34 and ↓0+34
Comments6

Лабораторная работа: введение в Docker с нуля. Ваш первый микросервис

Reading time26 min
Views342K
Привет, хабрапользователь! Сегодня я попробую представить тебе очередную статью о докере. Зачем я это делаю, если таких статей уже множество? Ответов здесь несколько. Во-первых не все они описывают то, что мне самому бы очень пригодилось в самом начале моего пути изучения докера. Во-вторых хотелось бы дать людям к теории немного практики прямо по этой теории. Одна из немаловажных причин — уложить весь накопленный за этот недолгий период изучения докера опыт (я работаю с ним чуть более полугода) в какой-то сформированный формат, до конца разложив для себя все по-полочкам. Ну и в конце-концов излить душу, описывая некоторые грабли на которые я уже наступил (дать советы о них) и вилы, решение которых в докере просто не предусмотрено из коробки и о проблемах которых стоило бы задуматься на этапе когда вас распирает от острого желания перевести весь мир вокруг себя в контейнеры до осознавания что не для всех вещей эта технология годна.

Что мы будем рассматривать в данной статье?

В Части 0 (теоретической) я расскажу вам о контейнерах, что это и с чем едят
В Частях 1-5 будет теория и практическое задание, где мы напишем микросервис на python, работающий с очередью rabbitmq.
В Части 6 — послесловие
Читать дальше →
Total votes 108: ↑107 and ↓1+106
Comments36

Information

Rating
Does not participate
Location
Томск, Томская обл., Россия
Date of birth
Registered
Activity