Pull to refresh
4
0.1

Developer

Send message

Многозадачность и многопоточность — распространенные заблуждения и недопонимания

Reading time11 min
Reach and readers25K

Когда я предложил перевести на русский мою последнюю статью Easy Concurrency with Python Shared Objects на английском, поступило предложение "написать в несколько раз короче и понятнее". Просьба более чем обоснована. Поскольку я уже порядка десяти лет пишу многопоточку и БД, то описываемые мной логические связи выглядели самоочевидно, и я ошибочно расчитывал на аудиторию из трех с половиной человек, которые сидят сейчас где-то в яндексе или гугле. Судя по всему, они там и сидят, но тема им не интересна, поскольку в питоне нет настоящих потоков, а значит для этих людей такого языка программирования не существует. Потому я немножко снижаю планку и делаю общий обзор проблематики параллельных вычислений для людей, которые в них разбираются, но не являются экспертами в области.


Из-за чего весь сыр-бор?

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

Наблюдение за Дистанционным Электронным Голосованием 2021 года (система Waves-РосТелеКом, федеральная)

Reading time27 min
Reach and readers11K

Привет Хабр, в 2019 году я разбирался в дистанционном электронном голосовании в МГД, в 2020 у нас было голосование по Конституции, где само голосование прошло хорошо, но номера паспортов неудачно попали в сеть. Ну а в этом году мне, как наблюдателю, удалось получить доступ непосредственно к нодам наблюдения всех 4-ех шардов блокчейна, использовавшегося в федеральном голосовании, получить полный дамп транзакций блокчейна голосования, сравнить его с теми транзакциями, что выложены на официальном сайте и начать его исследование. Как это было и что получилось - под катом

Читать далее

Из Java в Kotlin: туда и обратно

Reading time15 min
Reach and readers23K

В статье рассмотрены проблемы и решения, которые возникли при добавлении Kotlin в небольшой существующий микросервис на Spring Boot, написанный на Java. В рамках статьи не будут рассматриваться плюсы и минусы того или иного языка - здесь и так сломано много копий. В рамках проекта мы хотели протестировать, как будет работать Kotlin в нашем обычном стеке. Рассматривается стандартный стек Spring WebMVC (не реактивный)

Читать далее

Использование сертификатов в ASP.NET Core

Reading time20 min
Reach and readers38K

В последнее время использование протокола HTTPS для Web-ресурсов является обязательным требованиям ко всем более-менее большим Web-проектам. Эта технология основана на использовании так называемых сертификатов. Раньше за получение своего сертификата нужно было платить. Но сегодня появление таких сервисов, как Let's Encrypt сделало возможным получение сертификатов бесплатно. Таким образом, цена больше не служит оправданием отказа от использования HTTPS.

В самом простом случае сертификат позволяет установить защищённое соединение между клиентом и сервером. Но это далеко не всё, на что они способны. В частности, недавно я смотрел на Pluralsight курс Microservices Security. И там среди прочих упоминалась такая вещь, как Mutual Transport Layer Security. Она позволяет не только клиенту убедиться в том, что он общается именно с тем сервером, с которым хочет, но и сервер может узнать, что за клиент с ним общается.

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

Читать далее

Создание статического анализатора для C# на основе Roslyn API

Reading time24 min
Reach and readers14K

После прочтения этой статьи вы будете обладать знаниями для создания своего собственного статического анализатора для C# кода, благодаря ему вы сможете найти потенциальные ошибки и уязвимости в исходном коде своих и не только проектов. Заинтригованы? Что ж, давайте начнём.

Читать далее

35 инструментов для веб-разработчика на каждый день

Reading time4 min
Reach and readers50K

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

Краткое содержание: проверка кода по стандартам, проверка вёрстки и стилей, работа с кодом, работа с графикой (SVG, фавиконки, конвертеры и сжималки), работа с текстом (типографы и конвертеры всего во всё).

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

Читать далее

Соседняя очередь всегда движется быстрее

Reading time13 min
Reach and readers29K

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

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

Читать далее

Does the latency matter?

Reading time12 min
Reach and readers11K

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

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

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

Читать далее

ILSpy — open source альтернатива .NET Reflector

Reading time2 min
Reach and readers58K
Как вы все знаете, Reflector становится платным. Такой шаг компании Red Gate не мог не сподвигнуть разработчиков сделать бесплатную альтернативу. Вот и всем известные разработчики open source решений для .NET IC#Code (на их счету так же IDE SharpDevelop) взялись за разработку своего Reflector'а.
Разработка началась совсем недавно, поэтому проект ещё не оброс всеми нужными фичами, но есть надежда на успешное продолжение.
читать дальше

Тайна списка шумерских царей. Часть 2. Плуг судьбы

Reading time23 min
Reach and readers19K

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

Итак, посмотрим на начало царского списка, на тех царей, что правили до потопа.

Читать далее

Более 15 полезных инструментов для фронтендера с уклоном в CSS

Reading time5 min
Reach and readers14K

К старту курса по Frontend-разработке делимся переводом подборки различных инструментов: от генератора CSS, который рассчитывает пространство так, что брейкпоинты (контрольные точки) заменяются переменными, до редактора анимации прямо в браузере, а также средства масштабирования для отзывчивости в SVG и даже визуализатора специфичности CSS, который пригодится при анализе больших таблиц стилей. Мы структурировали и, где это было возможно, расширили оригинал, добавив информацию и примеры из репозиториев и официальных описаний инструментов.

