Инструменты | Владимир Бычко об управлении проектами - Part 2

Владимир Бычко об управлении проектами

пиэм разъясняет, предостерегает, рекомендует

Категория: Инструменты

Что менеджеру проектов нужно знать об API

Изображение с unsplash.com, автор Rubaitul Azad

В изрядной доле проектов нужно интегрировать два или больше приложений. В самом тривиальном случае — фронтенд с бэкендом. В более сложном — мобильное приложение с бэкендом. В случае со звёздочкой — два бэкенда и другие извращения. Стандартом де-факто для таких задач в наше время считается API.

api куа мем

Кроме того, в вашем продукте может потребоваться реализовать дорогостоящую функцию, которая уже сделана в стороннем сервисе на отличненько. Например, если вам нужны карты, целесообразно использовать API Open Street Map или Яндекс.Карт, это сильно дешевле, чем пилить собственные карты.

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

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

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

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

Различия REST и SOAP

Чаще всего в современной разработке встречаются REST и SOAP API. Давайте разберём, в чём разница.

REST

REST (от англ. Representational State Transfer — «передача репрезентативного состояния» или «передача „самоописываемого“ состояния») — архитектурный стиль взаимодействия компонентов распределённого приложения в сети.

Предполагает использование протокола HTTP для передачи данных.

Применяется преимущественно в вебе и в мобильных приложениях.

Ещё используется в облачных вычислениях.

Через REST API могут передаваться разные форматы данных, но обычно используется JSON.

Предполагает кэширование передаваемых данных.

Хорошо масштабируется.

SOAP

SOAP (от англ. Simple Object Access Protocol — простой протокол доступа к объектам) — протокол обмена структурированными сообщениями в распределённой вычислительной среде. Первоначально SOAP предназначался в основном для реализации удалённого вызова процедур (RPC).

При помощи SOAP данные могут передаваться не только через HTTP, но и, например, MQ.

Применяется, преимущественно, в Enterprise, для интеграции нескольких отдельно стоящих систем.

Данные передаются только в формате XML.

Данные не кэшируются.

Типы запросов

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

  1. GET
  2. POST
  3. PUT
  4. PATCH
  5. DELETE

GET – используется для получения со стороны севера определенного ресурса. Если вы производите этот запрос, сервер ищет информацию и отправляет ее вам назад. По сути, он производит операцию чтения на сервере. Дефолтный тип запросов.

POST – нужен для создания определенного ресурса на сервере. Сервер создает в базе данных новую сущность и оповещает вас, был ли процесс создания успешным. По сути, это операция создания.

PUT и PATCH – используются для обновления определенной информации на сервере. В таком случае сервер просто изменяет информацию существующих сущностей в базе данных и оповещает об успехе выполнения операции.

DELETE – как и следует из названия, удаляет указанную сущность из базы или сигнализирует об ошибке, если такой сущности в базе не было.

Postman

Для тестирования API применяется инструмент Postman. Раньше он был плагином для Хрома, но сейчас это автономное приложение для любых платформ. Штуковина достаточно понятная интуитивно, разработчики чаще всего передают данные об API тестировщикам именно в виде коллекций Постман.

Есть публичное API для смешных переводов, например, эндопоинт для перевода на язык Мастера Йоды находится по адресу: https://api.funtranslations.com/translate/yoda.json

Эндпоинт принимает только один строковый параметр text. Отправим Постманом GET запрос на этот эндпоинт:

Интерфейс Postman с простым GET-запросом к API
Интерфейс Postman с простым GET-запросом к API

Как видите, API возвращает такой ответ:

{
    "success": {
        "total": 1
    },
    "contents": {
        "translated": "Force be with you yoda,Polovec helloy you",
        "text": "Hello Yoda, Polovec helloy you",
        "translation": "yoda"
    }
}

Как нетрудно понять, эндоинт возвратил код успеха, а в поле контента передал три значения:

  • translated — переведённый текст.
  • text — исходный текст.
  • translation — тип переводчика.

По такому же принципу работают любые REST API, только в реальных запросах параметров больше и они сложнее.

Применение в реальной разработке

Проектирует API обычно архитектор. Бэкенд-разработчики реализуют эндпоинты и пишут документацию. Фронтендеры или мобильные разработчики интегрируются с этим API, реализуют получение данных из него и отправку данных в него. Тестеры всё это проверяют.

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

Разное

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

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

Вот ещё хороший документ про API от пользователя Koray OKE:

В целом, это всё, что пиэму нужно знать об API.

Манифест прожект менеджера

В Манифесте:

  • Методологии человеческим языком
  • Арсенал инструментов PM
  • Технические и продуктовые нюансы
  • Метрики
  • Рекомендации по созданию культуры в команде
  • Про CI/CD
  • Шаблоны
  • Вопросы к собеседованиям и т. д.

За документ спасибо Александру Коновалову.

Использование аэропорта

Изображение с burst.shopify.com

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

Про ручную кладь

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

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

Что можно везти, а что нельзя

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

Баллончик с CS нельзя везти вообще.

В большинство стран вы можете везти тактическую ручку, только рядом положите одну обычную. В Голландию и Германию тактическую ручку нельзя, но я пишу о внутренних перелётах.

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

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

Антисептик в виде геля везти можно. В тот же пакет его положите.

Маленькую пустую пластиковую бутылку можете взять. Потом напишу, зачем.

Можете взять электрический тройник. Потом напишу, зачем.

Первичный досмотр

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

Общий зал аэропорта

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

Регистрация

О времени начала регистрации мы можете узнать на электронном табло вашего аэропорта. На компе или смартфоне загуглите и посмотрите. Иногда она начинается за два часа, иногда за три. Если летите впервые, прибудьте в аэропорт за три часа, потом можете за два.

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

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

После всего, сотрудник выдаст вам посадочный талон. На нём будет написан номер выхода на посадку и номер места в самолёте. Если не знаете, куда идти дальше, спросите сотрудника, он покажет направление.

