Обновить
0
@Stampread⁠-⁠only

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

Отправить сообщение

Как департамент утилизации CPU превратился в департамент экономии железа, выдерживающий нагрузку в 1 млн RPS

Уровень сложностиПростой
Время на прочтение26 мин
Охват и читатели46K

Привет, меня зовут Мария, когда-то я работала на шахте, потом на заводе, а 3.5 года назад пришла в Ozon Tech. Сейчас я старший Golang-разработчик в команде product-facade. Это самый высоконагруженный сервис маркетплейса, но так было не всегда.

Хотите узнать, что скрывается под витриной маркетплейса? Что держит нагрузку в 1 миллион запросов в секунду? Толстые кэши или нечто большее? Про то, как устроено наше кэширование и как мы к этому пришли, — рассказываю в статье.

Читать далее

Есть ли жизнь на Go после C#?

Время на прочтение13 мин
Охват и читатели46K

Всем привет! На связи Пётр, Go-разработчик в команде Ozon, которая занимается управлением товарами торговой площадки. Всё, что загружают продавцы, обрабатывается нашими сервисами. Девять месяцев назад я сменил основной язык программирования с C# на новый для меня Go. В статье будут впечатления от Go, расскажу о некоторых различиях между языками, а в конце поделюсь своим опытом поиска работы на новом языке. Ведь вопрос смены стека технологий рано или поздно встаёт перед каждым разработчиком.

Читать далее

Дайте крудошлепа

Уровень сложностиСредний
Время на прочтение7 мин
Охват и читатели122K

Я устроился в небольшую компанию, которая сделал круд‑приложуху на 20 таблиц типа «заметки» и активно ее продавала госорганам за невменяемый бабос.

У нас был 3(три) Т‑Р-И статуса юзера. Anonym → Logined → Phone_Confirmed. Молодой талант до меня увидел в этом граф, и написал класс на 200+ строк, реализующий алгоритм Флойда‑Уоршелла, прикрутил стейт‑машину и не найдя интересных задач, c блеском прошел собес в Яндекс и свалил.

Меня наняли сеньором, и я каюсь ничерта не понял, алгоритм прекрасно работал на первой ступени, на второй давал сбои, тоскливо погуглил этот алгоритм, стер все к черту и написал: if(status==Logined & phone!=null){status=Phone_Confirmed}.

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

Это было вступление.

Уважаемый Яндекс, Сбер и прочая! Я умею быстро решать задачи и кратно увеличивать выхлоп простыми решениями. Я самый умный программист, среди всех ваших работников! Я — НадНадсеньор! Сейчас докажу.

Потому что, только я могу решить задачку, которую вы уже 10 лет решить не можете, когда прилетает пуш‑уведомление или смс и в твоем всплывающем окне написано:

«Ваш шестизначный пароль доступа в наше приложение: 123...»

Не согласен! ...

Моделируем 3D-персонажа для игры при помощи Midjourney

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели38K
image

На примере любопытного небольшого прототипа я захотел проверить, сколько труда потребуется при использовании ИИ для создания максимально возможного количества графики 2,5D-игры в жанре point and click.

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

Мне показалось, что лучше всего будет сгенерировать концепты персонажей при помощи ИИ, а затем смоделировать их в 3D.

Я работаю в игровой индустрии уже более двадцати лет, и в основном занимаюсь моделированием персонажей и фонов. Поэтому будет интересно проверить, позволит ли ИИ мне работать быстрее. И насколько?
Читать дальше →

Интеграция с «Госуслугами». Особенности реализации задачи средствами Workflow Core (часть III)

Время на прочтение14 мин
Охват и читатели3.8K
Ранее мы рассмотрели роль СМЭВ в обеспечении работоспособности портала «Госуслуг», а также общие принципы организации взаимодействия с ним на стороне поставщика сведений посредством Workflow Core.

Поскольку задача интеграции решается через посредника (СМЭВ) и, помимо прочего, с использованием движка, опыта работы с которым прежде не было, то наивно будет ожидать, что всё пройдёт гладко. Некоторым сложностям, с которыми мы встретились при решении задачи, посвящена данная статья.
Читать дальше →

Разработчики — никакая не элита, а голые короли индустрии

Время на прочтение5 мин
Охват и читатели166K

ЛОЛШТО?


Пожалуйста, не поймите меня неправильно. Я профессиональный разработчик с 30-летним стажем. Я могу читать и понимать почти двадцать языков, полных по Тюрингу. Я могу писать ясный и выразительный код на доброй дюжине из них. В языках, которые я действительно люблю и использую ежедневно — мое имя можно увидеть на доске почета StackOverflow (топ-20 в мире: ruby, elixir). Я по-настоящему люблю писать код, и я отклоняю все предложения «вырасти» по должностной лестнице, будь то руководство проектами, CTO, или что угодно в этом направлении, несмотря на потенциальное увеличение дохода в разы.


professional beggars were often seen as people not deserving of aid
— Abraham Willemsens (Metropolitan Museum of Art)


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

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

