Pull to refresh
0
Send message

MBO, OKR, PPR: смешивать, но не взбалтывать

Reading time5 min
Views18K
Давайте поговорим о методиках целеполагания. Эта тема актуальна практически во всех компаниях. Как ставить цели? Как сделать так чтобы цели достигались? Как не получить на выходе формальную отписку в стиле «я буду долго и упорно работать», но без какой-то конкретики? Такие цели хороши как «эмоциональный заряд», но совершенно бесполезны с точки зрения достижения результата. Неизмеримо, неочевидно, а следовательно, недостижимо.


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

Для чего программисту Continuous Integration и с чего начинать

Reading time8 min
Views53K
Представьте что в Роскосмосе решили собрать новую ракету не имея при этом чертежей и четкого понимания как ракета должна быть устроена. Отдельный завод занимается корпусом ракеты, отдельный выпускает двигатели, еще один — сопла. Главный менеджер Роскосмоса сказал что он доверяет профессионалам, и мастерски сделегировал всю работу заводам.



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

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

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

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

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

В 1991 году Гради Буч, видимо, устал от такого безобразия, и предложил делать сборку всего проекта каждый день, чтобы выяснять несовместимости не в день релиза, а пораньше — и назвал этот подход Continuous Integration.
Читать дальше →

Как я переучился из тестировщика в .NET-разработчика

Reading time4 min
Views17K
Дмитрий Мишин из Рязани начинал свой путь в IT на позиции тестировщика, но еще с университета хотел стать разработчиком. Два года он искал баги на работе, а в свободное время самостоятельно изучал .NET.

Сейчас Дмитрий работает Senior .NET-программистом. Он рассказал, как у него получилось перейти из тестирования в разработку.


Читать дальше →

Видеозаписи выступлений по геймдеву в Лектории Вышки

Reading time1 min
Views4.1K
В марте этого года в рамках лектория Вышки прошел цикл лекций об игровой индустрии. Лекции читали преподаватели программы «Менеджмент игровых проектов» ВШБИ НИУ ВШЭ. Под катом я собрал для вас видеозаписи, ссылки на конспекты и краткое описание всех докладов.

Что делать, если память подводит

Reading time14 min
Views21K
Привет, GT! Оперативная память – это как деньги. Или как свободное время. Ну, в смысле, расходится на все подряд и всегда ее не хватает. В общем, здесь действует то же правило: чем больше – тем лучше. И даже если ваш ПК довольно средненький по ТТХ, с оперативкой, например, на 8 гигабайт, то переход на 12 гигабайт такой же средненькой памяти скрасит вам жизнь весьма ощутимо. А вообще, в плане памяти есть два основных способа сделать так, чтобы использование компьютера приносило максимум радости:

  1. Оптимизировать саму ОС, чтобы уже имеющаяся на борту память расходовалась оптимально в рамках привычных пользователю сценариев.
  2. Докупить себе в ПК правильных плашек, нарастив память до нужного объема.



Но обо всем по порядку.
Читать дальше →

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

Reading time9 min
Views4.2K

Во второй половине 2017 года в Google Play разработчики загружали примерно по 2800 приложений каждый день. По AppStore данные пока не удалось найти, но вряд ли во много раз меньше. Каждое из этих приложений содержит определённое количество данных (data), которые хранятся или передаются через сотовые и Wi-Fi-сети.


image
Источник


Очевидно, что данные мобильных приложений являются основной целью злоумышленников: они не только крадут их, но и манипулируют ими в своих собственных интересах. Это также сопряжено с рядом проблем, таких как поддельные и альтернативные (часто ненадёжные) приложения, вредоносное ПО, утечка данных, слабозащищённые данные или ошибки защиты данных, а также инструменты для получения доступа к данным и их дешифровке.

Читать дальше →

Анимации в мире состояний

