Pull to refresh
-14
Karma
0.2
Rating
Вячеслав Смитюх @Viacheslav01

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

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

Java *
Sandbox
Tutorial


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

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

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

Reading room Health

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

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

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

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

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

OTUS corporate blog Development for Android *
Translation

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

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

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

Mathematics *
Sandbox

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

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

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

Working with 3D-graphics *Game development *Algorithms *Mathematics *
Translation
image


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

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

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


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

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

E-commerce management *Reading room Popular science Astronautics The future is here
image


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


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

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

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

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

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

Java *Algorithms *

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


image

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

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

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

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

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

Android 12: история поддержки

Yota corporate blog Development of mobile applications *Development for Android *

Всем привет! Меня зовут Максим Новиков, я Android-разработчик в команде мобильного оператора Yota.


Совсем недавно вышла новая версия всеми нами любимой OS. Вот и пришло время нашему приложению поддержать её. Было очень много обзоров на новые возможности Android 12, а также изменений для разработчиков. Сегодня я расскажу про наш тернистый путь. Наливайте чай/кофе и готовьтесь к увлекательному погружению в мир Android.


Читать дальше →
Total votes 6: ↑6 and ↓0 +6
Views 8.2K
Comments 6

Как мы лажали, открывая очередное юрлицо — на этот раз в США

Орбита corporate blog Project management *Legislation in IT


Я тут открывал юрлицо в США и сделал всё по инструкции «как не облажаться», но облажался. Уже в новых местах, не предусмотренных инструкцией.

Главная инструкция вот тут, она написана не юристом, но сами юристы подтверждают, что получилась хорошая и на неё же ссылаются, когда нужно быстро ввести в курс дела новичка. Список того, где уже облажались русские участники УКомбината — вот.

Проект внезапно созрел и нужно было пустить инвесторов. Команда немного размазана по планете, поэтому всем было примерно всё равно, где регистрироваться. Есть вообще типовой стартаперский набор: Кипр, прибалты, США, Сингапур, Люксембург. Но не пофиг было российскому стратегу, одному из инвесторов, он хотел на родине. При этом американское корпоративное правило наиболее гибкое + накоплена большая база прецедентов, то есть оно ещё и предсказуемое. А в штате Делавер наиболее квалифицированный суд, и его решения — просто золотой стандарт отрасли. То есть если у вас есть иностранные инвесторы, стоит выбор между Европой, Кипром и США. Из Латвии и Эстонии тяжело выскакивать при росте компании (и за сладкий старт придётся платить условиями дальше), Кипр хорош, но венчурные инвесторы часто ассоциируют его с «русские что-то там мутят», поэтому Делавер.

Поскольку у нас ИТ-бизнес в России, и мы знаем правила ведения ИТ-бизнеса в России, план был такой:

  1. Уговаривать стратега на любую зарубежную юрисдикцию (а для них бы это был первый опыт инвестиций в зарубежный проект);
  2. Как только они дадут добро, за недельку зарегистрироваться, например в Делавере, и принять деньги.

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

Но нет. Переходим к мякотке.
Читать дальше →
Total votes 83: ↑81 and ↓2 +79
Views 16K
Comments 11

Основы темизации в Android

OTUS corporate blog Development for Android *
Translation

Темизация приложения может быть одним из самых запутанных вопросов в разработке Android. В то время как проект постоянно увеличивается, становится все труднее поддерживать стили компонентов и тематическое оформление приложения. Если у вас нет хорошей системы дизайна, то можно получить противоречивое оформление и несоответствующие цвета в приложении. Хорошее понимание стилизации и темизации поможет вам создать единообразный пользовательский интерфейс во всем приложении. Кроме того, если вы думаете о миграции на Compose, плохая система дизайна может создать дополнительные сложности.

Хорошая система дизайна требует правильной настройки стилизации и темизации. Это способствует созданию единообразных и многократно используемых стилей для наших компонентов. Но как на самом деле создать правильную систему стилей и тем?

На этот вопрос нет однозначного ответа, его можно разделить на 5 частей.

Читать далее
Total votes 9: ↑9 and ↓0 +9
Views 5.1K
Comments 0

Как увеличить срок хранения мобильного приложения? 6 проверенных способов

Development for iOS *Development for Android *
Sandbox

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

Читать далее
Total votes 14: ↑7 and ↓7 0
Views 2.9K
Comments 24

«Как научиться думать»: три базовых момента