Полноценный досмотр

Проследовав в направлении, которое укажет вам сотрудник, вы найдёте другого сотрудника, которому нужно показать паспорт и посадочный, он поставит туда штамп и вы пройдёте на досмотр.

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

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

Внимание. Если вы через Шереметьево провозите ноутбук, вас заставят его включить, видимо, чтобы вы не провезли под видом компьютера бомбу. Логиниться не надо, достаточно открыть экран и показать окно ввода пароля. Поэтому имейте в виду, что ноутбук должен быть заряжен, хотя бы чуть-чуть.

Зал ожидания

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

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

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

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

Посадка

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

Есть три варианта посадки. Через рукав, через автобус и колхозный. Первый самый комфортный. Проходите по коридору, сразу попадаете в самолёт, стюардесса на входе поздоровается, посмотрит корешок от посадочного и скажет, с какой стороны от прохода ваше место. На самом деле, вы можете определить это по букве в посадочном талоне. Если ABC – место слева (А у иллюминатора, В в середине, С в проходе), если смотреть по ходу движения самолёта. Если DEF – справа (D в проходе, E в середине, F у иллюминатора). Если не брали услугу выбора места, лететь, скорее всего, будете в середине ряда.

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

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

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

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

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

Полёт

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

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

На подлёте командир сообщит, что самолёт начал снижение. Нужно обратно застегнуть ремень, поднять откидной столик. Самолёт снизят и посадят. При посадке может тряхнуть, поэтому ноутбук к этому моменту лучше убрать в чехол.

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

После того, как самолёт затормозит, вскакивать не надо, двери будут ещё минут десять закрыты. Спокойно встаёте, забираете вещи с полки, ничего не забываете, выходите.

Высадка

Иногда высадка производится в рукав, иногда в автобус. Колхозного варианта в крупных аэропортах ещё ни разу не встречал.

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

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

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

Пересадка

Если вам нужно лететь с пересадкой, без смены аэропорта, при покупке билетов закладывайте на стыковочное время 4, лучше 5 часов. Опоздать на час в авиации, вообще, не считается за косяк. Ничего особо сложного в пересадке нет. В большинстве аэропортов зона прилёта, непосредственно перед выходом сообщается с общим залом. По крайней мере, в Шереметьево В, вы идёте вместе со всеми на выход, но в самом конце идёте не в двери на улицу, а налево.

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

Что менеджеру проектов нужно знать о Docker и Kubernetes

Изображение с unsplash.com, автор Growtika Developer Marketing Agency

На собеседовании на менеджера проектов вас могут спросить, что такое Kubernetes или просто Кубер. Если вы претендуете на место технического менеджера проектов, придётся рассказать ещё, зачем он нужен и как используется в современной разработке. Давайте разбираться.

Для того, чтобы понять, зачем нужен Кубер, сначала нужно понять, зачем нужен Докер.

Docker

Позволяет «упаковать» приложение со всем его окружением[en] и зависимостями в контейнер, который может быть развёрнут на любой Linux-системе с поддержкой контрольных групп в ядре, а также предоставляет набор команд для управления этими контейнерами.

https://ru.wikipedia.org/wiki/Docker

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

У вас может возникнуть вопрос, в чём разница докера и самой обычной виртуальной машины?

Контейнеры и виртуальные машины — это разные способы виртуализации. Только виртуалка реализует её на уровне железа, а Docker — на уровне операционной системы.

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

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

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

Если кратко перечислить преимущества контейнеризации, то это:

  • быстрое создание и развертывание приложений;
  • непрерывные разработка, интеграция и развертывание;
  • разграничение ответственности разработчиков и администраторов; ‰‰
  • однородность сред разработки, тестирования и промышленного использования; ‰‰
  • переносимость между разными облачными провайдерами и ОС;
  • сосредоточение управления непосредственно на приложении;
  • слабо связанные, распределенные, эластичные, независимые микросервисы; ‰‰
  • изоляция ресурсов;
  • утилизация ресурсов.

Все основные облачные провайдеры, такие как Amazon AWS, Google’s GCE, Microsoft’s Azure и даже Alibaba Cloud, предоставляют услуги по размещению контейнеров.

Докер работает на линухе. Чтобы использовать его на винде или макоси, нужно ставить виртуальную машину с линуксом. Теперь несколько слов о том, из каких компонентов состоит Докер:

  • Docker host — это операционная система, на которую устанавливают Docker и на которой он работает.
  • Docker daemon — служба, которая управляет Docker-объектами: сетями, хранилищами, образами и контейнерами.
  • Docker client — консольный клиент, при помощи которого пользователи взаимодействуют с Docker daemon и отправляют ему команды, создают контейнеры и управляют ими.
  • Docker image — это неизменяемый образ, из которого разворачивается контейнер.
  • Docker container — развёрнутое и запущенное приложение.
  • Docker Registry — репозиторий, в котором хранятся образы.
  • Dockerfile — файл-инструкция для сборки образа.
  • Docker Compose — инструмент для управления несколькими контейнерами. Он позволяет создавать контейнеры и задавать их конфигурацию.
  • Docker Desktop — GUI-клиент, который распространяется по GPL. Бесплатная версия работает на Windows, macOS, а с недавних пор и на Linux. Это очень удобный клиент, который отображает все сущности Docker и позволяет запустить однонодовый Kubernetes для компьютера.

Основных сущностей для работы с докером три:

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

Ещё есть специальный репозиторий для хранения докер-образов.

Вы вполне можете использовать Докер без Кубера, но Кубер даст дополнительные возможности.

Kubernetes

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

Архитектура Kubernetes
Архитектура Kubernetes. Из книги «Осваиваем Kubernetes» Джиджи Сайфана.

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

Кластер

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

Узел