Reading time16 min
Views17K
Многие уже научились строить чистые интерфейсы и писать «undo-redo» в несколько строчек. Но как быть с анимациями? Часто их обходят стороной, и они не всегда вписываются в подход (state) ↦ DOM. Есть отличные решения вроде React Motion, но что если вам нужно делать сложные анимации или работать с Canvas, используя физический движок?

В нашем тексте рассказывается, как работать с анимациям в React-приложениях, и сравнивается несколько подходов (D3, React-Motion, «грязные компоненты»). А также о том, как «запускать» анимации в Redux-приложениях. Материал основан на расшифровке доклада Алексея Тактарова с нашей декабрьской конференции HolyJS 2017 Moscow. Прилагаем заодно видеозапись этого доклада:


Осторожно, трафик: под катом много картинок и гифок (сами понимаете, материал про анимации).

Continuous Integration для новичков

Reading time8 min
Views149K

Что такое CI


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


Если вы не знаете как настроить CI в своем проекте, я приглашаю вас "под кат"

Читать дальше →

Где лучше жить программисту. Сравниваем 9 стран

Reading time2 min
Views162K
Предлагаю вашему вниманию сводную таблицу-сравнение под кодовым названием «Лучшая страна для программиста», которую я подготовила с помощью IT-блогеров из разных стран. В список попали Германия, США, Испания, Канада, Австралия и Австрия, а также добавила в список Англию, Швейцарию и Нидерланды.

В этой статье страны сравнивались по следующим параметрам:

1. Зарплаты программистов
2. Налоги
3. Стоимость жизни
4. Социальное обеспечение
5. Развитость рынка IT
Читать дальше →

Как выпустить самоподписанный SSL сертификат и заставить ваш браузер доверять ему

Reading time3 min
Views313K


Все крупные сайты давно перешли на протокол https. Тенденция продолжается, и многие наши клиенты хотят, чтобы их сайт работал по защищенному протоколу. А если разрабатывается backend для мобильного приложения, то https обязателен. Например, Apple требует, чтобы обмен данными сервера с приложением велся по безопасному протоколу. Это требование введено с конца 2016 года.

На production нет проблем с сертификатами. Обычно хостинг провайдер предоставляет удобный интерфейс для подключения сертификата. Выпуск сертификата тоже дело не сложное. Но во время работы над проектом каждый разработчик должен позаботиться о сертификате сам.
В этой статье я расскажу, как выпустить самоподписанный SSL сертификат и заставить браузер доверять ему.
Читать дальше →

Майнеры не пройдут

Reading time8 min
Views11K
Ну или хотя бы поспотыкаются.

С начала 2017 года наш Центр мониторинга информационной безопасности видит попытки майнить криптовалюты на корпоративных ИТ-ресурсах, подключённых на мониторинг. Ну видит и видит, чего вам, битка жалко, что ли?

Действительно, а какой вред наносят майнеры в корпоративной сети? Какие угрозы для бизнеса это несёт? Давайте попробуем разобраться и понять, как искать майнеров и бороться с ними (если, конечно, решим это делать).

image
Marco Krohn, Creative Commons Attribution-Share Alike 4.0 International
Читать дальше →

Excel и длинные формулы

Reading time4 min
Views32K
VBA – очень полезная вещь. Можно консолидировать данные из многих файлов и обрабатывать большие объемы информации с использованием интересных алгоритмов. Например, макрос Nodupes. Он использует возникающую в процессе выполнения кода ошибку как проверку наличия элемента в формируемой коллекции. Есть макросы, использующие рекурсию для формирования всех возможных комбинаций и перестановок.

Но я бы хотел показать несколько примеров использования стандартных функций листа программы Excel.
Читать дальше →

Как перейти на микросервисы и не разломать production

Reading time9 min
Views17K
Сегодня расскажем, как переводили на микросервисы монолитное решение. Через наше приложение круглосуточно проходит от 20 до 120 тысяч транзакций в сутки. Пользователи работают в 12 часовых поясах. В то же время функционал добавлялся много и часто, что довольно сложно делать на монолите. Вот почему системе требовались устойчивая работа в режиме 24/7, то есть HighLoad, High Availability и Fault Tolerance.

