
Ненавидеть свою работу я начал на третий год. Тот самый момент, когда тебя уже не хвалят за свежий взгляд, а начинают душить регламентами и бессмысленными правками.
User
Ненавидеть свою работу я начал на третий год. Тот самый момент, когда тебя уже не хвалят за свежий взгляд, а начинают душить регламентами и бессмысленными правками.
В этом посте мы разберем с вами 7 основных психотипов людей по классификации Виктора Пономаренко («радикалов») и выделим сильные и слабые стороны каждого из них, применимо к командной работе и решению задач.
Предыстория
Как-то раз я набрела на вот такой диалог в одном чате, где обсуждались командные процессы:
— Должен быть лидер-слуга
— Почему слуга? Может, лидер-партнер?
— Не согласен! 100%, это мертвые нерабочие подходы!
Меня долго не отпускала мысль: как вообще могут существовать настолько полярные мнения? Ведь это писали не вчерашние студенты, а состоявшиеся в профессии люди. Казалось бы, это те, кто работал в IT последние 10-15-20 лет, что называется, «смотрели одни и те же мультики», читали похожие книги, наблюдали за преображением бизнес-процессов и кардинальной сменой технологий.
Токсичная компания — это не всегда про споры и дедлайны до ночи, иногда она маскируется под «дружный коллектив». Разбираемся, как вовремя заметить тревожные звоночки и не угодить в корпоративный ад.
А если вы руководитель, то берите на заметку, как токсичная атмосфера разрушает команду, снижает продуктивность и заставляет сильных сотрудников искать другую работу.
Мы изучили, что происходит в компаниях, и выяснили, почему хорошие специалисты не выдерживают и уходят. Разбираем 5 проблем, которые не компенсируют высокая зарплата и интересные задачи.
Возможно, вы замечали, что Java-приложение может превышать лимит памяти, указанный в параметре -Xmx (максимальный размер кучи). Дело в том, что JVM помимо кучи использует и другие области памяти.
Давайте начнем со структуры памяти Java-приложения и источников потребления памяти.
Друзья! Многие из вас, возможно, как и я, интересовались изучением и использованием в работе очень эффективного и востребованного языка программирования Rust но, как и я, оставляли свои попытки из-за сложности, запутанности и многослойности доступного материала и книг по этой теме.
Лично я делал не меньше 5 попыток на протяжении последних 10 лет, прорабатывая, большей частью в свободное и личное время, литературу, некоторые книги по несколько раз, в поисках ответов на простые человеческие вопросы - как свободно писать на Rust и решать, как орешки, ежедневные задачи, не страдая от головной боли и хорошо понимая, что происходит и почему простая программа не компилируется.
В результате, сейчас, наконец-то, стало понятно все в деталях, код пишется быстро, задачи решаются легко, результаты применения языка поражают своей эффективностью и точностью и возникло желание восполнить пробел и поделиться с вами накопленным опытом, но, главное, провести и привести вас к совершенному пониманию простоты и лаконичности этого удивительно эффективного языка наиболеее коротким и приятным путем. Приготовьтесь к увлекательной и познавательной прогулке и подъему по ступеням вверх, к мастерству написания полезного кода на Rust.
В мире разработки программного обеспечения существует множество "священных коров" — принципов и практик, которые принимаются как данность и редко подвергаются критическому анализу. Особенно показательна ситуация с принципами SOLID на русскоязычных ресурсах: достаточно открыть Хабр, чтобы найти 100500 статей о SOLID, и в каждой из них принципы интерпретируются по-разному.
Само существование такого количества "объяснительных" статей говорит о фундаментальной проблеме: если принципы требуют толкования, значит их названия не являются самодостаточными и интуитивно понятными. А если каждый разработчик понимает принципы по-своему, возникает вопрос — зачем вообще нужны принципы, которые не дают однозначного руководства к действию? Принципы SOLID, предложенные Робертом Мартином, давно стали одной из таких "священных коров". Однако пришло время честно признать: то, как мы используем SOLID сегодня, часто противоречит изначальным идеям и в целом иногда может приносить больше вреда, чем пользы. Зависит от контекста.
Самый яркий пример искажения первоначального замысла — это интерпретация принципа единственной ответственности (SRP).
Этот материал представляет собой глубокое исследование всего, что связано с Redis. В частности — речь пойдёт о различных способах организации хранилищ Redis, о постоянном хранении данных, о форках процессов.
Как можно догадаться, на этот раз речь пойдёт об очередном поделии китайского IoT-гения, а именно о цифровой камере для третьего "глаза" микроскопа (можно ли назвать камеру для микроскопа IoT-ом?). Не знаю, может у них там сверху наказ такой: в каждую камеру по бэкдору совать (и чем больше, тем лучше), но это в самом деле треш.
За какую камеру ни возьмись: будь она для видеонаблюдения, либо, как в моём случае, для вывода картинки с микроскопа на монитор/смартфон - по факту вы получаете не только девайс, выполняющий свои основные функции, но и как "премиум-фичу" - потенциально следящее (конечно же, за Вами) устройство. Об одном таком девайсе я и хочу рассказать.
Привет, меня зовут Павел Комаровский – и я из тех душнил, которые в начале января усиленно строят всякие акульи планы на год. Так как делаю я это уже много лет, у меня выработался довольно своеобразный подход к процессу, которым я и хотел с вами поделиться – надеюсь, это поможет вам избежать ошибок, которых в свое время наделал я.
Интерфейс командной строки — это альфа и омега для большинства технарей, особенно для разработчиков и сисадминов. Чем бы вы ни занимались — скриптами, конфигурацией серверов или автоматизацией задач, — команды Linux сэкономят вам часы рабочего времени. Но если только вы умеете грамотно с ними обращаться.
Поначалу Linux многих обескураживает, но как только вы разберётесь с интерфейсом командной строки (CLI), вы поймёте, что это лучший друг программиста. Простые, но эффективные команды Linux могут заметно улучшить любые рабочие процессы — от навигации по каталогам до манипуляции с файлами и даже исправления ошибок.
В этой статье я расскажу вам о пяти командах, упрощающих жизнь разработчика. Это не просто удобные приёмы, которые не помешало бы знать. Эти команды сэкономят вам время и значительно повысят эффективность взаимодействия с терминалом.
А вы уже прятали что-то внутри PNG? Базовый способ надежно спрятать что-то внутри картинки. И все на вашем любимом JavaScript!
Каждый раз, когда я начинаю реализацию нового REST API с помощью Spring, мне сложно решить, как выполнять валидацию запросов и обрабатывать бизнес-исключения. В отличие от других типичных проблем API, Spring и его сообщество, похоже, не согласны с лучшими методами решения этих проблем, и трудно найти полезные статьи по этому поводу.
В этой статье я обобщаю свой опыт и даю несколько советов по валидации интерфейсов.
Наличие у контроллеров STM32, да и практически любых других, режима энергосбережения STANDBY, который фактически представляет собой полное отключение (работает только RTC и сторожевой таймер, потребление составляет первые микроамперы, а состояние не сохраняется), дает возможность простейшим способом сделать включение и выключение устройства на таком МК нажатием кнопки, в том числе и задействованной под другие функции, без каких-либо дополнительных элементов. Есть, однако, несколько подводных камней, и в этой статье я расскажу, как на них не попасть.
Сижу я значит спокойно, никого не трогаю, починяю примус, и вдруг как захочется сгенерировать SHA-256 целиком внутри процессора без обращения к памяти, что прям места себе не нахожу.
В итоге к памяти все таки пришлось обращаться за самим сообщением, константами и сохранять начальное значение hesh блока, а в остальном смотрите ниже.
Чтобы код имел хоть какай-то практический смысл, я скомпилировал его в статическую библиотеку и написал для него с++ имплементирующий класс, который разместил в заголовочном файле.
Как и многие, я храню свой код на GitHub. Пару лет назад я сделал простой пайплайн для сборки, анализа и тестирования моих веб‑приложений и сервисов. Он выполнял свою задачу, и так как это был мой первый опыт по настройке пайплайна CI/CD на GitHub, он сводился к одному шагу.
build (and deploy)
Со временем я стал замечать, что я стараюсь избегать вносить изменения в код. Будучи счастливым обладателем ADHD, я часто замечаю за собой сложность в решении задач с большим количеством препятствий и одним из них стало то, что выполнение пайплайна занимало больше 5 минут. Я коммитил изменения и шел делать кофе, пока пайплайн тестировал и деплоил код. И не всегда возвращался, отвлекаясь на другие вещи.
Я решил для себя, что максимальное количество времени, которое я готов ждать - 1 минута.
О чем эта статья: мы разберемся, что такое JSON Web Token, как он устроен и для чего используется, рассмотрим такие приемы, как «black-list токенов» и «контроль версий» токенов. Для наглядности, в конце будут блок-схемы клиент-серверных запросов с пояснениями.
Для кого эта статья: для тех, кто хочет детально понять что такое JWT, а так же для тех, кто просто ищет схему реализации.