Как стать автором
Обновить
16
0
Дмитрий @deitry

программист

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

«Гигиенический минимум» в работе тимлида

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

Привет, я Илья — Frontend Team Lead в Альфа-Банк. Отвечаю не только за команду, но также веду и техчасть. Как тимлид я часто задаюсь вопросом «В чем моя роль?», «Как измерить эффективность моей работы?» и «Какой профит от лидов для проекта в целом?»

Для себя я вывел определение и задачи лида. Это всего лишь мои субъективные умозаключения, и искушенной публике Хабра могут быть хорошо знакомы, иногда слишком очевидны, но…повторение мать учения, как когда-то говорили. И даже если мы сто раз что-то слышали — не значит, что мы начали это делать. То, о чем я хочу рассказать – простые шаги, которые работают только при регулярном повторении, без пропуска какого-то пункта, это важно.

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

Читать далее
Всего голосов 31: ↑27 и ↓4+26
Комментарии8

Новые функции внедрения зависимостей в .Net 6

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

Продолжаем делиться полезными материалами в backend-разработке. Осваивая новые инструменты, специалисты SimbirSoft часто читают материалы зарубежных авторов, чтобы быть в курсе актуальных тенденций. В этот раз наш выбор пал на серию материалов британского разработчика Эндрю Лока про новые возможности .NET 6. С разрешения автора мы перевели статью, в которой он разбирает функции внедрения зависимостей в .NET 6. Материал будет полезен тем, кто хочет познакомиться с нововведениями в .Net 6 при переходе на эту технологию.

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

Краткий справочник по «всем-всем» командам Linux

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

Периодически меня на начальном курсе просят дать "список всех-всех команд с кратким описанием что делает"... Ну прям "всех-всех". И ведь если искать в интернете "такие" справочники существуют - либо про "20-30 команд, но самых важных", либо с неточностями и устаревшей информацией. Так что предлагаю вашему вниманию свою версию такого "краткого" справочника (на 300, 515, 612, 716, 842, 1005, 1110 команд) с ссылками на wiki-описание и на cheat.sh-примеры наиболее важных команд.

Справочник по всем-всем командам LINUX
Всего голосов 105: ↑102 и ↓3+120
Комментарии114

Я год шпионил за собой — что из этого вышло. Простой секрет личной эффективности

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

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

Читать далее
Всего голосов 76: ↑69 и ↓7+83
Комментарии145

Безопасный OpenVPN на VPS за несколько минут

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

Введение


В связи с последними событиями и возможной блокировкой публичных VPN сервисов созрела идея облегчить жизнь людям и сделать скрипт для быстрой установки OpenVPN со всеми настройками и легким выпуском сертификатов.

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

Скрипт создавался для машин с CentOS 7.x или Ubuntu Server 17.x, использование на Ubuntu 16.x. возможно, но там OpenVPN 2.3.x в репозиториях. При необходимости можно добавить другие дистрибутивы, но обычно при покупке VPS можно выбрать систему и это не так важно.
Читать дальше →
Всего голосов 41: ↑36 и ↓5+31
Комментарии59

Как победить хаос в команде разработки и эффективно управлять ожиданиями заказчиков?

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

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

Читать далее
Всего голосов 15: ↑12 и ↓3+13
Комментарии4

Как вообще можно управлять отдельными людьми в команде разработки?

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


Перформанс — это результативность команды. Начиная с этого места понятийный аппарат разваливается. Чтобы измерять результативность, нужно знать какую-то метрику. Метрика «строчки кода» определённо не подходит, а метрика «готовые фичи» измеряет продуктолога или команду, а не индивидуального разработчика. И вот этим «чем-то» ещё нужно управлять. Логика в том, чтобы разработчик разрабатывал нужное и с понятной скоростью, чтобы на него можно было полагаться в задачах.

Управлять можно, например:

  • Балансом между костылями и оверинжинирингом.
  • Балансом между тестированием кода и быстрой выкаткой на прод.
  • Балансом между техническим долгом и TTM.
  • Балансом между «пиши код» и «развивай своего джуна» и так далее.

Например, хорошие метрики, следующие из этого — это доступность сервиса, максимальное время ответа сервиса, размер техдолга (хотя его тоже сложно измерить), процент покрытия автотестами и так далее.

Но вы не управляете даже этим! Этим всем управляет сам разработчик. Вы же управляете тем, как он понимает текущую ситуацию с компанией, продуктом, командой и своим развитием.