Мы развиваем этот продукт по модели MVP. Архитектура менялась в несколько этапов вслед за требованиями бизнеса. Первоначально не было возможности сделать всё и сразу, потому что никто не знал, как должно выглядеть решение. Мы двигались по модели Agile, итерациями добавляя и расширяя функциональность.


Читать дальше →

Сетевая оптимизация для Unreal Engine 4

Reading time11 min
Views32K


Не так давно в официальной группе UE4 в vk я спрашивал, какие темы были бы интересны сообществу, чтобы о них рассказать :) Одним из популярных запросов стала работа с сетью на движке.


В начале я не планировал как-то раскрывать или упоминать эту тему, но потом подумал, что оформить "Best Practices" было бы неплохо даже для себя и своей команды.


Так что, если вам интересно, как мы делали сеть для нашей Armored Warfare: Assault, добро пожаловать под кат.

Читать дальше →

Ускорение Angular-приложений

Reading time15 min
Views16K
Многие знают Минко Гечева (rhyme.com) по книге «Switching to Angular» и по тексту «Angular Performance-Checklist», помогающему Angular-разработчикам оптимизировать свои проекты. На нашей декабрьской конференции HolyJS 2017 Moscow он тоже развивал тему Angular-производительности, выступив с докладом «Faster Angular applications». А теперь на основе этого выступления мы подготовили хабрапост, переведя все на русский. Добро пожаловать под кат! А если предпочитаете англоязычную видеозапись выступления, прилагаем и ее тоже:


Читать дальше →

Как измерить толщину волоса при помощи лазерной указки

Reading time3 min
Views25K

Этот красивый свет демонстрирует картину дифракции лазерного луча, освещающего человеческий волос

Вы можете измерить толщину единственного волоса в домашних условиях. Вам потребуется только тёмная комната, лазерная указка, картон, клейкая лента и немного математики. И, конечно, чей-нибудь волос. Для тех, кто любит обучающие ролики – статья составлена по мотивам видео от Frosbite Theater.
Читать дальше →

Избавляем игрока от раздражения: правильное использование случайных чисел

Reading time7 min
Views21K
image

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

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

Иногда ответ не «42»

Reading time3 min
Views19K
Доброй вам пятницы, хабралюди. У меня с друзьями есть такая традиция — мы собираемся и вместе программируем. Раньше у нас такая работа была, а сейчас уже просто традиция — кодобредогенерация. Мы выбрали несложную задачку и нарисовали решений кто во что горазд. Код будет ближе к концу статьи, но не спешите листать вниз, надо же сначала объяснить, что это за код и как мы пришли к нему.

Сама задача — получить число 0x17 самым внезапным образом.


Внимание! Данный пост оскорбляет чувство прекрасного и практики программирования на C. Читайте, воспринимайте и комментируйте на свой страх и риск.

Talk is cheap. Show me the code.

Тонкости выбора SSD для ноутбука

Reading time6 min
Views297K
Привет, GT! Качественный SSD раскрывает потенциал любого ноутбука. Хорошо, если он установлен сразу, а если нет? Разбираемся с разными вариантами твердотельных накопителей и определяем, какой из них лучше подходит для апгрейда мобильного компьютера.


Читать дальше →

Интернет и мобильная связь в ОАЭ

Reading time7 min
Views50K
Опишу вкратце состояние и некоторые особенности рынка телекоммуникационных услуг в ОАЭ. Не претендую на то, чтобы считать мой пост исчерпывающим докладом, просто привожу свои наблюдения. Прибыл я в страну в октябре 2017 года, так что обладаю данными только за небольшой период времени. Кому интересно — добро пожаловать под кат.

Читать дальше →

Information

Rating
Does not participate
Date of birth
Registered
Activity