ITMO corporate blog GTD *Studying in IT Lifehacks for geeks Brain

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

Читать далее
Total votes 27: ↑18 and ↓9 +9
Views 35K
Comments 29

Как «приручить» консоль, или 5 шагов к жизни с командной строкой

red_mad_robot corporate blog Configuring Linux **nix *Shells *
✏️ Technotext 2021

Всем привет! Меня зовут Осип, я Android-разработчик в red_mad_robot и я люблю автоматизировать всё, что автоматизируется. В этом мне помогает консоль, поэтому решил поделиться опытом, как настроить командную оболочку так, чтобы в ней было приятно работать и она ежедневно помогала вам решать задачи.

Статья для тех, кто использует Linux или macOS. Если у вас Windows, вы можете использовать WSL (приравнивается к Ubuntu).

Читать далее
Total votes 25: ↑24 and ↓1 +23
Views 17K
Comments 33

Как удалить «неудаляемые» приложения со смартфона

VDSina.ru corporate blog Development for Android *Smartphones Software


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

Оказывается, некоторые программы невозможно удалить. Например, на отдельных моделях Samsung невозможно удалить Facebook (есть только опция 'disable'). Говорят, на Samsung S9 вдобавок предустановлены «неудаляемые» приложения Microsoft.

Эти смартфоны приведены для примера. Такая же проблема и на других моделях. На многих есть неудаляемые программы от самого производителя.

Всё это надо зачистить.
Читать дальше →
Total votes 190: ↑179 and ↓11 +168
Views 188K
Comments 202

Анатомия GNU/Linux

Configuring Linux *Open source *System administration **nix *
Sandbox
✏️ Technotext 2021

Какое-то время назад на Хабре была небольшая волна постов на тему «Почему я [не] выбрал Linux». Как порядочный фанатик я стриггерился, однако решил, что продуктивнее что-нибудь рассказать о своей любимой системе, чем ломать копии в комментариях.

У меня сложилось впечатление, что многие пользователи GNU/Linux слабо представляют, из чего сделана эта операционная система, поэтому утверждают, что она сляпана из попавшихся под руку кусков. В то же время, архитектура большинства дистрибутивов является устоявшейся и регламентируется рядом стандартов, включая стандарт графического окружения freedesktop.org и Linux Standard Base, расширяющий стандарты Unix. Мне при знакомстве с GNU/Linux несколько лет назад для погружения не хватало простой анатомической карты типичного дистрибутива, поэтому я попробую рассказать об этом сам.

Читать далее
Total votes 161: ↑161 and ↓0 +161
Views 83K
Comments 137

Как я победил прокрастинацию, узнал свои истинные желания, поставил четкие цели и достиг их

Project management *GTD *Reading room Lifehacks for geeks

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

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

Это дало мне сильнейший толчок и изменило мою жизнь до неузнаваемости. За прошедшие пять лет я попутешествовал по куче стран, полтора года прожил в солнечной Черногории, переехал в Израиль, несколько раз менял работу на компании с гораздо лучшими условиями, в последний раз устроившись на работу, на которой мой доход в более чем 15 раз превышает мой доход пять лет назад, и на которой я делаю продукты для всемирно известных корпораций и организаций, создал три более-менее успешных open-source проекта на Github и написал множество статей на Хабрахабр, некоторые из которых имели ошеломительный успех у читателей.

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

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

Читать далее
Total votes 40: ↑32 and ↓8 +24
Views 49K
Comments 71

Хочу купить чужой домен, как это сделать? Шаги от проверки к покупке

Domain names administrating *IT Infrastructure *Server Administration *Internet marketing *
Sandbox

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

Рассказываю, как проверить и как купить.
Total votes 29: ↑27 and ↓2 +25
Views 14K
Comments 9

Приседания по программе Пола Уэйда

Reading room Health
Translation

image


Техника / как выполнять


Правило первое: правильная постановка ног


Перед началом приседаний надо посмотреть на позицию ног. Также как ладони продолжают руки, так и от положения ступней зависит позиция ног. Начинайте, расположив ступни симметрично с носками развёрнутыми наружу под углом 30-40 градусов. Однако, продолжайте экспериментировать, чтобы добиться удобного положения под себя. Колени смотрят в ту же сторону, что и носки. Они не должны быть параллельны друг другу.


image


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


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

Читать дальше →
Total votes 44: ↑32 and ↓12 +20
Views 34K
Comments 32

Information

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

Specialization

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