Search
Write a publication
Pull to refresh
78
0
Роман @RomeoGolf

инженер-программист

Send message

Как мы ведём требования к ПО: формализация

Reading time6 min
Views21K

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

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

Читать далее

Пастильда: Независимое Beta-Тестирование (16+)

Reading time6 min
Views4.6K

Решил купить себе Pastild(у). Это аппаратный хранитель паролей и одновременно USB Flash(ка). Также понравилась возможность съёмной SD карты. Идея аппаратного менеджера паролей, который не требует отдельного USB просто великолепная!

Какие же впечатления от использования Пастильды (User experience)?

Читать далее

Не-пирамида Маслоу

Reading time34 min
Views17K

Недавние исследования нейробиологов в области толерантности человеческого организма к дофамину реабилитируют/легитимизируют представления Авраама Маслоу о мотивации человека. 

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

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

По этой причине данная публикация почти дословный перевод, без сокращений, личностных трактовок и интерпретаций.

Читать далее

Время — иллюзия, время Unix — иллюзия вдвойне…

Reading time13 min
Views34K

Как вы хорошо знаете, в Unix-системах мы измеряем время как количество секунд, прошедших с «эпохи»: 00:00:00 UTC 1 января 1970 года. Немало людей сильно разозлилось из-за этого, да и вообще, общественное мнение сочло это ошибкой.

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

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

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

Карьерный рост в IT: почему важно всегда мониторить рынок и переходить на работу, к которой еще не готов

Reading time5 min
Views23K

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

Мы поговорили о карьерном росте с Алексеем Барановым, который со стартовой позиции в компании дорос до генерального директора с фиксированной зарплатой 10,000 $. Он поделился своим опытом и рассказал, как именно стоит действовать, чтобы улучшить свою карьерную позицию. Алексей работает в сфере продаж, однако его советы универсальны и полностью подходят в том числе для IT. Передаем ему слово.

Читать далее

Укрощение строптивых: как управлять конфликтами

Reading time9 min
Views21K

Привет! Я Иван Антипин, директор департамента разработки в AGIMA. В любой команде время от времени вспыхивают конфликты — и на их решение уходит много времени. Но я уверен, что жалеть об этом времени не нужно. Конфликты открывают новые перспективы: если грамотно ими управлять, они помогает коллективу развиваться и преодолевать трудности. В этой статье я расскажу, как тимлиду вести себя, если команду штормит или если он сам стал участником столкновения.

Читать далее

Что такое «Разрешение»?

Reading time3 min
Views10K

Термин “Resolution” фигурирует в трех популярных стандартах: IBM, EXIF, Google MD. В каждом из них «разрешение» трактуется по своему и обозначает совсем разные характеристики. Разбираемся с понятиями и в работе c дизайн материалами.

Читать далее

Никогда не поздно: начать в ИТ после 35

Reading time4 min
Views11K

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

Читать далее

Кому нужно программное обеспечение как услуга: основные виды SaaS с примерами

Reading time10 min
Views27K

Сегодня модель облачных услуг охватила все ниши бизнеса и приносит SaaS-компаниям огромные прибыли. Например, Salesforce — крупнейший в мире провайдер SaaS — только в 2021 году заработал 21,2 млрд долларов, увеличив свой доход по сравнению с предыдущим 2020 годом на 24%. Согласно экспертным прогнозам, в 2025 году мировой рынок SaaS достигнет объема 436,9 млрд долларов. 

Одним из главных драйверов роста SaaS стала эпидемия COVID-19. Повсеместный переход на удаленку и внедрение мер социального дистанцирования заставили предпринимателей по всему миру трансформировать свои бизнес-модели на базе онлайн-сервисов.

Читать далее

Как работать с атомарными типами данных в C++

Reading time13 min
Views29K

Насколько популярна сегодня тема атомарных данных, настолько же она обширна для одной статьи. Можно подробно останавливаться на разных аспектах атомарности: например, анализировать memory ordering, рассуждать о lock-free алгоритмах с использованием атомиков или исследовать производительность атомиков на разных платформах.

Под катом мы рассмотрим некоторые базовые принципы работы с атомарными типами данных в языке C++. А именно: осветим работу с атомарными данными, основные операции с ними в стандартной библиотеке C++, а также некоторые аспекты использования атомиков с пользовательскими типами данных.

Читать далее

nocc — распределённый компилятор для гигантских проектов на С++

Reading time8 min
Views14K

У нас есть задача постоянно компилировать тонны плюсового кода. Наш проект — почти 200 000 cpp- и h-файлов, множество Git-веток, сотни разработчиков, десятки билд-агентов: его нельзя единожды скомпилировать, приходится перекомпилировать постоянно, параллельно, разные версии.

Наш проект необычный. Потому что эти 200 000 файлов — это результат автогенерации. Потому что пишем мы на PHP, а потом через KPHP все PHP-исходники превращаются в плюсы. Именно так разрабатывается бэкенд ВКонтакте.

Компилировать тысячи объектников долго. Локально это занимает много часов. Мы использовали distcc — но всё равно медленно. Мы даже пропатчили distcc для поддержки precompiled headers — но даже тогда медленно. И решили написать своё — чтоб стало, наконец, быстро.

В итоге мы написали замену distcc — компилятор nocc. Он не имеет никакого отношения к PHP и даже к KPHP, а просто предназначен для компиляции .cpp.o в промышленных масштабах.

Это техническая статья про параллелизацию, демоны и специфику С++. Ссылки на GitHub и видео приложу в конце статьи.