Собственно, вот эта тонкая грань и есть перформанс-менеджмент.
Читать дальше →
Всего голосов 29: ↑26 и ↓3+25
Комментарии6

Ответственное управление пакетами в Visual Studio

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

Почти девять лет назад миру был представлен новый опенсорсный проект под названием NuGet. Спустя два года после своего дебюта NuGet начал поставляться в Microsoft Visual Studio, что актуально и по сей день. NuGet — это один из нескольких пакетных менеджеров (диспетчеров пакетов), таких как Node Package Manager (NPM) для JavaScript и Maven для Java. Пакетные менеджеры упрощают и автоматизируют использование библиотек. Например, если вам нужна библиотека для реализации JavaScript Object Notation (JSON) в вашем .NET-приложении, потребуется всего несколько кликов мышью, и ваше приложение получит мощные возможности, которые вам не нужно реализовывать самим, совершенно бесплатно.

Читать далее
Всего голосов 11: ↑10 и ↓1+9
Комментарии18

Основы формата GLTF и GLB, часть 2

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

Данная статья является продолжением рассмотра основ GLTF и GLB форматов. Вы можете найти первую часть статьи здесь. В первой части мы рассмотрели с вами зачем изначально планировался формат, а также такие артефакты и их атрибуты GLTF формата как Scene, Node, Buffer, BufferView, Accessor и Mesh. В данной же статье мы рассмотрим Material, Texture, Animations, Skin, Camera, а также закончим формировать минимальный валидный GLTF файл.


image

Material и Texture


С мешем неразрывно связаны материалы и текстуры. При необходимости меш может быть анимирован. Материал хранит информацию о том, как модель будет отрендерена движком. GLTF определяет материалы, используя общий набор параметров, которые основаны на Physical-Based Rendering (PBR). PBR модель позволяет создавать “физически корректное” отображение объекта в разных световых условиях благодаря тому, что шейдинговая модель должна работать с “физическими” свойствами поверхности. Есть несколько способов описания PBR. Самая распространенная модель — это metallic-roughness model, которая и используется по умолчанию в GLTF. Также можно использовать и specular-glosiness модель, но только при помощи отдельного расширения (extenstion). Основные атрибуты материала следующие:


  1. name — имя меша.
  2. baseColorFactor/baseColorTexture — хранит инфомрацию о цвете. В случае атрибута Factor информация хранится в числовом значении для RGBA, в случае Texture — хранится ссылка на текстуру в объекте textures.
  3. metallicFactor — хранит информцию о Metallic
  4. roughnessFactor — хранит информцию об Roughness
  5. doubleSided — имеет значение true либо false (значение по умолчанию) и указывает на то, будет ли меш рендериться с обоих сторон или только с "лицевой" стороны.
Читать дальше →
Всего голосов 15: ↑14 и ↓1+13
Комментарии10

Основы формата GLTF и GLB, часть 1

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

Что такое GLTF и GLB?


GLTF (GL Transmission Format) — это формат файла для хранения 3Д сцен и моделей, который является крайне простым в понимании (структура записана в стандарте JSON), расширяемым и легко взаимодействующим с современными веб-технологиями. Данный формат хорошо сжимает трёхмерные сцены и минимизирует обработку во время выполнения приложений, использующих WebGL и другие API. GLTF сейчас активно продвигается Khronos Group как JPEG от мира 3D. На сегодняшний день используется GLTF версии 2.0. Существует и бинарная версия данного формата, которая называется GLB, единственное различие которого в том, что все хранится в одном файле с расширением GLB.


Эта статья — 1 часть из 2х. В ней мы с вами рассмотрим такие артефакты формата и их атрибуты, как Scene, Node, Buffer, BufferView, Accessor и Mesh. А во второй статье мы рассмотрим оставшиеся: Material, Texture, Animations, Skin и Camera. Больше общей информации о формате можно найти здесь.
Если в процессе просмотра статьи захочется лично поработать с данным форматом, то можете скачать модели GLTF 2.0 с официального репозитория Khronos на GitHub


image


Проблематика и её решение


Изначально GLTF формат был задуман Khronos Group как решение для передачи 3D контента по интернету и был призван минимизировать количество импортеров и конвертеров, разные виды которых создаются при работе с графическими API.


image

На текущий момент GLTF и его бинарный брат GLB используются как унифицированные форматы и в CAD программах (Autodesk Maya, Blender и т. д.), в игровых движках (Unreal Engine, Unity и прочих), AR/VR приложениях, соц. сетях и т.д.

