Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

UML: обзор основных типов диаграмм, диаграмма Классов. Часть 1

Время на прочтение 7 мин
Количество просмотров 54
UML Design *Проектирование и рефакторинг *Подготовка технической документации *
Из песочницы

Хабр, привет! Меня зовут Витя, я работаю системным аналитиком, сегодня хочу рассказать про такой обязательный навык аналитиков, как проектирование процессов. Думаю, что каждый, кто будет работать на позиции системного/бизнес аналитика, рано или поздно столкнется с такой задачей.

Читать далее
Рейтинг 0
Комментарии 0

Новости

Lua: маленький язык, который смог

Уровень сложности Простой
Время на прочтение 6 мин
Количество просмотров 1.1K
Lua *Софт Программирование *Изучение языков
Мнение
Перевод

Lua — это, пожалуй, мой любимый "маленький язык", с низкой когнитивной нагрузкой и простотой в изучении и использовании. Он встроен во многое ПО, такое как Redis, NGINX через OpenResty и Wireshark (прим. перевод.: и многое другое). Он также используется в качестве скриптового языка в таких играх, как World of Warcraft и Roblox через Luau (прим. перевод.: и многих других). Этот пост — краткое признание в любви языку с некоторыми примерами того, почему он мне так нравится.

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 3

Как развернуть свой Wireguard VPN сервер с WEB-интерфейсом за одну команду

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 945
Информационная безопасность *
Туториал
Recovery mode

WireGuard является одним из наиболее популярных и простых в использовании VPN-решений, предоставляющих безопасное сетевое соединение. Если вы ищете быстрый и простой способ развернуть собственный VPN-сервер WireGuard с WEB-интерфейсом, то Docker-контейнер представляет отличное решение. В этой статье мы рассмотрим, как установить и запустить Docker-контейнер WireGuard с WEB-интерфейсом за одну команду, а также как подключиться к нему с различных устройств.

Исходники

Читать далее
Всего голосов 3: ↑1 и ↓2 -1
Комментарии 4

Security Week 2322: практический пример атаки с использованием домена .zip

Время на прочтение 3 мин
Количество просмотров 1.6K
Блог компании «Лаборатория Касперского» Информационная безопасность *
В середине мая открылась свободная регистрация имен в доменных зонах .ZIP и .MOV. Эти TLD вошли в список из сотен коммерческих доменных зон, обслуживанием которых занимаются частные компании. В данном случае регистратор, обслуживающий эти два TLD, принадлежит Google. От всех остальных доменов верхнего уровня эти два отличаются тем, что соответствующие URL крайне трудно отличить от имен файлов с таким же разрешением. Среди специалистов по безопасности это сразу же вызвало опасения: кликабельные ссылки в мессенджерах и соцсетях, похожие на имена файлов, теоретически должны упростить кибератаки.



Как подобная атака может выглядеть на практике, на прошлой неделе показал исследователь, известный под ником mrd0x. Он зарегистрировал доменное имя mrd0x.zip, на котором детально воспроизвел интерфейс архиватора WinRAR.
Читать дальше →
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 3

Истории

Spring Data JPA: разница между методами findById, getOne, getById и findOne

Время на прочтение 8 мин
Количество просмотров 598
Блог компании OTUS Java *
Перевод

JpaRepository Spring Data предоставляет огромный набор методов, упрощающих реализацию операций над базой данных. С их помощью вы можете сохранять, удалять и считывать объект сущности (entity object). Однако одна из немногих проблем, являющаяся следствием изобилия возможностей, которые дают нам эти интерфейсы, — это выбор правильного метода для вашего конкретного случая. И иногда это совсем не так просто, как могло бы показаться с первого взгляда. Хорошим примером этой проблемы являются методы findById, getOne, getById, и findOne. Судя по их именам, все они делают одно и то же. Так когда и какой из них вы должны использовать?

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

Читать далее
Всего голосов 4: ↑2 и ↓2 0
Комментарии 0

Layout библиотека для iOS проектов

