Pull to refresh
1
0

Пользователь

Send message

Студенческие стартапы. Чего не хватает молодым?

Reading time4 min
Views3.5K

Мы часто слышим в последние годы, что дорогу молодым, пусть учатся делать стартапы с учебной скамьи. Отсюда новомодное «стартап как диплом» в ВУЗах. А в этом году ФСИ даже специализированный грант под это дело сформировал. И в этом посыле есть зерно истины, потому что у молодых студенческих стартапов есть те ошибки, которые им никак не помогут с текущим проектом, но набьют шишки для будущих успехов. Либо они ничему не научатся, потому что ещё не умеют слушать, кто знает.

Чего не хватает-то?

Обзор уязвимости CVE-2022-42889: выполнение произвольного кода в Apache Commons Text (Text4Shell)

Reading time2 min
Views3.4K

Прежде всего, давайте проясним, что это НЕ новая уязвимость Log4Shell или Spring4Shell.

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

Как и в случае с Log4j, суть проблемы заключается в том, что вы можете выполнить поиск, который затем может быть использован не по назначению.

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

На самом деле эта проблема очень похожа на CVE-2022-33980, о которой мы писали в начале этого года.

Читать далее

Как НЕ надо строить надежные системы

Reading time12 min
Views21K


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

IT для неайтишников: Технический долг или почему теперь всё так долго?

Reading time15 min
Views24K

Срыв сроков и выход за оценки в IT — большая и многогранная тема. На что-то бизнес-заказчик может повлиять напрямую, на что-то лишь косвенно. При работе с IT очень желательно понимать и знать такие понятия, как технический долг и «технический дефолт» (имеет иное значение, нежели в экономике). Что это такое, какие последствия имеет и как с эти бороться сейчас разберём.

Читать далее

Игровой real-time сервер простыми словами: теория, архитектура на Python, оптимизация, автомасштабирование в AWS

Reading time20 min
Views26K

Разработка сервера для real-time онлайн игры - дело неочевидное, но очень интересное. В данной статье я постараюсь провести вас от банальной теории и базовых вещей до динамического автомасштабирования игрового сервера в облаке.

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

Перейти к материалу

Как упростить жизнь за 312 коротких шагов: проектируем GraphQL API в микросервисной архитектуре

Level of difficultyEasy
Reading time9 min
Views13K

Звук – HiFi-сервис с большой командой инженеров. Мы используем передовые технологии и современный стек, и экспериментируем, чтобы решать сложные, нестандартные задачи. Одна из технологий  – GraphQL.

Эта статья изначально создавалась как гайд по работе с GraphQL для инженеров Звука (системные аналитики, разработчики, QA). При этом статья может быть полезна всем, кто никогда не работал с GraphQL, но очень хочет понять, зачем он может быть нужен, и как поможет решить задачу вашего бизнеса.

Читать далее

SRE: как его понимают бизнес и разработчики

Reading time6 min
Views2.8K

В сентябре Антон Скобин, коммерческий директор Слёрма, записал два выпуска подкаста «Манул Слёрма» с Олегом Блохиным, лидером инфраструктурной команды Dodo Engineering. Поговорили о том, как выстраивается работа SRE-команд, какие функции они выполняют и в чём профит от SRE для бизнеса. В этой статье поделимся главными мыслями этой беседы.

Читать далее

Эволюция управления доступом объяснена с помощью Python

Reading time14 min
Views6.1K

ОС CTSS (Compatible Time-Sharing System) Массачусетского технологического института была разработана в 1961 году для обеспечения независимого доступа нескольких пользователей к большому компьютеру. Вскоре разработчики обнаружили, что существует огромная потребность в предоставлении друг другу общего доступа к программам и данным. Это способствовало возникновению первых разговоров о компьютерной безопасности и привело к тому, что защита стала основной целью разработки ОС Multics. Спустя годы после выпуска Multics, Зальтцер (Saltzer) и Шредер (Schroeder) опубликовали книгу "Защита информации в компьютерных системах", в которой были учтены уроки, полученные при ее разработке и реальном использовании. Их работа является одной из самых цитируемых в истории работ по безопасности и первой, где были использованы многие термины, которые мы употребляем сегодня, включая понятие "Наименьшая привилегия".

Читать далее