Как китайские стратагемы помогают в работе

Время на прочтение9 мин
Охват и читатели28K
Наша повседневная работа часто похожа на череду противостояний. Мы «воюем» с заказчиками и другими командами, с тестировщиками и коллегами, а отделы внутри компании соперничают друг с другом. Мы боремся за зарплату, принятие удобных технических решений, сроки и тысячи других вещей. В этой череде конфликтов тимлид — это лидер небольшой боевой единицы, команды. Он знает слабые и сильные стороны каждого «рядового», координирует и организует их работу, чтобы достичь целей с минимальными потерями.

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



Алексей Золотых (zolotyh) — тимлид в Infobip. Алексей использует в своей работе правила ведения войны древнего Китая. Из статьи на основе его доклада на Saint TeamLead 2019, вы узнаете, как стратагемы помогают в жизни тимлида: как помириться с разработчиком внутри команды, как завоевать авторитет среди коллег, как отстоять свое мнение, зачем жертвовать сливой, ругать акацию, прикидываться безумным и бить по траве.

Парадокс Эйнштейна — Подольского — Розена на пальцах и… при чём тут эфир

Время на прочтение8 мин
Охват и читатели36K
Парадокс Эйнштейна — Подольского — Розена сейчас активно изучают в многих лабораториях мира и научных институтах. Пишутся тонны научных статей. Поднято много хайпа в около-научных кругах.


Только лишь одна загвоздка, хотя и достаточно парадоксальная. В самой квантовой механике нет ничего парадоксального в парадоксе ЭПР! Ни граммульки!

Так почему же его так пристально изучают?

И да, при чём тут эфир?!
Читать дальше →

Быстрая разработка Web приложения на Vaadin и Spring Boot

Время на прочтение8 мин
Охват и читатели20K

КПДВ


Целью данной статьи является систематизация процесса разработки веб приложения на Vaadin 14 с использованием Spring Boot.


Перед прочтением данной статьи, рекомендую прочитать следующий материал:


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

Кибератаки на гидроакустические системы: мифы и реальность

Время на прочтение11 мин
Охват и читатели9.7K

Приветствую вас, глубокоуважаемые!


«Если в ответ на запрос свой-чужой ответить неправильно, второй запрос придет уже на 533-ей частоте» (С)

«Все это идет как-то мимо вас. Или сквозь вас. А по мне это идет, как паровой каток. Ни одной целой кости не осталось. » (С) А. и Б. Стругацкие, «Град Обреченный»

Вы когда-нибудь задумывались, как бы выглядел под водой, ну, скажем, бокс или спортивная ходьба?

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

5 вещей, которые я бы хотел знать, когда начинал использовать Angular

Время на прочтение14 мин
Охват и читатели43K

Современный Angular — это мощный фреймворк с множеством возможностей, вместе с которыми приходят и сложные, на первый взгляд, концепции и механизмы. Особенно это заметно тем, кто только начал работу как во фронтэнде в принципе, так и с Angular в частности.


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


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

Физика в Unity-проекте на примере мобильного файтинга

Время на прочтение8 мин
Охват и читатели15K

Физика стала неотъемлемой частью любой современной игры. Будь то простая симуляция ткани или полноценная физика движения транспорта. Не являются исключением и мобильные игры. Однако, настраивая физику для них, нужно оглядываться на ограничения, связанные с относительно низкой производительностью поддерживаемых устройств старого поколения. Ведущий технический 3D-художник Banzai.Games Роман Терский рассказал, как его команда интегрировала физику в игровой процесс мобильного файтинга Shadow Fight 3, какие приемы использовала для оптимизации и как переписала “с нуля” физику для персонажей для достижения ее полной детерминированности в синхронном PVP.
Читать дальше →

Архитектурные решения для мобильной игры. Часть 2: Command и их очереди

Время на прочтение23 мин
Охват и читатели8.2K


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

Архитектурные решения для мобильной игры. Часть 1: Model
Архитектурные решения для мобильной игры. Часть 3: View на реактивной тяге
Читать дальше →

7 бесплатных курсов для разработчиков от Microsoft

Время на прочтение5 мин
Охват и читатели84K
Привет, Хабр! Сегодня мы начинаем серию статей, в которую войдет 5 подборок бесплатных обучающих курсов от компании Microsoft. В этой статье у нас самые крутые курсы для разработчиков, которые сильнее всего нравятся программистам.

Кстати!

  • Все курсы бесплатные (вы даже сможете попробовать платные продукты бесплатно);
  • 6/7 на русском языке;
  • Начать обучение можно мгновенно;
  • По окончании вы получите бейдж об успешном прохождении обучения.

Присоединяйтесь, подробности под катом!

Новая серия статей


Следующая серия статей, начало 2020 года


Эта серия статей, 2019 год


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

Worker Service в .NET Core 3: что такое и зачем нужно