Время на прочтение 2 мин
Количество просмотров 191
Разработка под iOS *Swift *
Recovery mode

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

Читать далее
Всего голосов 2: ↑0 и ↓2 -2
Комментарии 0

Display scaling в Linux. Часть 2 — определение scale factor для X11 приложений

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 573
Ненормальное программирование *Open source *.NET **nix *Разработка под Linux *
Туториал

В первой части были рассмотрены системные настройки масштабирования, предоставляемые встроенными утилитами, и набор возможностей отличается кардинально. Почему? Потому что в Linux нет единого API для работы с масштабированием, каждое окружение конфигурирует по своему и каждый UI-toolkit определяет их по своему, в итоге шанс того, что что-то где-то будет отображаться криво очень велик.

В этой статье мы рассмотрим то, как определить коэффициенты масштабирования для X11 приложения самостоятельно.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 2

Что такое COM объект, как происходит его разработка, какие особенности реализации COM Microsoft?

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 1.2K
Habr Программирование *C++ *Visual Studio *ООП *
Мнение

Что такое COM объект, как происходит его разработка, какие особенности реализации COM Microsoft?

Мне попался на глаза такой вопрос:

Всем добрый день. Хотел бы получить краткие и понятные для новичка ответы на следующие вопросы:

1) Что такое COM объект?

2) Как происходит разработка COM объекта?

3) Какие особенности реализации COM Microsoft?

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

Предлагаю свой развернутый ответ. Интересно получить оценку сообщества профессионалов. Надеюсь и для новичков найдется что-то полезное.

Читать далее
Всего голосов 4: ↑1 и ↓3 -2
Комментарии 5

Обезличенный вызов делегатов в C#

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 997
Программирование *.NET *C# *
Из песочницы

Как говорится: сидел, никого не трогал, программировал на C#, и тут родилась «хитрая» нужда. В рамках одного из своих проектов мне понадобился механизм обезличенного вызова делегатов, который бы позволил организовать их универсальные хранение и вызов. Также, главной целью разработки являлся уход от необходимости вызова методов конкретных экземпляров объектов через рефлексию (рефлексия используется только на этапе инициализации), что в конечном счете сильно увеличило производительность.

Обезличенный вызов делегата - вызов делегата с известным количеством параметров, но с неизвестными типами параметров, где каждый тип параметра представлен базовым классом Object. Пример: Action<string, int> преобразуется в Action<object, object>.

Читать далее
Всего голосов 2: ↑2 и ↓0 +2
Комментарии 3

Игра на опережение: как NGFW-как-сервис поможет в кибервойне

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 778
Блог компании Linx Информационная безопасность *Облачные сервисы *
Обзор

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

Читать далее
Всего голосов 9: ↑7 и ↓2 +5
Комментарии 0

Load2SRE: от нагрузки к доступности, без потери производительности

Время на прочтение 10 мин
Количество просмотров 468
Блог компании Samokat.tech Высокая производительность *Тестирование IT-систем *Тестирование веб-сервисов *Тестирование мобильных приложений *
Роадмэп

Привет! Меня зовут Кирилл Юрков, я SRE Team Lead в Samokat.tech. Уже более десяти лет занимаюсь ускорением и проблемами производительности, а также нагрузочным тестированием. 

Отвечая на вопрос, что делает SRE в Samokat.tech, скажу, что это те, кто занимается инцидентами и проблемами на всём их жизненном цикле, от этапа архитектуры и разработки до postmortem'а после инцидента.

В этом посте я хочу рассказать, как из нагрузочного тестировщика превратиться в SRE-инженера. Поделюсь, как этот путь проходил я сам, с какими сложностями сталкивался и что случалось на каждом этапе. Также раскрою в деталях саму роль SRE-инженера, чем он занимается и чем полезен. Возможно, после этого вы в команде решите, что вам такая роль тоже нужна (если у вас её ещё нет).

Читать далее
Всего голосов 12: ↑12 и ↓0 +12
Комментарии 0