Система типов — лучший друг программиста

Reading time8 min
Views32K

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

Значение в string не лучший тип для записи адреса электронной почты или страны проживания пользователя. Эти значения заслуживают гораздо более богатых и специализированных типов. Мне нужно, чтобы существовал тип данных EmailAddress, который не может быть null. Мне нужна единая точка входа для создания нового объекта этого типа. Он должен валидироваться и нормализироваться перед возвратом нового значения. Мне нужно, чтобы этот тип данных имел полезные методы наподобие .Domain() или .NonAliasValue(), которые бы возвращали для введённого foo+bar@gmail.com значения gmail.com и foo@gmail.com. Эта полезная функциональность должна быть встроена в эти типы. Это обеспечивает безопасность, помогает предотвращать баги и существенно повышает удобство поддержки.
Читать дальше →

Самый полный стартовый гайд по ботам Telegram (python)

Reading time5 min
Views332K

QQ Хабр! В этом гайде мы пройдемся по каждому шагу создания ботов в Telegram - от регистрации бота до публикации репозитория на GitHub. Некоторым может показаться, что все разжевано и слишком много элементарной информации, но этот гайд создан для новичков, хотя будет интересен и для тех, кто уже занимался разработкой в Telegram. Сегодня мы будем делать бота, который отвечает на заданные вопросы.

Читать далее

Что такое клиринг, как он работает и реализован на примере платёжной системы «Мир»

Reading time9 min
Views29K

Покупки с помощью карты стали неотъемлемым атрибутом современной жизни. В прошлом году жители нашей страны совершили более 21 миллиарда операций банковскими картами. На примере работы клиринговой системы ПС «Мир» рассмотрим, что делается, чтобы справляться с регулярно возрастающей нагрузкой. В частности, разберём, какие используются технологии и архитектурные решения.

Меня зовут Наталья Азисова, я product owner клиринговой системы в ПС «Мир». Каждое утро вторника я думаю о том, какой суперсрочной задачей нагрузить разработку, а к вечеру — как отложить её на пару месяцев. Спасает меня от праведного гнева разработки только то, что делаю я это со стилем.

Итак, что такое клиринг, как он работает и реализован на примере платежной системы «Мир» - читайте под катом.

Читать далее

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

Reading time7 min
Views5K

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

Что тут интересного, скажите вы? Любой IT manager, будь то Team Lead, или CTO, в течении своей карьеры встречался с подобного рода задачами и создавал продукт и команду с нуля. 

Но это был отнюдь не ноль. В момент моего прихода уже была устоявшаяся Enterprise архитектура, какая-никакая инфра, “почти” готовые мобильные приложения под Android и iOS, остатки былой команды и сорванные сроки. Оказалось, что “Next Gen” приложение уже разрабатывается не в первый раз, были попытки и до этого, и они все провалились. Многие инженеры и менеджеры, которые с самого начала участвовали в проекте, уже давно покинули его. 

И тогда пришло осознание, что это будет одним из самых сложных и захватывающих проектов за мою (на тот момент 7-летнюю) карьеру работы лидом мобильной разработки…

Читать далее

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

Reading time6 min
Views4.7K

Почему у одних получается, а у других нет? — вопрос, который волнует многих. Мы решили пообщаться с инвесторами и предпринимателями из сферы IT, чтобы разобраться, как одним стартапам удаётся выйти к «единице» и создать успешный проект, а результаты работы других равны «нулю».

В нашей сегодняшней статье Илья Струков — DevOps-инженер, Development & System architect и технический директор (CTO) в Arhead/US, поделится своим опытом работы в ИТ, расскажет о проблемах начинающих айтишников и о том, как боролся со своим главным недостатком.

Читать далее

WebSocket ориентированое Api на Nest.js

Reading time3 min
Views13K

В этой статье я расскажу как создал модуль под Nest.js позволяющий писать классическое RESTFull API со swagger'ом но клиент будет полностью на WebSocket'ах, звучит странно не так ли? Но зато очень быстро и удобно по итогу)

Идея состоит в том, что вы пишите классическое документированное апи, со всеми типами и плюшками.

Читать далее

Что делать, если твой временной ряд растёт вширь

Reading time10 min
Views8.6K