Узел — это отдельный компьютер (физический или виртуальный). Его задача состоит в запуске подов. Каждый узел в Kubernetes содержит несколько компонентов, таких как kubelet и прокси kube. Все они находятся под управлением ведущего узла. Узлы — это нечто наподобие рабочих пчел, которые занимаются выполнением всех основных задач. Устаревшее название узла — миньон.

Под

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


Что же можно сделать при помощи Кубера?

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

Несколько слов о возможностях Кубера:

Мониторинг

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

Балансировка сетевой нагрузки

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

Оркестрация хранилища

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

Автоматическое развёртывание

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

Самоконтроль

Самоконтроль. Кубер умеет автоматически останавливать или перезапускать засбоивший контейнер. Девопс может задать критерии для качества работы контейнеров и Кубер будет скрывать от пользователей контейнеры, которые перестали им соответствовать. Ну и уведомлять девопса о таких событиях.

Безопасность и конфиденциальность

Безопасность и конфиденциальность. Kubernetes может сохранять и контролировать конфиденциальные данные (пароли, ключи SSH, OAuth-токены), распределять права доступа к системе. Обновление и развертывание приложений не затрагивает образы контейнеров и не раскрывает секретные сведения в конфигурации стека.

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

В целом, это всё, что пиэму нужно знать про Докер и Кубер.

2
1
1
1

Как грамотно передать проект другому менеджеру

Передача проекта
Изображение с сайта insplash.com, автор Jael Rodriguez

Получить проект в свои руки с самого начала — большая удача. Намного чаще случается, что вы устраиваетесь в новую компанию и вам проект передаёт один из штатных менеджеров. Либо вы увольняетесь и передаёте проект коллеге.

Я решил собрать в одной ментальной карте все аспекты и вопросы, которые нужно учесть при такой передаче. Вот вам pdf:

А вот исходный файл (Minjet Mindmanager).

Вот ещё хороший пост про передачу дел:

1

Какие хард скиллы нужны менеджеру проектов

Изображение с сайта unsplash.com, автор — Mier Chen

Нужно ли пиэму программирование — вечная тема для холивара. Выскажу свой взгляд на этот вопрос и расскажу про другие хард скиллы, которые могут понадобиться руководителю проектов в различных организациях (а могут и не понадобиться). Речь пойдёт, конечно, об IT-пиэме.

Сначала нужно выучить терминологию, например, по этой статье.

Софт для календарно-сетевого планирования

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

Лучшее решение, которое я видел — плагин BigPicture для Jira. Позволяет брать реальные эпики и таски из джиры и из них делать «колбаски» ганта. Состояние задач в диаграмме будет апдейтиться автоматически. Даём гостевой доступ заказчику и ссылку на эту диаграмму и наступает общее счастье.

Если этот вариант невозможен, придётся использовать Microsoft Project для винды или аналоги для макоси, вроде Merlin Project или Omni Project. Все они устроены примерно одинаково.

Принципы ООП и основы программирования

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

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

Записываться на курсы разработчиков не нужно, это скорее навредит, чем поможет.

Умение собирать требования и писать ТЗ

Скорее всего, вам придётся начинать карьеру в маленькой компании, в которой на всех экономят, в том числе, на аналитиках, поэтому выяснять, что же нужно сделать в рамках проекта и оформлять всё это в читабельное ТЗ нужно вам. Пробегите Вигерса, хотя бы по диагонали, станет легче.

Да, в скраме нет ТЗ, там есть стори. Но легче от этого не становится, фичи всё равно, нужно расписывать, если этого не делать, разработчики закодят трешню. А если закодят не трешню, на этапе приёмки заказчик вам скажет, что имел в виду не это и вы ничего не сможете доказать, придётся переделывать.

Базы данных вообще и SQL в частности

Суть большинства проектов сводится к тому, что нужно сходить в БД за данными, красиво их отобразить, дать пользователю отредактировать, потом провалидировать и аккуратно сложить обратно. То есть, всё завязано на БД.

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

Иногда бывает полезно уметь составить простенький запрос к какой-нибудь таблице с каким-нибудь условием.

Вот, например, код, выгребающий из одной базы подробную статистику трудозатрат по идентификатору доработки:

declare @id nvarchar(1000)
SET @id = 'CAS-191131-B8B3'


SELECT ROUND((SUM([Затраты])* 24), 2) as 'Итоговые затраты'
FROM [STAdministrationResource].[dbo].[vw_DO_TFS]

WHERE Затраты IS NOT NULL 
AND [Запрос.Номер CRM] LIKE @id


SELECT Роль, ФИО, Тикет, ROUND((SUM([Затраты])* 24), 2) as 'Затраты'
FROM [STAdministrationResource].[dbo].[vw_DO_TFS]

WHERE Затраты IS NOT NULL 
AND [Запрос.Номер CRM] LIKE @id

GROUP BY Роль, ФИО, Тикет
ORDER BY Роль, ФИО, Тикет

GO

Более сложные запросы нужны реже, можно попросить программиста помочь.

REST и SOAP API

Интеграция нужна практически везде, разве если только вы не делаете какой-нибудь калькулятор, да и то, хороший калькулятор должен уметь забирать курсы валют. Вам нужно разобраться, что такое API, зачем оно нужно. Советую сначала изучить SOAP, он интуитивно более понятен (на практике используется в энтерпрайзе для подруживания нескольких систем), потом изучите принципы REST (он используется на современных сайтах и веб-приложениях).

Научитесь читать и редактировать XML и JSON файлы. Если сильно не повезёт, вам могут поручить и проектирование API, у меня такое было раза три за карьеру.

Много очков в глазах работодателя даёт умение пользоваться Postman. Изучите его, он интуитивно понятный.

HTML и CSS

Разберитесь, как устроена HTML-страница, какие теги за что отвечают. Разберитесь, зачем вообще, нужен CSS. Принципы каскадирования и наследования в рамках соответствующих таблиц.