Итоги двадцати лет работы — технический долг и неподдерживаемый код

Время на прочтение 8 мин
Количество просмотров 6.2K
Блог компании RUVDS.com Программирование *Управление разработкой *Карьера в IT-индустрии
Перевод

Технический долг — один из самых популярных сегодня терминов. Люди говорят: «Мы быстро развиваем свой MVP, минимизируя технический долг!» Они говорят о техническом долге, чтобы звучать круто или выделиться.

А я просто смеюсь, ведь всё рано или поздно превращается в технический долг.

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

И если вы не верите, что вся ваша карьера — это технический долг, то, возможно, поймёте это после прочтения статьи. Я расскажу о том, что изменилось за мою двадцатилетнюю карьеру.
Читать дальше →
Всего голосов 36: ↑30 и ↓6 +24
Комментарии 19

ChatGPT во фронтенде: как его использовать и когда он заменит разработчиков

Уровень сложности Простой
Время на прочтение 9 мин
Количество просмотров 1.6K
Разработка веб-сайтов *Программирование *Управление разработкой *Искусственный интеллект
Обзор

Что такое ChatGPT, чем он может помочь фронтенд-разработчику и стоит ли бояться, что нейросеть отнимет у вас работу?

Короткий ответ: искусственный интеллект пока что не может заменить программистов — зато может здорово облегчить им жизнь.

Развёрнутый ответ — в этой статье. Мы последовательно объясним, почему нейросетей не стоит бояться, и на конкретных примерах покажем, как именно вы можете внедрить ChatGPT в свою работу уже сегодня.

Узнать дальше
Всего голосов 5: ↑1 и ↓4 -3
Комментарии 2

Под капотом Госуслуг: про СМЭВ3 от первого лица

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 1.9K
Блог компании РТЛабс Высокая производительность *XML *
Обзор

Привет ИТ-сообщество! Я Анастасия Пятько, аналитик-внедренец из РТЛабс. Это компания, которая развивает всем известные Госуслуги и пытается облегчить нашу бюрократическую жизнь.

Недавно мне довелось выступить на HighLoad++ 2022 с похожей темой: «СМЭВ. Сильно проще, чем кажется. Полезные советы, как стартовать интеграцию через СМЭВ3 и СМЭВ4». Организаторы знают своё дело. В зале была заинтересованная аудитория, которая задавала вопросы с неподдельным интересом. С некоторыми разговор у стенда продолжался ещё несколько часов. Так родилась идея — зафиксировать всё текстом в этой статье.

Читать далее
Всего голосов 16: ↑16 и ↓0 +16
Комментарии 14

Новое в SQL Server 2022: Cardinality Estimation Feedback

Уровень сложности Сложный
Время на прочтение 5 мин
Количество просмотров 231
Microsoft SQL Server *
Туториал
Перевод

Оценка кардинальности «Cardinality estimation» (CE) — это процесс, используемый оптимизатором запросов для оценки количества строк, возвращаемых запросом или частью запроса. Эти оценки основаны на двух базовых вещах: статистике данных и наборе допущений (assumptions), известных как модель. Модель определяет, как мы интерпретируем статистику и данные, поступающие из разных частей выражения, поэтому для любого заданного набора статистических данных разные модели приведут к разным оценкам кардинальности.

До SQL Server 2022 у CE могла быть только одна модель. Набор используемых допущений был встроен в код сервера, поэтому какая бы модель ни была выбрана, она использовалась для всех таких запросов. Однако, мы знаем что не все запросы и рабочие нагрузки работают одинаково хорошо в рамках одной единственной модели. Для некоторых запросов модель будет работать хорошо, а для других лучше подходит другая модель. В SQL Server 2022 появилась возможность адаптировать модель с помощью CE Feedback (оценка кардинальности с обратной связью), приспосабливая план запроса к конкретному запросу.

CE всегда исходила из трех основных допущений, составляющих модель: независимость (или частичная независимость), однородность и контейнирование. Эти три предположения определяют как мы интерпретируем гистограммы, как мы объединяем данные, реализуя соединения, и как поступаем при наличии нескольких предикатов. В этой статье будут рассмотрены подробно возможные варианты моделей и их влияние на запросы.