Читать далее

Бытовой инфобез. Что делать, если украли мобильный телефон?

Reading time5 min
Views9.7K

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

Но как же быть, если вдруг Ваш мобильный телефон украдут? Сценарий вполне реальный учитывая формфактор устройства, а ведь внутри, без преувеличения, вся наша жизнь.

А у Вас есть план действий на такой случай? Вы можете вот прямо сейчас выстроить у себя в голове логическую цепь действий что и как делать по шагам если вдруг поймете, что мобильный телефон украден?

Читать далее

У вас не Agile

Reading time11 min
Views26K

Как же часто мне приходилось слышать от рекрутеров одну и ту же фразу:

Мы работаем по Agile. Спринты по 1-2 недели

Под "Agile" они, конечно же, имеют в виду Scrum. Но я с уверенностью могу сказать, что ни в одной компании, что я работал, Agile'ом даже и не пахло. И тут я даже не говорю о том, что Agile каким он был задуман в принципе не дошел до массовой разработки (о чем рассказывал один из создателей Agile Дейв Томас на конференции GOTO 2015). Я говорю об Agile в общепринятом значении этого слова.

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

По некоторым причинам команде разработчиков либо не получается наладить работу по Agile, либо руководство знает, как лучше, и навязывает собственное видение методологии разработки. Эту проблему адресовал в своей статье Рон Джефрис (вот перевод на русский), дав красноречивое название подобным практикам — "Dark Scrum". Существует и более мягкая формулировка для тех, кто считает подобное положение вещей скорее фичей, а не багом — "Pseudo Agile" или "Post Agile".

В этой статье я постараюсь расставить точки над Ё и разобраться, что такое Agile на самом деле, и какие проблемы существуют у современных гибких методологий.

Читать далее

Поворот в мышлении: как в России замещают импортные материалы для авиации и космоса

Reading time7 min
Views13K

Композиты, необходимые и в космосе, и в беспилотниках, особенности их производства и зависимость от зарубежных поставщиков — об этом информационной службе Хабра на проектно-образовательном интенсиве «Архипелаг 2022» рассказал Вадим Микрин @purecarbon, заместитель генерального директора компании ИТЕКМА.

Читать далее

Семь грехов численной линейной алгебры

Reading time6 min
Views11K

image


В численной линейной алгебре нас интересуют точное и эффективное решение задач и понимание чувствительности задач к возмущениям. К старту флагманского курса по Data Science делимся материалом от профессора Ника Хигэма о семи грехах линейной алгебры, из-за которых теряется точность/эффективность или информация о чувствительности [к возмущениям] оказывается недостоверной.

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

Библиотека тестировщика: обзор полезных книг по тестированию ПО

Reading time7 min
Views80K

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

Читать далее

Есть ли жизнь без RTTI: пишем свой dynamic_cast

Reading time14 min
Views11K

В современном С++ осталось не так много вещей, которые не подходят под парадигму "Не плати за то, что не используешь". Одна из них – dynamic_cast. В рамках данной статьи мы разберёмся, что с ним не так, а когда поймём – попробуем предложить альтернативу.

Читать далее

Создаем сложные интерфейсы и спецэффекты на базе Qt. Часть I

Reading time18 min
Views33K

Привет, Хабр! Меня зовут Михаил Полукаров, я занимаюсь разработкой desktop-версии в команде VK Teams. Каждый день нашим мессенджером пользуются миллионы людей, поэтому мы уделяем особое внимание интерфейсу пользователя. Он должен быть не только функциональным и отзывчивым, но ещё и привлекательным с эстетической точки зрения. Для создания графических интерфейсов мы используем Qt Framework, и уже накопили много опыта в решении нетривиальных задач с помощью этого инструмента. Настолько много, что статью пришлось разделить на две части. 

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

Наглядное руководство по SSH-туннелям

Reading time8 min
Views202K

Прим. переводчика: автор статьи рассматривает практические сценарии и примеры организации SSH-туннелей. А для лучшего понимания того, как это работает, графически показывает потоки трафика.

Туннели SSH — это зашифрованные TCP-соединения между клиентами и серверами SSH. Трафик входит с одной стороны туннеля и прозрачно выходит с другой. Изначально этот термин относился к туннелям на виртуальных сетевых интерфейсах TUN/TAP, однако сейчас так обычно называют проброс портов SSH.

Читать далее

Пара слов о паттерне “Пассивное Представление” (Passive View)

Reading time4 min
Views4K

Это выдержка из книги Further Enterprise Application Architecture development, работу над которой автор начал в середине нулевых. К сожалению, с тех пор слишком много других не менее важных вещей стали требовать его внимания, поэтому не было времени как следует поработать над книгой и просвета в обозримом будущем не предвидится. Поэтому имейте ввиду, что этот материал находится в черновом варианте и автор не планирует вносить никаких исправлений или обновлений, пока не найдется время закончить эту книгу.

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

Паттерн “Пассивное Представление” (Passive View) призван помочь нам с этим, сводя присутствие какой-либо логики в компонентах пользовательского интерфейса к абсолютному минимуму, перемещая ее в контроллер, который теперь не только обрабатывает ответы на пользовательские события, но и выполняет все обновления представлений. Это позволяет сосредоточить тестирование на контроллере, минимизируя риски возникновения проблем в представлении.

Читать далее

Information

Rating
3,770-th
Location
Свердловская обл., Россия
Date of birth
Registered
Activity