Как стать автором
Обновить
12
1
Вячеслав Смитюх @Viacheslav01

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

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

Уровень сложности Средний
Время на прочтение 9 мин
Количество просмотров 5K

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

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

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

Уровень сложности Простой
Время на прочтение 4 мин
Количество просмотров 13K

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

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

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

Уровень сложности Средний
Время на прочтение 48 мин
Количество просмотров 8.2K


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

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

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

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


Лопатить пиксели
Всего голосов 92: ↑92 и ↓0 +92
Комментарии 35

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

Уровень сложности Простой
Время на прочтение 11 мин
Количество просмотров 1.6K

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

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

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

Уровень сложности Простой
Время на прочтение 5 мин
Количество просмотров 10K

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

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

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

Читать далее
Всего голосов 42: ↑26 и ↓16 +10
Комментарии 47

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

Уровень сложности Простой
Время на прочтение 15 мин
Количество просмотров 3.2K

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

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

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

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

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

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

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

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

Уровень сложности Средний
Время на прочтение 29 мин
Количество просмотров 28K

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

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

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

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

Время на прочтение 6 мин
Количество просмотров 31K


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


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

Читать дальше →
Всего голосов 74: ↑51 и ↓23 +28
Комментарии 92

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

Уровень сложности Средний
Время на прочтение 8 мин
Количество просмотров 29K

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

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

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

Время на прочтение 5 мин
Количество просмотров 6.2K

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

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

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

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

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

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

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

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

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

Время на прочтение 19 мин
Количество просмотров 24K
image

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

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

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

Время на прочтение 5 мин
Количество просмотров 22K

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

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

Читать далее
Всего голосов 42: ↑40 и ↓2 +38
Комментарии 87

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

Время на прочтение 13 мин
Количество просмотров 207K


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

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

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

Время на прочтение 6 мин
Количество просмотров 21K

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

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

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

Узнать про отношения
Всего голосов 36: ↑18 и ↓18 0
Комментарии 80

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

Время на прочтение 13 мин
Количество просмотров 8.9K

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

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

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

Время на прочтение 4 мин
Количество просмотров 43K

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

Читать далее
Всего голосов 103: ↑99 и ↓4 +95
Комментарии 88

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

Время на прочтение 42 мин
Количество просмотров 129K
image


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

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

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


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

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

Время на прочтение 6 мин
Количество просмотров 23K
image


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


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

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

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

Читать дальше →
Всего голосов 48: ↑19 и ↓29 -10
Комментарии 34

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

Время на прочтение 26 мин
Количество просмотров 28K

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


image

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

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

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

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

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

Информация

В рейтинге
1 274-й
Откуда
Санкт-Петербург, Санкт-Петербург и область, Россия
Зарегистрирован
Активность

Специализация

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