Потом научитесь пользоваться консолью разработчика, хотя бы в одном браузере. Очень важно уметь посмотреть, какие стили применились к данному элементу страницы и если надо, их подправить. Также нужно уметь пользоваться консолью ошибок, потому что первый вопрос, который вам задаст разработчик в ответ на ваше: «На сайте ошибка», будет: «Что в консоли?».

Во всяких бутстрапах разбираться необязательно.

Устройство админки популярных CMS.

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

Таблицы

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

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

Сюда же входят навыки по работе с реестром заинтересованных лиц и другими проектными таблицами.

Вот хороший телеграм-канал про секреты гуглотаблиц.

Основы девопс

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

Изображение с nonsensefiltr.tumblr.com

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

По правилам юзабилити, ничего не должно содержать ссылку на себя. Если пользователь переходит на страницу, например, «Контакты», пункт меню «Контакты» должен потерять интерактивность, это правильное и хорошее поведение. Как это сделать в wordpress? При помощи правки functions.php

Для начала, поместите в functions.php следующий код:

/**
 * Extension for wp_nav_menu()
 * Remove element "a" from current menu item
 *
 * Optional $args contents additional arguments
 * string replace_a_by - Whether to wrap the link text node, and what to wrap it with. Default 'span'.
 * string xpath        - xPath expression.
 *
 * @param $args
 * @see wp_nav_menu()
 * @return mixed Menu output if $echo is false, false if there are no items or no menu was found.
 */
function wp_nav_menu_extended($args = array()) {
    $_echo = array_key_exists('echo', $args) ? $args['echo'] : true;
    $args['echo'] = false;

    $menu = wp_nav_menu($args);

    // Load menu as xml
    $menu = simplexml_load_string($menu);

    // Find current menu item with xpath selector
    if (array_key_exists('xpath', $args)) {
        $xpath = $args['xpath'];
    } else {
        $xpath = '//li[contains(@class, "current-menu-item") or contains(@class, "current_page_item")]';
    }

    $current = $menu->xpath($xpath);

    // If current item exists
    if (!empty($current)) {
        $text_node = (string) $current[0]->children();

        // Remove link
        unset($current[0]->a);

        // Create required element with text from link
        $element_name = $args['replace_a_by'] ? $args['replace_a_by'] : 'span';

        $dom = dom_import_simplexml($current[0]);
        $n = $dom->insertBefore(
            $dom->ownerDocument->createElement($element_name, $text_node),
            $dom->firstChild
        );

        $current[0] = simplexml_import_dom($n);
    }

    $xml_doc = new DOMDocument('1.0', 'utf-8');
    $menu_x = $xml_doc->importNode(dom_import_simplexml($menu), true);
    $xml_doc->appendChild($menu_x);

    $menu = $xml_doc->saveXML($xml_doc->documentElement);

    if ($_echo) {
        echo $menu;
    } else {
        return $menu;
    }
}

А затем разместите в header.php вот такой вызов:

<?php wp_nav_menu_extended( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu') ); ?>

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

<h1 class="vcard author">
<?php if ( is_front_page() && !is_paged())
echo bloginfo('name');
else echo "";
?>
</h1>

<h1 class="vcard author">
<a href="<?php echo get_option('home'); ?>/" title="На главную страницу">

<?php if ( is_front_page() && !is_paged())
echo "";
 else 
 echo bloginfo('name');
?>

</a>
</h1>

Что мне нравится/не нравится

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

Мне нравится:

  1. Макбук и макось, несмотря на то, что за последние пять лет макось деградировала, а винда эволюционировала.
  2. Когда в любимом софте исправляют баг, который меня давно мучил.
  3. Векторные иконки с тонкой рисовкой.
  4. Проявлять равы в Лайтруме. Не так люблю фоткать, как проявлять равы.
  5. Авторизация гуглоаккаунтом.
  6. USB-С. Не понимаю, почему с этим разъёмом не делают вообще все устройства.
  7. Фонарики.
  8. Рюкзаки.
  9. Швейцарские многопредметные ножи.
  10. Лезермановские мультитулы.
  11. Блокноты Field Notes.
  12. Телеграм.
  13. Делегирование.
  14. Когда маркетинг советуется с инженерами, прежде чем анонсировать очередной звездный крейсер в ближайшем квартале.
  15. Удалёнка с редкими командировками в Москву или Питер.
  16. Когда удаётся поправить CSS так, чтобы всё на странице сразу стало выглядеть нормально.
  17. Пустой инбокс рабочей почты в конце рабочего дня.
  18. Получать посылки с Али и Озона.
  19. Структурировать информацию о чём-нибудь в виде майндмапов.
  20. Деревянные коробочки.
  21. Чаи всех сортов.
  22. Кофе из кофемашины, особенно капучино.
  23. Всё, что написал Лавкрафт.
  24. Практически всё, что написал Олег Медведев.
  25. Сериал «Как я встретил вашу маму». Фем-спин-офф не нравится.
  26. Напитки в стеклянных бутылках.
  27. Соус из смешанного кетчупа с майонезом с добавлением мелко давленного чеснока и чёрного перца.
  28. Вино, любое.
  29. Мягкий сыр и сыр с плесенью в сочетании с небольшим количеством мёда.
  30. Маринованные опята.
  31. Грушевый компот домашней закатки.
  32. Перчатки с обрезанными пальцами. 
  33. Когда покупаешь брюки и они оказываются не только впору по пузу, но и идеальны по длине и их не нужно укорачивать.
  34. Потёртые и поношенные вещи.
  35. Неяркие футболки с интересными принтами.
  36. Бафы.
  37. Когда в банковском приложении операции внутри аккаунта происходят мгновенно. Закрыл вклад и деньги в ту же секунду на карте. Не все банки так могут.
  38. Когда обнаруживаю иностранный оригинал песни, которую считал отечественной.
  39. Когда стоматолог гасит лампу и снимает с меня слюнявчик.
  40. Когда удаётся найти в Эверноте старую-старую заметку по нескольким ключевым словам.
  41. Выходить из рабочих чатов и удалять ярлыки с панели браузера после того, как уволился с плохой работы.
  42. Когда не путают «накачанный» и «накаченный».
  43. Когда на завтра не назначено ни одного созвона, можно спокойно выспаться и поработать.
  44. Писать развёрнутые отзывы о гостиницах.
  45. Обожаю, когда программисты обещают что-то сделать ко вторнику и во вторник чётенько сдают.
  46. Когда используют правильные кавычки, тире и другие символы в обычной переписке или рабочих документах.
  47. Когда у стендап-выступления есть нормальная концовка, а не просто: «У меня всё, спасибо».
  48. Когда удаётся без посторонней помощи обнаружить и распознать отсылку в песне.
  49. Средняя часть осени, когда уже довольно холодно и грустно, но пока не сыро.
  50. Когда рекрутер даёт развёрнутую обратную связь.
  51. Когда приложение возвращает внятное описание и код ошибки.
  52. Когда удаётся быстро подобрать мемас, подходящий к теме переписки и тут же его скинуть.
  53. Когда устройство умеет синхронизировать время с эталонными часами и всегда показывает точное время.
  54. Когда уличный котик разрешает себя погладить.
  55. Опросы и анкетирования, но только с честной интерпретацией результатов.
  56. Визуальные новеллы со стильной рисовкой и цветовой гаммой. Как, например, South of the Circle.
  57. Когда удаётся сделать в консоли одной командой операцию, которая бы заняла кучу кликов в графическом интерфейсе.
  58. Шрифты PT-Sans, PT-Serif и PT-Mono.
  59. Большое количество портов у устройств. Джобсовский минимализм не разделяю.
  60. Вспомнить без гугла термин, который вертится на языке, но вспомнить не получается.
  61. Жутко нравится читать интервью, в которых различные эксперты рассказывают свои мелкие и крупные лайфхаки по личной эффективности, как у них организовано рабочее место, какие программы используют и всё такое. Для примера, вот такие статьи про шеф-редактора Тинькофф-журнала и блогера Сергея Короля, а вот интервью с траблшутером и бывшим топ-менеджером Альфы Олегом Брагинским, одно удовольствие читать.
  62. Озвучка нажатий на клавиатуру винтажными звуками.
  63. Приложения для заказа такси. Использую «Убер». О том, что он теперь часть Яндекс.Такси знаю, просто не люблю супераппы.
  64. Скевоморфизм. Очень нравились иконки, «которые хочется лизнуть» и приложения с текстурами реальных материалов. Матириал и флет дизайн, конечно, стильные и строгие, но через себя не перешагнёшь, мне нравились скевоморфные приложения.
  65. Обожаю, когда удаётся узнать малоизвестного актёра. Например, вы обратили внимание, что в «Барби», в сцене, когда Барби с Кеном крадут одежду ковбоев, буквально на секунду мелькает актёр, который играл бывшего начальника Ричарда Хендрикса из «Кремниевой долины»? Ричард его ещё ударил по лицу, навредив исключительно себе.
  66. Долгое время считал кешбэк штукой, не стоящей внимания из-за слишком малых начисляемых сумм, но со временем оценил. Вернуть несколько тысяч с покупки авиабилетов или брони гостиницы довольно весело.

Мне не нравится:

  1. Обновлять макось.
  2. Болгарский перец.
  3. Свёкла.
  4. Борщ.
  5. Варёный лук.
  6. Квас из бутылок.
  7. Сочетание гречневой каши с молоком.
  8. Равнодушен к суши и роллам.
  9. Доброго времени с уток.
  10. Когда пользователь оскорбительно отзывается о мнении автора, не приводя ни контраргументов, ни своей позиции. Таких обычно баню сразу.
  11. Наволочки без пуговиц и молний. Они же сползают, их каждое утро нужно заново натягивать на подушку.
  12. Телевидение.
  13. Цензура как явление.
  14. Корпоративные vpn. Безопасность внутренних ресурсов не стоит вороха проблем, которые все эти чекпоинты создают в работе. Например, на текущей работе я использую Tunnelblick. Пока интернет устойчив, всё в порядке. Но как только у провайдера случается авария, клиент пытается восстановить подключение и зависает. И что самое мерзотное, быстро переключиться в этой ситуации на мобильный интернет тоже не получается.
  15. Аааа-канье и эээ-канье в речи.
  16. Когда начальник внезапно спрашивает, можно ли позвонить, получив утвердительный ответ, звонит и треплется сорок минут.
  17. Видеозвонки.
  18. Беспроводные мышки и клавы. Отсутствие провода не стоит постоянной проблемы с их разрядом в самый неподходящий момент.
  19. Когда в письменной речи делают ошибки на уровне начальной школы, хотя сам в школе имел по русскому трояк.
  20. Когда не склоняют баристу.
  21. Виски, даже дорогой.
  22. Форумы. Из-за того, что каждое сообщение, даже если там два слова, занимает огромную площадь, которую приходится скроллить.
  23. Подвороты.
  24. Длинные ногти и нарисованные брови у женщин.
  25. Женщины, увлекающиеся конным спортом.
  26. Когда отвечают не по тому каналу, в котором задал вопрос. Например, написал письмо с вопросом, а тебе перезванивают.
  27. Сумки со скользкими, соскальзывающими с плеча лямками.
  28. Платить наличными.
  29. Давать чаевые.
  30. Стричься не люблю с детства. В детстве у меня были густые волосы, их стрижка всегда была долгой и часто болезненной из-за плохих навыков парикмахера. Сейчас волос сильно меньше и процедура занимает минут двадцать, но всё равно, не нравится.
  31. Смесители с «гуляющей» температурой воды, которую как ни настраивай, не получается нормально.
  32. Презентации и памятки, сделанные учителями средней школы.
  33. Нарезки фото под музыку.
  34. Живые очереди.
  35. Фраза: «Ставьте лайки, жмите на колокольчик, делитесь видео с друзьями». Я не дебил и в состоянии сделать это без призыва, если видео хорошее.
  36. Когда запись набирает слишком много лайков и в комменты нобигает глубинный народ.
  37. Когда кто-то выкладывает фото алкоголя в разделе «товары для детей» или другую неправильную выкладку, считая это смешным.
  38. Когда кто-то выкладывает фото ценника, в котором «говядина» сокращена до «гов-на». Первые сто раз было смешно, сейчас нет.
  39. Копирастия и жадность.
  40. Когда открывая посылку с Али или Озона, нечаянно повреждаешь содержимое ножницами. Это так грустно, что я стараюсь открывать упаковку руками, задействуя ножи и ножницы только на гарантированно безопасных участках.
  41. Когда поле ввода находится в самой нижней части экрана ноутбука. Разрабы, алё, у меня прямо перед этим местом находятся кисти рук, я ни черта через них не вижу, что ввожу!
  42. Когда кто-нибудь даёт ссылку на гугдолдок, но забывает открыть доступ.
  43. Фразу: «Срок — вчера».
  44. Формат webp для изображений. Когда весь софт научится работать с ним, как с обычными джипегами, уберу из списка.
  45. Со времён ЖЖ грущу, когда меня отфренживают. Сам отфренживаю в исключительных случаях.
  46. Откровенно скучаю на супергеройских фильмах.
  47. Русская классика про страдашки, практически вся, за исключением Чехова и Булгакова.
  48. Сайты по поиску работы, на которых нет импорта резюме из HH или Хабра и нужно весь опыт вбивать руками.
  49. Двойные пробелы между словами.
  50. Отступ в начале абзаца, «красная строка».
  51. Когда люди пытаются решать ментальные проблемы при помощи алкоголя, брака или рождения детей.
  52. Новояз — всевозможные хлопки, шлепки, задымления и подтопления. И вообще, когда официальные лица сообщают что-то этим мудацким казённым языком с транспортными средствами, сожителями и палочными изделиями. Особенно злит, когда вместо одного слова «деньги» пишут или говорят «денежные средства́», ещё и с неправильным ударением.
  53. Системы штрафов на сколько-нибудь интеллектуальных должностях. Алё, специалисты не будут работать получше оттого, что вы заплатите им поменьше, они озлобятся и свалят!
  54. Когда путают вегетарианцев с веганами.
  55. Ходьба быстрым шагом. Если мне нужно куда-то прям идти, выхожу заранее и спокойно прогуливаюсь до целевой точки.
  56. Когда кто-то всерьёз говорит о знаках зодиака и пытается классифицировать людей в соответствии с этими знаками.
  57. Аниме.
  58. Когда наши локализаторы «художественно» переводят название фильма или сериала, напрочь его испортив. Да, бывают жемчужины, вроде перевода «Die Hard» как «Крепкий орешек», но чаще бывает, когда «After life» переводят как «Жизнь после смерти», когда сериал не про призраков, а про принятие. Или «Orphan» как «Дитя тьмы», проспойлерив сюжет. Ну, вы поняли.
  59. Когда курьер, доставляющий еду, забывает включить терминал для оплаты безналом в пути и включает его в моём присутствии, заставляя ждать несколько минут, пока тот загрузится.
  60. Когда у пользователя на аватарке полностью белый или чёрный квадрат. Это вызывает мысли не о том, как внутренне глубок автор, а о том, что соцсеть опять глючит и аватарка не грузится. По этой же причине не люблю беззвучные заставки у фильмов. У меня слетели кодеки или вышли из строя колонки? Я случайно замьютил звук? Почему нет звука?
  61. PDF-ки, из которых нельзя копировать.
  62. Когда в маленьком магазинчике, в который я хожу за кефиром, минералкой и мандаринами, одновременно со мной появляется бурундучиха, которая вместо того, чтобы взять корзинку, спокойно пройти по всем полкам и встать в очередь, начинает хватать по одному товару и таскать на кассу, занимая стол продавщицы. Извините за сексизм, но дяденек, которые бы так делали, не замечал.
  63. Не умею и не люблю делать селфи на смартфон. В основном, из-за широкоугольных искажений. Мне кажется, что портреты надо снимать нормальным длиннофокусным объективом.
  64. Сокращалки ссылок. Одно дело, когда их используют по прямому назначению, например, когда ссылка очень длинная и её надо разместить в посте на сервисе с ограничением по количеству знаков. Это норм. Но очень часто в сокращалки заворачивают ссылки на нормальных сайтах, чтобы скрыть реферальную часть. Дело в том, что через какое-то время эта сокращалка перестаёт работать и ссылки становятся недоступными.
  65. Терпеть не могу людей, носящих деловые рубашки и пиджаки в комплекте с рваными джинсами. Как это понимать? Вы деловой человек, но немного панк? Однажды, вообще, видел человека в рубашке, пиджаке и зашитых рваных джинсах. Как это понимать, не знаю вообще.
  66. Когда в социальной сети постят голую новость. Новость я могу прочитать на новостном канале, от пользователя хотелось бы услышать мнение. Хотя, после того, как за мнения стали давать реальные сроки, этот пункт несколько утратил актуальность.
  67. Когда неделю назад открытая инфоцыганская шарашкина контора называет себя «Академией».
  68. Когда на концерте классической музыки оркестр играет что-то забойное и публика начинает хлопать в такт. Чрезвычайно раздражает, я всё-таки пришёл слушать музыку, а не хлопки. Аплодисментов в конце выступления вполне достаточно.
  69. Кальянный гнусавый рэп.
  70. Специалисты-«звёзды», особенно программисты. За тенденцию внезапно увольняться одним днём, после чего встаёт работа над огромным куском продукта или целым продуктом.
  71. Не использую автодополнение ввода на смартфоне (его почему-то называют Т9, хотя это другая технология).
  72. Не разделяю тренд любви к путешествиям. Каждый раз, когда надо покидать пределы Калининградской области по работе, испытываю лёгкий стресс. Отпуск провожу тут же, на побережье Балтийского моря, с котами, вином и строганиной.
  73. Категорически не нравится, что людей, ведущих паблики с мемами, стали называть «админами». Админ — это системный администратор, уважаемая профессия. С другой стороны, хорошее альтернативное слово придумать не могу. Ближе всего по смыслу «контентер», но это слово даже выговорить трудно.
  74. Когда в плеере аудиокниг нет таймера сна. То есть, нельзя выставить, через какое время после начала воспроизведения звук затухнет и вырубится. Потому что слушаю перед сном. Нет таймера — плеер идёт лесом, какая бы богатая библиотека к нему не прилагалась.
  75. Ворота и шлагбаумы во дворах многоквартирных домов. Проблемы с доездом экстренных служб, каждый третий курьер тупит возле таких ворот, а пользы от них самый минимум и только владельцам автомобилей. Я за дешёвое такси и комфортный общественный транспорт.
  76. Маленькие собаки. Сценарий обычно такой. Мне навстречу идёт человек, ведущий на поводке это существо. Зная, что будет дальше, я обхожу их по дуге. Но обычно дуги недостаточно и пёс меня звонко облаивает. Я его могу прибить одним пинком, но всё равно, рефлекторно вздрагиваю. Хозяин орёт на собаку, мол ты чего гавкаешь, напугал человека. Мы расходимся и я иду дальше с плохим настроением. С большими собаками таких проблем обычно не возникает.
  77. Злоебучие экселевские простыни. Ничто так не демотивирует меня, как необходимость заполнить очередную очень нужную эксельку на восемь вкладок. Особенно грустная история, когда десять пиэмов пыхтят над этими экселями, а потом лид пиэм всё это потом мерджит в ещё более злоебучую и огромную простынь и выдаёт топ менеджменту. Да, и ещё. Если для того, чтобы понять, как заполнять вашу таблицу, нужно посмотреть полуторачасовое видео, вы совершенно точно свернули не туда.
  78. Когда кто-то в ебучую экселевскую простынь пишет даты, где месяц обозначен номером. У меня совершенно нет ассоциаций с этими 12.08, 06.06 и так далее. Ну, 01, это январь. 12 — декабрь. 04 — апрель, я в нём родился. Но вот для всех остальных месяцев надо высчитывать на пальцах. Сам всегда пишу дату полностью, 12 августа, 06 июня и так далее.
  79. Умею определять время по часам со стрелкой, но из-за того, что при каждом взгляде нужно на секунду задумываться, предпочитаю циферблаты с численным временем.
  80. Когда используют слово «нереально» в значении «реально». Как тут, например.
1

Десктоп-тред

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

Самый старый десктоп, 2009 год (кликабельно):

Рабочий стол 2009 год.

Это экран старенького нетбучика Самсунг. Уже не берусь вспомнить, какой именно модели. Был куплен в качестве временной замены сгоревшему Фуджицу Сименс, но нет ничего более постоянного, чем временное. Используется забытая утилита для организации панелей ярлыков, по двойному клику по рабочем столу, левая и правая панельки исчезают.

Пойдём слева направо, сверху вниз.

  • Бапки. Это приложение Вебмани. Когда-то расчёты за рекламу в ЖЖ производились именно на вебмани. Я не знаю на 100 %, работает ли он сейчас в РФ, была новость, что у аффилированного банка отозвали лицензию.
  • Блог. Это ЖЖ-клиент Семаджик. Когда-то был самым удобным способом постить контент в LiveJournal. Жив до сих пор, можете его скачать и насладиться.
  • Скайп. Несмотря на запредельную глючность, тяжеловесность и неудобность, почему-то жутко популярен в РФ, прошёл со мной сквозь все эти годы. Сейчас используется для созвонов с мамой, в Telegram почему-то эхо.
  • Резюме. hh на тот момент не был популярен, вакансии разыскивались чёрте-где и резюме засылалось по почте, аттачем. В 2009 году я это делал так часто, что держал резюме на десктопе.
  • Фотошоп. Не берусь сказать, какой версии. До распространения адобовской подписки в РФ было ещё далеко, пиратский, конечно.
  • Асидисюк. Виндовая гляделка фотографий ACDSee Pro. Про версия, потому что я тогда активно фотографировал и конвертил равы. Асидисюшный рав конвертер не серил фотографии, в отличие от адобовского камера рава.
  • Дропбокс. Моё первое облако. Тогда ещё не разросшаяся софтина для синхронизации определённой папочки с облачным сервером для использования откуда угодно. Прошла со мной сквозь годы.
  • Аська. Это был QIP Infium. Когда-то минималистичный, но потом, по мере осваивания быдлокодинга автором, обросший свистелками и перделками IM-клиент. Использовался вместо телеграма. Больше не поддерживается, но на всяких софтпорталах его можно скачать.
  • SMS. До распространения мессенджеров, самым надёжным способом передать инфу другу, были эсэмэски. Безлимитных пакетов эсэмэсок тогда не придумали, они были платными, но можно было слать их с компа, разгадав несложную капчу. Можно было и с сайта, но через специальное приложение это делать было проще. Название программы утеряно в веках.
  • Электропочта. Это был The Bat. У меня было несколько ящиков, с которых этим самым батом забиралась почта. Софтина жива до сих пор.
  • Мамбл. До всяких там Клабхаусов мы прекрасно собирались в Мамбле для голосового общения. Я был подключён к некому каналу, на котором практически всё время какие-то странные люди сутками рубились в Arma, а по субботам читали стихи. Жив до сих пор, хоть и несколько потеснён более технологичными Zello и Discord.
  • Опера. Когда-то был одним из самых быстрых браузеров. Потом был заменён мной на более технологичный Файрфокс.
  • Командир. Управлять файлами в винде сколько-нибудь эффективно можно было только при помощи Total Commander. Когда я его увидел впервые, он ещё назывался Windows Commander и это было сильнейшее впечатление. Возможности, превосходящие Нортон Коммандер и при этом в виндовом интерфейсе, крутота же! Существует до сих пор, но несколько утратил актуальность с повсеместным переходом в облака.
  • Планировщик. Microsoft Outlook. Смартфоны ещё были в зародыше, я пользовался коммуникатором Asus P526. Аутлок умел с ним синхронизироваться при помощи специальной софтины. Можно было вести записную книжку, календарь и список задач на компе, а перед уходом из дома синхронизировать с коммуникатором, подсоединив кабель, разумеется. Живее всех живых.
  • Ворд. Microsoft Word. Специализированные редакторы для писателей ещё не появились, тексты писались в ворде. Жив, хоть и утратил актуальность из-за гуглодоков.
  • Истории болезней. Записная книжка OneNote. Так называлась, потому что я мнил себя психологом и анализировал разных знакомых, систематизируя инфу в этом заметочнике. Оброс функциями, стал облачным, жив.
  • Скриншотер. Я предположу, что это Ashampoo Snap, утилита для удобной работы со скриншотами. Тогда я частенько писал юзабилити-аудиты разных продающих сайтов и при помощи этой скриншотилки, снабжал свои разборы скриншотами со стрелочками. Жив до сих пор, мной уже не используется.

Десктоп 2012 года (кликабельно):

Рабочий стол 2012 г.

Нетбук тот же. Здесь используется аналог маковского дока под названием Rocket Dock. Последняя версия датируется 2007 годом, но я его до сих пор ставлю на виндовые компы. Пробежимся по софту:

  • OmmWriter — очень располагающий к писанине текстовый редактор. К сожалению, очень медленно стартует и имеет весьма скудные настройки. В общем, порт с макоси во все поля. Жив до сих пор, мной использоваться перестал.
  • Тёмная комната — на случай, когда хочется чего-нибудь написать, но времени запускать OmmWriter нет. Выветрилась из памяти, нагуглить не смог. Видимо, больше не поддерживается.
  • Microsoft Word 2007 — с ним всё понятно.
  • Microsoft Outlook — раньше активно использовал для тайм менеджмента, сейчас этот ярлык не используется.
  • Skype — не люблю эту софтину, однако всё ещё используется для деловых переговоров.
  • QIP Infium — мультипотокольный клиент. Тяжеловат, глючноват, но привычен.
  • Firefox — тормозная, но функциональная лисица.
  • ACDSee Pro — гляделка, графический редактор и рав конвертер.
  • Ashampoo Snap — идеальная скриншотилка, всегда должна быть под рукой.
  • Total Commander — не понимаю людей, пользующихся Проводником.
  • Дальше два ярлыка радмина и извлечение флешки.

На столе лежат три книжки, читаемые в тот момент:

  • Госпитальная хирургия. Интересовался устройством человека. В основное книгохранищие эта книга не перекочевала и была потеряна.
  • Законы Паркинсона. Винрарнейший труд про законы, управляющие бюрократической организацией. Работа занимает всё отведённое ей время, да.
  • Якоб Нильсен. Веб Дизайн. Нестареющий учебник, из которого можно почерпнуть ключевые принципы юзабилити.

Десктоп 2017 года (кликабельно):

Рабочий стол 2017 г.

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

  • Появился текстовый редактор Sublime Text. Иногда используется и сейчас, когда нужно обязательно написать текст без всякого форматирования.
  • Бабочка Ulysses, специализированного редактора для писателя. Писал о нём в обзоре своих любимых текстовых редакторов для мака.
  • Зелёный слоник Эвернота.
  • Самый удобный инструмент для ведения личного дневника, DayOne.
  • Телеграм в представлении не нуждается.
  • Маковский календарь заменил Outlook.
  • Team Viewer. В основном, чтобы помогать маме. В РФ больше не работает, я его заменил на VNC Viewer.
  • uTorrent же.
  • Оффлайновый музыкальный плеер VOX. У него почему-то до сих пор не сохраняются изменения в плейлисте, если поменять порядок песен, в остальном хорош.

Десктоп 2022 года (кликабельно):

Рабочий стол 2022 г.

Более современный макбук, 14-дюймовая прошка 2021 года, подробней о нём в обзоре. Мне надоело подбирать себе красивые обои, поставил Unsplash Wallpaper и они теперь каждый день новые. Иконки в трее аккуратно прибраны при помощи Bartender, на виду только самое важное.

Что добавилось в доке:

  • Agenda – штуковина заменяет листочек бумаги для быстрых записей.
  • Появился дефолтный почтовый клиент Mac OS, потому что gmail сделал свой веб-клиент грузящимся по полминуты.
  • Todoist – я долго искал идеальную тудушку, которая бы работала на маке, в вебе, на смартфоне, чтобы её можно было шарить коллегам, чтобы описания и комменты к задачам, чтобы теги были, чтобы была красивая и удобная. Todoist оказался идеален, но несколько жаден. И когда я уже был морально готов купить подписку, они сделали аттракцион невиданной щедрости, сделав самые ценные функции доступными бесплатно.
  • Teams – кривоватый майкрософтовский мессенджер, используется на текущей работе и будет использоваться до конца 2022 года, после чего уступит место скайп фор бизнес.

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

Должностные инструкции, как писать

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

Бизнес-проблема

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

Указание должности

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

Пишите простым языком

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

Пишите, как делать правильно

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

Доступность

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

Краткость

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

Простота названий

Давайте файлам или страницам с инструкциями очень простые и понятные названия. Книги Ильяхова про пиши сокращай вам в помощь. Если инструкция описывает, как давать оптовым клиентам скидки, назовите её: «Скидки для оптовых клиентов». Не надо придумывать МБОУ ГБУ ЛСДУЗ ЙЯФЯЮ.