Читать дальше →
Всего голосов 19: ↑18 и ↓1+17
Комментарии5

Есть ли жизнь без тестов?

Время на прочтение15 мин
Количество просмотров12K
Это история про то, как нам удалось написать довольно сложную business-critical систему, и добиться, чтобы она была стабильной даже без юнит-тестов (WAT?!).
Читать дальше →
Всего голосов 31: ↑27 и ↓4+29
Комментарии59

Подборка о релокейте: страны, в которых хорошо

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


Мы уже несколько лет выпускаем на Хабре истории о переезде. Некоторые успешные, некоторые не очень (примерно 30% экспатов со временем возвращались).


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


Если кто-то задумался о том, что делать, — вот личные истории из тех стран, в которые сейчас реально переехать, и в которых относительно просто построить новую жизнь.

Читать дальше →
Всего голосов 66: ↑49 и ↓17+46
Комментарии317

Пять проблем неидеального тимлида (и семь спасительных решений). Как тимлиду не пострадать от стокгольмского синдрома

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

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

Обсудили волнующую многих тему на нашем митапе с Захаром Овчаровым (Respona front-end team-lead, Toptal senior front-end developer). Встреча прошла перед конференцией IT-People Conf в Казани и вызвала интересную дискуссию. Полная версия обсуждений в нашем видео. 

Дисклеймер от Захара: все персонажи выдуманы, все действия нереальны, автор не несет никакой ответственности за ваши действия, поэтому действуйте на свой страх и риск;) 

Внезапно для себя вместо фронтенд-разработчика я стал тимлидом. Казалось бы, ничего страшного. Но как результат — огромная куча проблем.

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

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

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

Пора и честь знать или Как долго следует оставаться в одной компании

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

В то время как весь мир и наше IT буквально лихорадит, а тысячи людей меняют привычное место жительства, вопрос смены работы остаётся насущным. Мы расспросили специалистов о том, как понять, что из компании пора уходить. Желание увеличить зарплату, жажда новых перспектив и нового опыта или просто поиск лучших условий и счастья — какая из причин достаточно веская, чтобы сменить работу? Делимся рассказанными кейсами с вами и лайфхаками, как корректно сказать работодателю, что вы от него уходите.

Приятного чтения!
Всего голосов 19: ↑14 и ↓5+14
Комментарии12

«Что я получу, если смешаю корень златоцветника и настойку полыни?» или 10 вопросов для Junior Python-разработчика

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

12 разных издательств отказывали Джоан Роулинг в публикации первой части Гарри Поттера. Многим программистам отказывали не меньше.

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

Использование PowerShell с $PSStyle

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

В PowerShell 7.2 появилась автоматическая переменная $PSStyle для новой функции под названием PSAnsiRendering. В этой статье я покажу, как можно использовать ANSI-рендеринг для управления оформлением текста, например цветом и стилизацией шрифта, в PowerShell.

Уже некоторое время мы можем использовать в сеансе PowerShell escape-последовательности ANSI. Вы уже могли наблюдать это при вводе команд в командной строке. Команды, параметры, строки и операторы отображаются цветом. Эти цвета определяются как опции PSReadline.
Читать дальше →
Всего голосов 9: ↑7 и ↓2+9
Комментарии3

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

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

В предыдущей публикации мы рассмотрели некоторые базовые вопросы относительно потоков и пулов потоков и готовы двигаться дальше. Давайте проведём эксперимент и найдём правильный объём работы для пула потоков. Чтобы его издержки не давлели над объёмом полезной работы

⚠️ Материал средней сложности

С другой стороны, показанные примеры доказывают, что на производительность сильно влияет гранулярность элементов работы. Имеется ввиду, конечно же, длительность работы делегатов. Чтобы достичь хороших показателей, гранулярность работы не может быть абы какой: она должна быть правильной. И помимо планирования задач на ThreadPool, планировать их можно также как через TPL так и через какой-либо свой собственный пул потоков. Например, если взять обычный ThreadPool, то можно примерно измерить издержки алгоритмов ThreadPool в тактах Time Stamp Counter счётчика времени (можно, конечно и в чём-то более привычном типа микросекунд, но там на многих сценариях вполне могут быть нули)

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

Байт, байт, кладбище, юзер, или Смерть в цифровую эпоху

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

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

