Pull to refresh
11
0.7
Вячеслав Смитюх @Viacheslav01

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

Send message

Kotlin под капотом: как избавиться от рекурсии

Level of difficulty Medium
Reading time 9 min
Views 5.2K

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

Читать далее
Total votes 12: ↑12 and ↓0 +12
Comments 16

Докручиваем графу «Опыт» в резюме

Level of difficulty Easy
Reading time 4 min
Views 13K

На примерах разберем как буквально небольшими изменениями повысить читаемость (и привлекательность) резюме. Без лишних слов сразу к делу.

Читать далее
Total votes 14: ↑12 and ↓2 +10
Comments 9

«Галоп пикселя — часть шестая» — Анимация персонажей. Бег

Level of difficulty Medium
Reading time 48 min
Views 8.5K


«Галоп пикселя», часть I — базовые понятия, этапы взросления, прикладные упражнения (линк)
«Галоп пикселя», часть II — перспектива, цвет, анатомия и прикладные упражнения (линк)
«Галоп пикселя», часть III — Анимация (линк)
«Галоп пикселя», часть IV — Анимация света и тени (линк)
«Галоп пикселя», часть V — Анимация персонажей. Ходьба (линк)
«Галоп пикселя», часть VI — Анимация персонажей. Бег (линк)

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

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

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


Лопатить пиксели
Total votes 92: ↑92 and ↓0 +92
Comments 35

5 типичных проблем в контексте, которые мы видим у 90% клиентов

Level of difficulty Easy
Reading time 11 min
Views 1.6K

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

Читать далее
Total votes 10: ↑6 and ↓4 +2
Comments 2

Как вести бизнес в США, не сжигая российский паспорт

Level of difficulty Easy
Reading time 5 min
Views 10K

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

На самом деле россияне могут открывать в США компании и банковские счета, торговать, предоставлять платные услуги и сервисы, разгонять стартапы и в целом пользоваться теми же правами, что и весь остальной мир. И всё это вполне легально, без подставных лиц и многоуровневых махинаций.

Но есть нюанс.

Читать далее
Total votes 42: ↑26 and ↓16 +10
Comments 47

Реклама в интернете в 2023 году для предпринимателей и начинающих маркетологов

Level of difficulty Easy
Reading time 15 min
Views 3.5K

Я уже писал аналогичную статью в феврале 2020 года на другой платформе, решил, что пора обновить рекомендации.

Кто я такой, чтобы давать советы Habr?

Я Цымбалюк Андрей, руководитель направления цифровой маркетинг в промышленной компании.

У меня опыт в более 40 направлениях бизнеса и опыт управления маркетинговым бюджетом 150 млн рублей в год. Также, у меня небольшое маркетинговое агентство, в котором продвигаю 3 медицинских клиники на текущий момент.

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

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

Читать далее
Total votes 8: ↑6 and ↓2 +4
Comments 1

Осознанная оптимизация Compose

Level of difficulty Medium
Reading time 29 min
Views 31K

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

Наша команда Ozon Seller также столкнулась с этой проблемой. Мы решили собрать воедино все советы и наработки по написанию оптимизированного Compose-кода. Активное применение этих советов при оптимизации существующих экранов и написании новых существенно улучшило наши метрики: длительность лага по отношению к длительности скролла (hitch rate; чем меньше, тем лучше) экранов со списками упала в среднем с 15-19 % до 5-7 % (на 90-м перцентиле). Все эти советы и наработки мы описали в этой статье. Она будет полезна и начинающим, и опытным разработчикам, в ней подробно описаны оптимизации и механизмы Compose, а также рассказано про слабо задокументированных особенности и исправления ошибок, которые есть в других статьях. Давайте же начнём.

Читать далее
Total votes 37: ↑37 and ↓0 +37
Comments 15

Мы способны сами снизить свой биологический возраст — исследование

Reading time 6 min
Views 31K


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


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

Читать дальше →
Total votes 74: ↑51 and ↓23 +28
Comments 92

Алгоритмы балансировки нагрузок

Level of difficulty Medium
Reading time 8 min
Views 30K

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

