Search
Write a publication
Pull to refresh
18
0
Журат Максим @ChessMax

User

Send message

Разбираем алгоритмы компьютерной графики. Часть 1 — «Starfield Simulation»

Reading time7 min
Views18K

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

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

В качестве основы для вывода графики будет использован язык Python и библиотека PyGame. Этим набором можно очень просто что-то выдать на экран, сделать анимацию и т.п. не отвлекаясь на технические детали реализации.

Читать далее

Как обрабатывать необработанные исключения в ASP.NET Core Web API

Reading time6 min
Views12K

Привет! Я Антон Антонов, Full Stack Developer. Расскажу, как обрабатываю необработанные исключения в ASP.NET Core Web API, и дам примеры обработчиков ошибок, которые отвечают наиболее распространенным требованиям.

Читать далее

Какие вопросы задать работодателю на собеседовании?

Reading time3 min
Views286K

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

Я составил 50 самых важных вопросов будущему работодателю, которые ты обязан задать на собеседовании.

Читать далее

Калькулятор на типах TypeScript

Reading time6 min
Views15K

В последнее время TS стал де-факто стандартом во фронтенд-разработке. Его достаточно просто начать использовать, и он приносит неоценимую пользу в любых web-приложениях. Но используя его, мы часто даже не задумываемся, насколько на самом деле это мощный инструмент. В большинстве ситуаций нам хватает базовых возможностей TS-а. Но иногда нам случается определить узкий и нестандартный тип. В этом случае можно либо ослабить типы с помощью any или unknown, либо попробовать решить непростую порой головоломку. В этой статье мы решим несколько интересных головоломок с типами.

Читать далее

Где искать работу в IT?

Reading time5 min
Views265K

Ты решил «Войти в Айти» или уже работаешь в IT и хочешь найти место получше. Где же найти работу и не потратить на это несколько месяцев?

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

Читать далее

О квадратных уравнениях в правильном порядке

Reading time4 min
Views48K

Как вам преподавали квадратные уравнения в школе? Это был 7-8 класс, примерно. Вероятнее всего, вам рассказали что есть формулы корней через дискриминант, что направление ветвей зависит от старшего коэффициента. Через пару занятий дали теорему Виета. Счастливчикам еще рассказали про метод переброски. И на этом решили отпустить.

Читать далее

Абстрактная алгебра в действии

Reading time6 min
Views28K

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

Читать далее

Как правильно верстать в 2022 году. Часть 1

Reading time11 min
Views95K

Меня зовут Николай, я Frontend-разработчик IT-компании Relog. Хочу рассказать о самых распространённых ошибках в вёрстке современных проектов.

Дело в том, что лишь малая часть современных фронтендеров обращает внимание на работу с HTML и CSS, предпочитая готовые решения, вроде UI-библиотек и систем сеток. Но эти решения неидеальные и приходится дописывать обёртки вокруг них, видоизменять код, переписывать стили и совершать прочие действия для соответствия требованиям проекта. Тут-то и начинаются проблемы: вёрстка местами становится избыточной, стили переназначются через important и с каждым релизом проект всё сложней поддерживать. Я уже не говорю об удобстве использования и доступности. Об этом думают вообще в последнюю очередь.

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

Читать далее

Пишем свой плагин для IDEA для поддержки нового языка (часть 1)

Reading time13 min
Views8.4K

В статье рассмотрено как создается языковой плагин для IDEA на примере учебного языка Monkey. Приведены примеры из других плагинов. Пишем на Java и Kotlin.

Читать далее

Пишем свой плагин для IDEA для поддержки нового языка (часть 2)

Reading time12 min
Views4.1K

Продолжение статьи о создании языкового плагина для IDEA на примере учебного языка Monkey. Приведены примеры из других плагинов. Пишем на Java и Kotlin. Начало

Читать далее

О Thread и ThreadPool в .NET подробно (часть 1)

Reading time15 min
Views46K

Эта текст покрывает ответы на некоторые совсем базовые вопросы и вместе с тем сразу погружает в проблематику получения ответа на вопрос: "как работать лучше? однопоточно, многопоточно или многопоточно, но на ThreadPool?". Ответ на этот вопрос может изначально показаться очень простым и понятным, однако реальность совершенно иная: всё как и везде сильно зависит от ситуации: от типа задачи, от её размера, от прочих условий, которые так просто в голову сами собой не придут.

А потому мы пройдёмся в первую очередь по IO-/CPU-bound операциям, стоимости создания потока, базовым основам работы пула потоков (но только основы), а далее -- углубимся в анализ чёрного ящика: от чего зависит производительность пула потоков? Каков объём работы приемлим для того чтобы в него планировать?

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

Также отмечу, что материал постепенно переходит от начального уровня сложности ? через ⚠️ средний уровень к ☠️ высокому, о чём вы сможете узнать по пиктограммам.

Погрузиться в знания

Трёхмерная графика с нуля. Часть 2: растеризация

Reading time47 min
Views58K
image


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

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

Тогда как это удаётся играм?

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

И снова кастомные клавиатуры: обзор Dactyl Manuform из первых рук

Reading time6 min
Views19K

Привет, Хабр! Так получилось, что я становлюсь адептом кастомных клавиатур. Сначала к моему коллеге попала Lily58 Pro, вот ее подробный обзор. Ну а теперь ко мне — Dactyl Manuform, еще более необычная клавиатура, чем те, что обозревались в нашем бологе ранее. Обзор и возможности (а их просто огромное количество) — под катом.
Читать дальше →

Доказательная медицина в оториноларингологии за последние 10 лет (мифы и что вы не знали про это)

Reading time13 min
Views47K

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

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