Читать далее

Как проходят архитектурные секции собеседования в Яндексе: практика дизайна распределённых систем

Reading time25 min
Reach and readers206K
Привет, меня зовут Костя Кардаманов, я работаю в отделе технологий разработки Яндекса. Обычно такой же фразой я приветствую и кандидатов на собеседовании. А сегодня я хотел бы рассказать вам, как и зачем мы проводим интервью по дизайну систем с бэкенд-разработчиками. Сразу скажу: для фронтендеров, мобильных разработчиков и ML-инженеров подобный тип собеседований применим слабо, так что эти специальности мы здесь обсуждать не будем.

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

Что такое дизайн информационных систем


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

Опытный читатель может сказать — в мире полно платных и бесплатных решений, из которых я могу собрать систему как из деталей конструктора, зачем мне понимать устройство этих деталей?
Читать дальше →

Создание прекрасных приложений с помощью Xamarin.Forms

Reading time2 min
Reach and readers10K

Есть вопрос, который мне постоянно задают в Твиттере: как создавать приложения с крутым дизайном с помощью Xamarin.Forms? Это отличный вопрос, ведь любой может создавать красивые приложения, немного вдохновившись и поработав над стилем. Я не дизайнер и не претендую на звание дизайнера, но есть много отличных источников вдохновения для дизайна приложений, включая Dribbble, Uplabs и другие. Эти дизайны от талантливых людей со всего мира могут повлиять на внешний вид ваших собственных приложений.

Подробнее под катом!

Читать далее

Дистанционная (удалённая) работа IT-специалистов: существенные условия трудового договора

Reading time8 min
Reach and readers11K
image

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

Правовой основой дистанционной работы IT-специалистов может служить:

  1. Договор гражданско-правового характера (ГПХ), а именно, договор подряда или договор оказания услуг. Сторонами такого договора являются «заказчик» и «подрядчик» (или «заказчик» и «исполнитель»).
  2. Трудовой договор, т.е. договор, заключаемый с сотрудником, принимаемым в штат организации. Сторонами такого договора являются «работодатель» и «работник».

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

Слушаем 15 лучших ИТ-подкастов

Reading time5 min
Reach and readers56K


Один из признаков настоящего профи — интерес к выбранному делу и готовность узнавать новое, расширяя границы выбранной профессии. Это утверждение на 100% подходит к ИТ-индустрии, которая продолжает стремительно развиваться. Мы выбрали для вас 15 интересных подкастов на эту тему.
Читать дальше →

За что айтишники ценят своих работодателей: рейтинг компаний по качествам

Reading time5 min
Reach and readers15K

Сегодня расскажем вам о классных компаниях, которые не попали в наш рейтинг лучших ИТ-работодателей 2020, но у которых тоже есть оценка на Хабр Карьере. Для этого мы отобрали лидеров по качествам, которые оценивали сотрудники, посмотрели на них и выявили некоторые закономерности. Например, в огромных компаниях сотрудники больше всего ценят карьерный рост, в больших — современные технологии, в средних — комфортные условия труда, а в небольших — отношения с коллегами.

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

Читать далее

Понимаем красно-черное дерево. Часть 2. Балансировка и вставка

Reading time6 min
Reach and readers39K

Это вторая часть из серии статей "Понимаем красно-черное дерево". Если вы пропустили первую часть, настоятельно рекомендую ознакомиться с ней здесь. Там мы разобрали причину появления кчд и расставили по полочкам некоторые его свойства.

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

Читать далее

Фишки IDEA. Часть 1

Reading time4 min
Reach and readers22K

Функционал IntelliJ IDEA велик, так что вряд ли найдется много разработчиков, кто использует все ее возможности без исключения. Но у каждого есть свой набор любимых фишек и опций. Около месяца назад во внутреннем чате Максилекта родилась идея пошарить эти фишки внутри компании. Коллеги восприняли ее с таким энтузиазмом, что одного запланированного часа обсуждений на это не хватило - встречу повторили через неделю.

Хотим поделиться с вами самыми интересными идеями (со ссылками на документацию, где подробно описано, как это работает).

Читать далее

Руководство по работе с фреймворком Kotlin Exposed

Reading time16 min
Reach and readers29K

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

Exposed — это открытая библиотека, разработанная компанией JetBrains. Она распространяется по лицензии Apache и позволяет использовать идиоматический API Kotlin для реализации некоторых реляционных баз данных от различных поставщиков.

Exposed можно использовать как в качестве высокоуровневого языка DSL в SQL, так и в качестве облегченной технологии ORM (объектно-реляционного отображения). В этом руководстве мы рассмотрим оба варианта использования.

Читать далее

HTML трюки

Reading time2 min
Reach and readers15K
image

1. Атрибут `loading=lazy`


Совет по производительности. Вы можете использовать атрибут loading = lazy, чтобы отложить загрузку изображения до тех пор, пока пользователь не домотает до них.

<img src='image.jpg' loading='lazy' alt='Alternative Text'>  

Information

Rating
4,188-th
Registered
Activity