Читать далее
Рейтинг 0
Комментарии 0

XDR vs SIEM, SOAR. Перемешать, но не взбалтывать

Уровень сложности Средний
Время на прочтение 5 мин
Количество просмотров 354
Блог компании К2Тех Информационная безопасность *Антивирусная защита *IT-инфраструктура *Читальный зал
FAQ

Привет, Хабр! Меня зовут Сергей Куценко, я являюсь экспертом направления информационной безопасности в К2Тех. Рынок решений информационной безопасности динамично развивается. В последнее время все больше на слуху концепции EDR (Endpoint Detection and Response) и XDR (Extended Detection and Response), и, несмотря на то, что в интернете достаточно много материалов по данной теме, нет четкого ответа на вопросы: что это такое, зачем это нужно, в чем отличие от SIEM или SOAR?

В этой статье мы попробуем в этом разобраться.

Читать далее
Всего голосов 6: ↑6 и ↓0 +6
Комментарии 0

Как я использовал Pytest для написания QA-тестов, гарантированно обходящих 2FA

Время на прочтение 10 мин
Количество просмотров 600
Блог компании OTUS Python *Тестирование веб-сервисов *
Перевод

Тестирование страниц входа и согласия может быть довольно сложным: та же самая двухфакторная аутентификация (2FA), которая обеспечивает безопасность ваших клиентов, также затрудняет написание автоматизированных тестов. В этой статье я расскажу, как написал Python-тесты, которые обходят 2FA и при этом не покушаются на  безопасность клиентов. Для этого я использовал Selenium и разработал Slackbot.

Читать далее
Всего голосов 7: ↑5 и ↓2 +3
Комментарии 1

Как IndVarSimplification применяет математику в вашем коде

Уровень сложности Средний
Время на прочтение 3 мин
Количество просмотров 1.1K
Assembler *Rust *
Из песочницы

Многие оптимизации в компиляторе выглядят естественными. Но IndVarSimplification, предмет этой статьи, сильно выделяется среди них. Это та оптимизация, которая сначала кажется темной магией, но за маской на самом деле скрывается математика.

В этой статье я постарался разобраться, как работает IndVarSimplification. Будет немного кода на Rust, чтение ассемблера и копание в коде LLVM.

Читать далее
Всего голосов 17: ↑17 и ↓0 +17
Комментарии 6

Micromouse — а ваша робомышь пройдёт лабиринт?

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 1.7K
Блог компании Cloud4Y Разработка робототехники *Робототехника Научно-популярное
Обзор

Возможно, вы слышали про Micromouse — конкурс для маленьких роботов-мышей, которые должны быстрее всех найти путь в центр лабиринта. Лабиринт не очень большой, его размер 32х32 квадрата (раньше было 16x16) с длиной грани 9 см. Высота стенок каждой ячейки 2,5 см, толщина — 0,6 см.

Если не слышали, Cloud4Y предлагает узнать чуть больше об этом увлекательном (без шуток!) хобби.

Читать далее
Всего голосов 11: ↑11 и ↓0 +11
Комментарии 10

Гипотеза Коллатца, часть 3

Уровень сложности Простой
Время на прочтение 7 мин
Количество просмотров 770
Математика *
Recovery mode

Аннотация

Это третья статья из цикла "Доказательство гипотезы Коллатца".
Первая часть находится здесь.
Вторая часть здесь.

§1. Постановка вопроса

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

В первой части публикации мы выяснили, почему вообще гипотеза Коллатца начинается с единицы. Во второй части мы доказали, что в 3n+1 не существует циклов и повторов. Сейчас же мы покажем, почему сиракузские последовательности не могут уйти в бесконечность и слева, и справа. Бесконечность для них только одна, она начинается с единицы.

Читать далее
Всего голосов 10: ↑2 и ↓8 -6
Комментарии 19