Привет, Хабр! Есть мнение, что прогнозирование временных рядов - сложная задача. Но не будем расстраиваться, ведь есть и плюсы - существует ещё большое количество задач, когда рядов сразу несколько, и такие задачи ещё сложнее! Когда начинаем сравнивать, понимаем, что прогнозировать одномерные временные ряды не так уж и сложно. А вот что делать с ситуацией, когда временной ряд обрастает параллельно идущими с ним последовательностями других параметров (многомерный ряд), какие методы и алгоритмы использовать, и что делать, если задача прогнозировать такие ряды есть, а опыта не очень много (спойлер - используйте AutoML, а пока он работает восполните пробел прочитав пару статей по теме), разбираем под катом.

Что такое временной ряд 

Если начинать совсем издалека, то это последовательность значений, упорядоченная по времени. Во временных рядах есть закономерность: текущие значения ряда связаны с предыдущими. Если такого свойства у ряда нет, то поздравляем (или не поздравляем), вы имеете дело с процессом, который прогнозировать классическими (и не очень) моделями не выйдет, в таком случае стоит смотреть в сторону Марковских процессов.

Простенькая картинка ниже иллюстрирует описанное выше свойство, - этого бэкграунда для продолжения чтения поста достаточно (Рисунок 1).

Ну и что же делать

О чём расскажут на HolyJS 2022 Autumn

Reading time9 min
Views2.5K

Как получить от ESLint максимум пользы? Что можно впихнуть в библиотеку на два килобайта? Как выжать больше производительности, когда очевидные оптимизации уже сделаны? Почему слоны умные и параноидальные? Всё это будет в программе HolyJS (да-да, про слонов тоже). Собрали описания всех докладов в этом хабрапосте и разделили на тематические блоки.

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

Читать далее

Как мы в Fix Price внедряли систему Keycloak

Reading time16 min
Views14K

Привет, Хабр! Сегодня расскажу о том, как мы в Fix Price закрыли проблему организации единой авторизации и аутентификации для наших сервисов с помощью Keycloak. Хотелось бы, чтобы эта статья оказалась полезной для всех, кто планирует внедрять это решение.

Начнем с общих моментов, а если хотите сразу перейти к коду, примеры вы найдете ниже. Их у нас целых 4, и все расписаны очень подробно. Поехали!

Читать далее

Kafka как интеграционная платформа: от источников данных к потребителям и в хранилище (часть 2)

Reading time9 min
Views7.4K

Привет! Продолжаю рассказ про интеграционную платформу на базе Apache Kafka и про то, как мы постарались гармонично вписать ее в непростую ИТ инфраструктуру группы НЛМК.

Напомню, что в первой части статьи были описаны соглашения об именовании топиков, подход к реализации ролевой модели и соглашение по базовой схеме данных. Здесь расскажу, как сделали универсальное охлаждение для всех данных из Kafka в корпоративное хранилище на базе Hadoop, про сервис доставки сообщений в ИС и про разработанные сервисы, доступные на нашем Self-Service портале.

Читать далее

PostgreSQL Antipatterns: куда крутить NULLS

Reading time2 min
Views6.9K

Периодически приходится разбирать случаи внезапного промаха запроса мимо "вроде бы подходящего" индекса - а все дело оказывается в чуть-чуть не той сортировке.

Читать далее

Гексагональная архитектура и DDD на опыте интернет-магазина Спортмастер. Часть 1

Reading time9 min
Views17K

Всем привет! Меня зовут Денис Ежов, я тимлид команды интернет-магазина Спортмастер (далее ИМСМ) и по совместительству бэкенд-разработчик. Так сложилось (и так говорят), что гексагональная структура и DDD — это дорого и сложно. Но так ли это на самом деле? Мы в ИМСМ внедрили гексагональную архитектуру и DDD именно в том количестве, в котором эти подходы решали наши проблемы. Про то, какие у нас были проблемы и как мы их решали, я расскажу в этом посте. Под катом — про назначение бэкенда ИМСМ, история развития бэкенда ИМСМ и его проблемы. А ещё посмотрим, как мы в новой архитектуре постарались решить проблемы бэкенда, покажем примеры кода, а также то, как код ложится на архитектуру. 

Читать далее

Information

Rating
Does not participate
Location
Израиль
Date of birth
Registered
Activity