По данным Good Trust — американского сервиса по управлению цифровыми архивами — на одном  только Facebook насчитывается около 30 миллионов аккаунтов умерших людей. По мере роста цифрового имущества (аккаунты, подписки, домены, фотоархивы, электронные кошельки), проблема их наследования становится все более важной: на эту тему выпускают книги, а СМИ пишут подробные инструкции, как подготовиться к загробной цифровой жизни.

Во многих компаниях есть политики, касающееся смерти пользователя. Вслед за Google и Facebook, в конце 2021 года Apple запустила функцию Digital Legacy. Пользователь может назначить до пяти «контактов-наследников», которые смогут унаследовать его Apple ID и все данные в случае смерти. Наследникам нужно будет принять приглашение и предоставить доказательства, и как только они будут одобрены, у них будет полный доступ к паролям, фотографиям, документам, сообщениям и прочим данным Apple ID.

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

Читать далее
Всего голосов 13: ↑12 и ↓1+15
Комментарии9

Собираем «Тревожный чемоданчик». Мнение спортивного туриста

Время на прочтение18 мин
Количество просмотров205K
Когда началась война, все произошло так быстро, что я не могла ни понять, что происходит, ни подумать о том, что хотела бы взять с собой, когда мы убегали. (из интервью сирийской беженки)

Мне почему-то не хочется делать вид, что ничего не происходит. Потому что нынешняя военная эскалация напоминает затишье перед бурей, похожие ощущения были в январе 2020, когда «коронавирус же не у нас, он в Китае». В итоге жизнь подтвердила несостоятельность подобного «психологического» трюка. Поэтому, думая про худшее и надеясь на лучшее, я написал недавно эмоциональную заметку про «тревожный чемоданчик». Написана она с учетом моего опыта спортивного туризма (инструктор гор/пеш), поэтому профессиональные военным (выживальщикам?) просьба отнестись с пониманием. Писалось с акцентом на беларускую аудиторию, и вот искренне надеюсь, что (НЕ) пригодится всем. Просьба не политизировать данную статью, а воспринимать as is. Те кто затевает войны — Хабр не читают. Мы все в одной лодке, надеюсь написанное под катом хоть немного поможет этой «лодке» быть на плаву…


Собираем тревожный чемоданчик вместе
Всего голосов 225: ↑198 и ↓27+223
Комментарии391

Код доступа Termux

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

Лонгрид посвящается любителям CLI в знак солидарности лучшего эмулятора терминала на OS Android, который испытывает «кошмарную» монополию Google.

В данной работе вербализация пойдет о нижеизложенном со всеми остановками:

[+] глубоко настраивать средý (флэшка, виджет, стиль, зеркала и конфиги);
[+] управлять серверами через ssh;
[+] скачивать ролики/отрывки с YouTube;
[+] нарезать видео, создавать gif;
[+] воспроизводить текст/музыку/радио прямо в CLI;
[+] нарезать mp3-бигфайлы (аналогов приложений на Android попросту нет), и склеивать аудиофайлы;
[+] редактировать документы;
[+] проверять орфографию: как текстовых файлов, так и различных статей по url, например, проверка орфографии статей на Habr-e;
[+] генерировать словари различной сложности со скоростью Си;
[+] создавать блок-схемы; графики; облако слов и даже 3D-визуализацию;
[+] заниматься Data Science на Android-мощностях;
[+] тестировать интернет соединение/интерфейс (требуется частично Root);
[+] сниффить/сканировать сети (требуется частично Root);
[+] запускать и управлять TOR-сетью (deleted);
[+] управлять приложениями и процессами в ОС Android (требуется Root);
[+] анализировать память;
[+] защищать любые данные от случайного редактирования/уничтожения (требуется Root);
[+] автоматически шифровать и бэкапить по ночам любые данные в своё облако;
[+] чекать username(s) и e-mail(s);
[+] проводить аудит безопасности (об опасности сердить скрипт-кидди с их любимыми: «сниффить, парсить, брутить, дампить, сканить, фишить»);
[+] работать с электропочтой;
[+] изучать UNIX/shell;
[+] программировать на Android (на выбор пользователя. В Termux портированы несколько интерпретируемых и компилируемых языков программирования);
[+] запускать python/php/npm скрипты в т.ч. в одно касание с рабочего стола;
[+] работать с криптографией, стеганографией и цифровыми подписями;
[+] парсить данные;
[*] и даже запускать GNU-GUI-софт из CLI.

Погрузиться в GNU культуру
Всего голосов 28: ↑27 и ↓1+28
Комментарии46

Информация

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

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

Software Developer, Backend Developer
Lead
C++
C#
Git
Python
Software development