Для примера, если при гайморите предлагают схему «рентген — пункция — антибиотики», то поздравляю, вы в надёжных руках врача образца мышления 2010 года. В 2020-х уже гораздо чаще назначается домашнее промывание (не «кукушка»), безрецептурные анальгетики и интраназальные глюкокортикоиды.

Всего за 10 лет поменялись и технологии, и подход. Вот примеры изменений:

  1. Больше нет операций вслепую. Аденоиды удаляют с помощью эндоскопа: так нет риска повредить трубные валики, создать грубые рубцы или оставить часть лимфоидной ткани. Под контролем камеры проводят также септопластику.
  2. Септопластика избавилась от большей части ада после операции: например, марлевые тампоны, которыми фаршировали пациента через нос, заменены на адекватные силиконовые трубки, которые дают возможность дышать и спокойно их доставать из носа.
  3. Сильно изменились показания к антибиотикам.
  4. Ларингит не лечат ингаляциями минералки и «пшикалками». Потому что доказано, они ни разу не помогают. Но зато могут спровоцировать удушье. Современный рецепт — голосовой покой и много воды.
  5. Отит — это не кабинет физиотерапии и синяя лампа над ухом, а капли и таблетки по рецепту. Уже доказано, УФ-лучи не проникают вглубь барабанной перепонки и не локализуют воспаление.
  6. Классический рентген по любому поводу тоже ушёл в прошлое, на практике используется КТ, в частности позволяющее видеть воспаления в клиновидных пазухах.

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

Skyrim на Unity

Reading time6 min
Views28K

Статья о моих приключениях при разработке первой игры в 3D. Да, вы правильно поняли, я замахнулась на святое, и попробовала сделать Skyrim на Unity. Но делала это с любовью и от чистого сердца.

Читать далее

ИТ-книга от идеи до выпуска. Часть 0: как начать и не бросить

Reading time8 min
Views6.5K

В конце прошлого года я выпустила свою первую книгу по тестированию — «Курс молодого бойца». Это было нелегко и долго =) 

Книгу я писала… 3 года! Потом ещё год искала художников и доделывала картинки. Потом искала издательства, проходила редактуру и т.д. Итого — 4.5 года:

07.09.2017 — 11.01.2022 (дата выхода книги на площадках типа OZON)

Я хочу поделиться своим опытом, рассказать про весь процесс. Что вообще предстоит автору, какие фазы нужно пройти от идеи до публикации. Может быть, мой опыт поможет вам тоже решиться на такую авантюру =)

Свой рассказ я решила разделить на цикл статей:

Часть 0. Как начать и не бросить

Часть 1. Работа с фриланс-художниками

Часть 2. Поиск издательства

Часть 3. Процесс производства

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

Читать далее

Как грамотно работать с Ad Networks на примере Unity Ads

Reading time9 min
Views12K

Занимаясь продвижением мобильных приложений, однажды вы сталкиваетесь с необходимостью закупать трафик в рекламных сетях. Одна из самых популярных рекламных сетей с качественным трафиком — Unity Ads. Издатели используют Unity Ads для извлечения прибыли из своей мобильной игры. Рекламодатели используют Unity Ads для привлечения ценных пользователей.

Меня зовут Никита Скрябин, я CMO агентства мобильного перформанс-маркетинга. Я расскажу о том, как закупать трафик в Unity Ads наиболее эффективно и проанализирую поэтапно формулы.

Читать далее

Извлечение максимальной пользы из Git

Reading time7 min
Views15K
image

Сегодня ни один проект не обходится без контроля версий с помощью Git под колпаком. Хорошее знание Git поможет вам улучшить свои навыки разработчика, ускорить рабочий процесс и действительно улучшить качество вашей кодовой базы. Однако для этого необходимо немного выйти за пределы привычной нам зоны комфорта. Оказывается, в Git есть нечто большее, чем просто commit, push и pull.

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

В этой статье мы рассмотрим четыре продвинутых инструмента Git и, надеюсь, пробудим в вас желание узнать о Git ещё больше.
Читать дальше →

Игра мечты, которую я делаю вместе с женой (Часть 1)

Reading time7 min
Views11K

Всем привет, я инди-разработчик, в предыдущей статье просили больше технических подробностей и подводных камей из процесса разработки игры, поэтому в этой статье я охвачу несколько основных "вещей" с которыми я столкнулся и для которых были написаны инструменты на MonoBehaviour. Надеюсь вам понравится :)

Читать далее

Rustenstein 3D: программируем, как будто сейчас 1992 год

Reading time11 min
Views11K
image

Дважды в год компания NextRoll организует мероприятие Hack Week, на котором сотрудники на неделю берутся за проект по своему выбору. Это превосходная возможность для экспериментов, изучения новых технологий и объединения с людьми из всех отделов компании. Узнать о Hack Week подробнее можно здесь.

Так как NextRoll всё активнее использует язык программирования Rust, на Hack Week инженеры обычно пытаются получить опыт работы с ним. Ещё одним популярным вариантом выбора является работа над видеоиграми, и, как вы уже могли догадаться, мы часто видим в проектах сочетание видеоигр и языка Rust.

В прошлом году группа сотрудников работала над развитием моей игры rpg-cli. На этот раз захотелось пойти дальше и взять проект, который показывает некоторые из сильных сторон Rust: низкоуровневым программированием, высоконагруженными вычислениями и операционной совместимостью данных с языком C. Поэтому мы решили портировать на Rust классическую игру Wolfenstein 3D.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Date of birth
Registered
Activity

Specialization

Mobile Application Developer
Senior
Flutter
Flutter Bloc
MobX
Mobile
Development of mobile applications