Время на прочтение2 мин
Охват и читатели26K
В .NET Core 3 появился новый шаблон проекта под названием Worker Service. Этот шаблон разработан, чтобы дать вам отправную точку для создания кроссплатформенных сервисов. В качестве альтернативного варианта использования: он дает очень хорошую среду для создания консольных приложений, которая идеально подходит для контейнеров и микросервисов.



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

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

Архитектурные решения для мобильной игры. Часть 1: Model

Время на прочтение20 мин
Охват и читатели17K
Эпиграф:
— Как я тебе оценю, если неизвестно что делать?
— Ну там будут экранчики и кнопочки.
— Дима, ты сейчас всю мою жизнь описал в трёх словах!
(с) Реальный диалог на митинге в игровой компании




Набор потребностей и отвечающих им решений, о которых я поговорю в этой статье, сформировался у меня в ходе участия примерно в десятке крупных проектов сначала на Flash, а позже на Unity. Самый крупный из проектов имел больше 200000 DAU и дополнил мою копилку новыми оригинальными вызовами. С другой стороны, подтвердилась уместность и нужность предыдущих находок.

В нашей суровой реальности каждый, кто хоть раз архитектурил крупный проект хотя бы в своих мыслях, имеет свои представления о том, как надо делать, и часто готов отстаивать свои идеи до последней капли крови. У окружающих это вызывает улыбку, а менеджмент часто смотрит на всё на это как на огромный чёрный ящик, который никому углом не упёрся. Но что если я скажу вам, что правильные решения помогут сократить создание нового функционала в 2-3 раза, поиск ошибок в старом в 5-10 раз, и позволят делать многие новые и важные вещи, которые раньше были вообще недоступны? Достаточно лишь впустить архитектуру в сердце своё!
Архитектурные решения для мобильной игры. Часть 2: Command и их очереди
Архитектурные решения для мобильной игры. Часть 3: View на реактивной тяге
Читать дальше →

CI/CD в Playrix: как мы собираем и тестируем наши игры

Время на прочтение11 мин
Охват и читатели13K
Команда должна фокусироваться на создании прекрасных и успешных игр, для всего остального есть CI.

Где мы применяем CI? Какие подходы и концепции используем? Зачем собирать и тестировать билды? Развернутый рассказ о CI и о том, как он устроен в Playrix, потянет на курс лекций. Под катом — краткая выжимка и немного акцентов.

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

Объясняем современный JavaScript динозавру

Время на прочтение15 мин
Охват и читатели271K


Если вы не изучали JavaScript с самого начала, то осваивать его современную версию сложно. Экосистема быстро растёт и меняется, так что трудно разобраться с проблемами, для решения которых придуманы разные инструменты. Я начал программировать в 1998-м, но начал понимать JavaScript только в 2014-м. Помню, как просматривал Browserify и смотрел на его слоган:


Browserify позволяет делать require («модули») в браузере, объединяя все ваши зависимости


Я не понял ни слова из предложения и стал разбираться, как это может помочь мне как разработчику.


Цель статьи — рассказать о контексте, в котором инструменты в JavaScript развивались вплоть до 2017-го. Начнём с самого начала и будем делать сайт, как это делали бы динозавры — безо всяких инструментов, на чистом HTML и JavaScript. Постепенно станем вводить разные инструменты, поочерёдно рассматривая решаемые ими проблемы. Благодаря историческому контексту вы сможете адаптироваться к постоянно меняющемуся ландшафту JavaScript и понять его.

Разработка игры в 115 кб — хаки, баги и досада

Время на прочтение10 мин
Охват и читатели41K

В начале ноября я участвовал в 115-ом по счете конкурсе сообщества Independent Games Developers Contests (IGDC), темой которого была разработка аркадного шутера с лимитом в 115 килобайт за неделю. Под катом история разработки игры на OpenGL + Free Pascal, эксперименты с LZO, обход багов компилятора FPC для uFMOD, простейшая генерация текстур и досадный баг на видеокартах NVidia, который все испортил.

Видео, бинарник для Windows и исходный код также прилагаются — ищите в конце статьи.
Читать дальше →

Опыт написания игры на TypeScript и WebGL или сказ о том, как backend-щик в современный frontend окунулся

Время на прочтение9 мин
Охват и читатели9.6K

Доброго времени суток всем хаброжителям. Хочу рассказать вам о том, как я вернулся в любительский геймдев спустя 3+ года, кардинально сменив инструмент (а попутно — и свое мировоззрение), и что из этого вышло. Под катом вас ожидает:


  1. Краткая диспозиция всех фактов в начале пути. Как картинка «ДО» в дешёвой интернет-рекламе «ДО» и «ПОСЛЕ».
  2. Добровольный нырок в современный frontend в стиле «Где деньги, Лебовски?!»
  3. Легкий зуд в интимной точке, переходящий в жгучее желание изучить что-то новое, сделав что-нибудь старое.
  4. Осознание собственной беспомощности
  5. Преодоление
  6. Приятное окончание, ну совсем как в этих ваших фильмах.
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Россия
Дата рождения
Зарегистрирован
Активность