В этом посте мы рассмотрим способы, которыми один балансировщик нагрузок может распределять HTTP-запросы на множество серверов. Мы начнём снизу и проделаем весь путь вверх до современных алгоритмов балансировки нагрузок.
Читать дальше →
Total votes 107: ↑106 and ↓1 +105
Comments 16

Как не потерять школу в релокации

Reading time 5 min
Views 6.4K

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

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

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

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

Как забрать документы из школы в России

Начнем с самого простого, но неизбежно парализующего – как вообще забрать ребенка из очной российской школы? Очень просто.

Согласно приказу Минобрнауки РФ N 177 (http://ivo.garant.ru/#/document/70653798/paragraph/1:0) родители в любой момент могут забрать документы из школы. Для этого пишется заявление на имя директора (подробнее вам расскажут в администрации конкретно вашей школы). В качестве причины можно указать переезд в другой город, другую страну на постоянное место жительства, длительную командировку родителей. Иногда администрация школы вдруг просит подтверждающий документ из той школы, где на новом месте будет обучаться ребенок – однако по закону (ссылайтесь на пункт 6) при переезде в другой город вы не обязаны предоставлять никаких документов. Такая бумага требуется, только если вы переводитесь из одной московской школы в другую, и в таком случае все оформляется через портал мос.ру.

Читать далее
Total votes 13: ↑8 and ↓5 +3
Comments 6

Шейдеры 3D-игр для начинающих

Reading time 19 min
Views 24K
image

Хотите научиться добавлять в свою 3D-игру текстуры, освещение, тени, карты нормалей, светящиеся объекты, ambient occlusion и другие эффекты? Отлично! В этой статье представлен набор техник затенения, способных поднять уровень графики вашей игры на новые высоты. Я объясняю каждую технику таким образом, чтобы вы могли применить/портировать эту информацию в любом стеке инструментов, будь то Godot, Unity или что-то иное.

В качестве «клея» между шейдерами я решил использовать великолепный игровой движок Panda3D и OpenGL Shading Language (GLSL). Если вы пользуетесь таким же стеком, то получите дополнительное преимущество — узнаете, как использовать техники затенения конкретно в Panda3D и OpenGL.
Читать дальше →
Total votes 46: ↑46 and ↓0 +46
Comments 6

Что такое мат.анализ и с чем его едят?

Reading time 5 min
Views 22K

Давайте знакомиться: я Меликян Маргарита, кандидат физико-математических наук, уже 4й год работаю на мехмате МГУ и кафедре высшей математики МФТИ, а также несколько лет как преподаю в ШАД Helper. Преподаю я как разнообразные курсы из блока анализа, так и вероятностного блока, и сегодня я хочу немного поговорить о том, каково это – осваивать математический анализ и каких ошибок следует избегать, какие лайфхаки применить.

Первая препона, с которой сталкивается человек в самом начале освоения новой дисциплины, даже если он это делает “под присмотром” преподавателя – это литература. На что нужно обращать внимание и ориентироваться при выборе?

Читать далее
Total votes 42: ↑40 and ↓2 +38
Comments 87

Дюк, вынеси мусор! — 1. Введение

Reading time 13 min
Views 209K


Наверняка вы уже читали не один обзор механизмов сборки мусора в Java и настройка таких опций, как Xmx и Xms, превратилась для вас в обычную рутину. Но действительно ли вы в деталях понимаете, что происходит под капотом вашей виртуальной машины в тот момент, когда приходит время избавиться от ненужных объектов в памяти и ваш идеально оптимизированный метод начинает выполняться в несколько раз дольше положенного? И знаете ли вы, какие возможности предоставляют вам последние версии Java для оптимизации ответственной работы по сборке мусора, зачастую сильно влияющей на производительность вашего приложения?

Попробуем в нескольких статьях пройти путь от описания базовых идей, лежащих в основе всех сборщиков мусора, до разбора алгоритмов работы и возможностей тонкой настройки различных сборщиков Java HotSpot VM (вы ведь знаете, что таких сборщиков четыре?). И самое главное, рассмотрим, каким образом эти знания можно использовать на практике.
Узнать
Total votes 36: ↑36 and ↓0 +36
Comments 7

Как жить с программистом?

Reading time 6 min
Views 21K

Всем привет! Меня зовут Сергей и я практикующий психолог.

Дисклеймер: В силу подхода к работе так сложилось, что обычно я консультирую людей интеллектуального труда. В последний год это преимущественно управленцы и сотрудники IT-сферы. Это люди, которые всю жизнь решали любые проблемы "через голову". Такой подход неизбежно накладывает отпечаток на личность и внепрофессиональную жизнь. Минимизацией негативных последствий таких особенностей я занимаюсь. И в рамках статей на данном ресурсе занимаюсь обобщением своего профессионального опыта и дать полезную информацию.

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

Узнать про отношения
Total votes 36: ↑18 and ↓18 0
Comments 80

Погружаемся в Compose-Verse — руководство по Jetpack Compose для начинающих: управление состоянием

Reading time 13 min
Views 9.2K

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

Читать далее
Total votes 8: ↑7 and ↓1 +6
Comments 1

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

Reading time 4 min
Views 44K

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

Читать далее
Total votes 103: ↑99 and ↓4 +95
Comments 88

Трёхмерная графика с нуля. Часть 1: трассировка лучей

Reading time 42 min
Views 129K
image


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

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

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


Читать дальше →
Total votes 90: ↑90 and ↓0 +90
Comments 53

Онтол: Мышление Джефа Безоса

Reading time 6 min
Views 23K
image


«Пусть у моих детей будет поменьше пальцев на руках, зато они не вырастут слабаками».
— Джеф Безос


Джеф Безос летом 2021 года слетал в космос. Я решил разобраться, как устроено мышление человека, который совершил прорыв в построении триллионной компании и построил свой космический корабль (и часы на 10 000 лет).

На радостях за 20 часов сделал подборку всех статей и интервью Безоса на русском, но так и не опубликовал их. Сейчас стартовала инициатива по полному переводу «писем Безоса», и думаю, что сейчас будет кстати, опубликовать мои находки. Кто хочет помочь с переводом, пишите Юрию.

«Если вы делаете что-то интересное в мире, то будьте готовы к критике. Если вы не в состоянии выдержать критику, то не делайте ничего нового или интересного».
«Если вы думаете, что [Fire Phone] — это был мой самый большой провал, спешу вас уверить, мы сейчас работаем над гораздо большими провалами — и я не шучу. Некоторые из них заставят Fire Phone выглядеть мелкой букашкой».

Читать дальше →
Total votes 48: ↑19 and ↓29 -10
Comments 34

LJV: Чему нас может научить визуализация структур данных в Java

Reading time 26 min
Views 28K

Эта статья является пересказом моего доклада на Java-конференции SnowOne 2021 года. LJV — проект, созданный в 2004 году как инструмент для преподавания языка Java студентам. Он позволяет визуализировать внутреннее устройство структур данных. В этом докладе я запускаю LJV на разных структурах (от String до ConcurrentSkipListMap) в разных версиях Java и разбираю, что там внутри, как оно менялось от версии к версии, и как это всё работает.


image

Читать дальше →
Total votes 85: ↑85 and ↓0 +85
Comments 11

Паять просто (комикс)

Reading time 1 min
Views 64K
Буквально неделю назад ребята из MightyOhm выпустили 8ми страничный комикс об азах пайки. Он понравился мне тем, что не смотря на свой формат и объём, в мелких деталях объясняет основные принципы этого процесса, которые совсем не очевидны для людей ни разу не державших в руках паяльник (как показывает практика, для многих державших тоже).

В общем, потратив сутки я всё там перевёл, постаравшись сохранить оригинальную верстку и стиль.

Если вы давно хотели научиться паять сами, или планируете научить этому своих детей, то все необходимые ссылки под катом.
Читать дальше →
Total votes 230: ↑223 and ↓7 +216
Comments 91

Information

Rating
1,416-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Registered
Activity

Specialization

Mobile Application Developer
Middle
Android development
Development of mobile applications
Kotlin
Android SDK