Рабочие места: Максим Шамаев, технический директор и директор по информационным технологиям X-Cart
Гость рубрики «Рабочие места» – Максим Шамаев. Вот уже более 10 лет он занимается разработкой в X-Cart. Кроме того, Максим принимал участие в таких проектах, как LiteCommerce и Ninjawidget (семейство модулей для Ecwid).
Если вы тоже занимаетесь разработкой ПО, то для вас этот пост обязателен к прочтению. Максим очень подробно рассказывает о своем рабочем софте, «железе» и непосредственно процессе работы.
Как выглядит ваше рабочее место?
Ну-с, начнем с рабочего места:
Какое ПО используете?
О, здесь все просто! :) Но начнем не с ПО, а с железа.
Железо
Это ноутбук Lenovo IdeaPad Y560p. Ноуту 3 года, но он один из последних ноутов на десктопной версии Core i7. Как следствие, ноутбук достаточно мощный, за счет большего количества ядер. Я в него доставил памяти до 8 Гб, и в качестве основного винта поставил SSD. Родной винт встал вместо DVD.
К ноутбуку прилагается:
- беспроводная клавиатура A4Tech – только у этого производителя есть подходящие мне клавиатуры, с раскладкой, к которой я привык. Да, клава простая, но на другой я начиная дико промахиваться. :) С учетом моей высокой скорости печати – это критично.
- беспроводная мышь Logitech.
- подставка с вентилятором для ноутбука.
Конфигурация дешевая (брал 3 года назад за 30 т.р.), мощная (бьет современные ноутбуки на Core i5 / Core i7 с низком энергопотреблением), но тяжелая по весу. Однако за счет рюкзака, мобильность получается приемлемая. В соседнюю комнату с ноутбуков не подойдешь, но в другой офис приехать – это запросто.
Режим работы ноутбука – без выключения. Закрыл крышку – уснул. Открыл – проснулся. Засыпает/просыпается за 5 секунд, за счет SSD.
ОС и общая концепция софта
Операционная система – Windows 7 (стояла на ноуте от рождения). Устраивает всем, менять не собираюсь. На Windows 8 тоже переходить не собираюсь, ибо там нет чего-то такого, что прям вот мне позарез надо было бы.
Далее самое интересное. Так как я все же сильно программист, много делаю для X-Cart 5, много чего исследую, мне нужен linux-сервер, где я был бы, как минимум, root. Причем, лучше если серверов будет несколько. И надо, чтобы все это могло работать без Интернета, и, чтобы, если я накосячу на сервере, его падение было бы максимально дешевым. Выход прост – виртуальная машина.
В качестве виртуальной машины я использую VirtualBox, ибо достаточен и бесплатен. Получившаяся связка Windows + VirtualBox обладает следующими плюсами:
- Мне начхать на то, упадет виртуальный сервер или нет. Я его подниму еще раз.
- У меня может быть много виртуальных серверов, а мой ноутбук позволяет спокойно держать 4 активных разных виртуальных сервера. Больше мне ни разу не понадобилось. :)
- На Windows я могу позволить себе все программы, которые мне нужны, от Photoshop до Microsoft Office.
За годы работы такая конфигурация показала себя лучше, чем чистый Linux или чем Linux + VirtualBox, так как на Linux не поставишь Photoshop (да, я знаю про GIMP, но он меня не устраивает) и Office (да, я знаю про аналоги, но иногда они не могут открыть то, что мне надо). А ситуация, когда в Linux есть виртуальная машины с Windows, меня не устраивает, так как Photoshop в ней работает дюже медленно.
С Linux была веселая ситуация: изначально я поставил Ubutnu, что-то типа 10.04, как основную ОС, и оставил Windows, как вспомогательную ОС. Все работало хорошо, пока я, собственно, не уронил Ubuntu. Окей, восстановил. Еще раз уронил. Еще раз восстановил. Где-то на 10 разе поставил VirtualBox. Окей, проработал так год. А дальше стал нужен Photoshop, Microsoft Word и еще всякое по мелочи.
Окей, сначала перегружался из одной ОС в другую. Потом начал думать, чтобы поставить Windows в VirtualBox. Посмотрел, сколько ресурсов жрет Photoshop, понял, что не прокатит. И после этого принял решение, что надо все это пересобрать по-другому. После этого получилась текущая конфигурация. Она работает уже 2 года в таком режиме, и я не разу не пожалел о переходе, и ни разу не было такого, что я чего-то не могу сделать.
Софт для работы
Моя среда разработки – это комбинация из следующих компонентов:
- VirtuaWin – обеспечивает мне виртуальные рабочие столы с переключением по Ctrl+Shift+стрелки. Рабочих столов у меня 10: 2х5 матрица, где 1 стол – верхний левый угол, а 10 стол – нижний правый;
- putty – консоль до виртуальной машины. Их я размещаю парами на 4 рабочих стола (3, 5, 7, 9 столы), в результате, у меня 8 консолей до текущей виртуальной рабочей машины;
- vim внутри putty – чистая консоль, без мыши. Долгое время работы, знание кода и моя личная высокая скорость позволяют мне очень быстро работать в нем;
- браузеры – chrome + firefox – на 2 других рабочих столах (8 и 10). Основной браузер – chrome;
- скайп – 2 стол;
- truecrypt – криптоконтайнер, шифрованный достаточно стойко, чтобы я там хранил все свои пароли. Соответственно, на 1 столе я обычно открываю файл с паролями; :)
- photoshop (если нужен) – 6 стол. Там же находится плеер foobar200; :)
- ngrok.com – это клиент для сервиса ngrok, стоит внутри виртуального сервера и прокидывает виртуальный сервер наружу – он получает URL вида 0123456789abcdef.ngrok.com. Это весьма полезно для отладки внешних сервисов и для демонстрации кому-то чего-либо локального;
- прочий инструментарий (winscp, WinCacheGrind, jmeter и пр.) – 4 стол.
В результате, я всегда знаю, что где открыто. Среди 8 терминалов тоже есть деление:
- терминалы на 3 столе – mysql консоль + сервисные скрипты (X-Cart имеет набор макросов, которые сильно сокращают время разработки, как раз второй терминал на 3 столе служит для их запуска) + запуск тестов + запуск code sniffer’а;
- терминалы на 5 столе – просмотр логов, операции с файлами, настройки серваков и прочее;
- терминалы на 7 и 9 столах – для редактирования чего-либо, с помощью vim.
То, что еще можно отметить, если рассматривать софт по функционалу:
- Почта – наша компания использует Google apps for business, поэтому у меня вся почта в gmail. Просматриваю я ее через браузер. Такой подход избавляет меня от привязки к одной инсталляции почтовика и позволяет использовать одни и те же почтовые настройки выезде, на всех компьютерах, планшетах и телефонах. Все полезные ссылки – просто в bookmarks в chrome.
- Быстрый обмен сообщениями – skype + hangouts.
- Календарь – стандартный Google calendar (в браузере), из корпоративного аккаунта.
- Быстрые записки – есть 2 текстовых файла: 1 лежит открыто на винте, второй в криптоконтейнере. Ссылки на них есть прямо на рабочем столе. Открываю я их обычно на 2 столе.
- Управление рабочим временем – использую trello.com, канбан доска в браузере. Она бесплатна и очень функциональна. Служит мне записной книжкой как моих дел, так и каких-то больших задач. Умеет привязывать карточку к дате.
- Twitter / facebook* / vk / other – отдельных клиентов нет, все через браузер. Открываю их не чаще 1 раза в день. Единственное, бывает, использую vk как плеер. :)
Отвечая на вопросы, которые могут возникнуть:
- Нет, я не использую shared folders в VirtualBox. Данные, которые мне ценны, хранятся либо в bitbucket / github, либо их копии лежат в Windows и постоянного бэкапа не требуют. Иных данных у меня нет. Файлы между хост-машиной и гостевой я перетаскиваю при помощи WinSCP.
- Что-то ценное – это либо криптоконтейнер, который я бэкаплю дома, либо Google drive. Так как у нас корпоративный аккаунт в Google drive, то у меня там 30 Гб места. :)
- Система контроля версий – git. Хостинг удаленных репозиториев – bitbucket.org. Да, он проигрывает github по функционалу, но он дешевле, и у нас там корпоративный аккаунт. Более того, для ситуации, когда у вас МНОГО удаленных репозиториев, bitbucket значительно выгоднее github.
- Плагины в браузере – стандартный набор для разработчика: Web developer + PerfectPixel + YSlow + Page speed + Speed tracker + Awesome screenshot.
- Windows 7, потому что меня все устраивает, в WIndows 8 нет ничего, что мне бы пригодилось. Тот же bitlocker мне не нужен, так как криптоконтейнер делает все, что мне надо.
- Почту я просматриваю достаточно часто. Но часто я просто смотрю заголовки и по ним принимаю решение, что прочитаю это в обед. Поэтому именно читаю почту я 2-3 раза в день. Но мониторю, что есть в ящике, примерно 1 раз в 15-60 минут, в зависимости от того, чем я сейчас занимаюсь.
- В скайпе и hangouts я всегда. Если меня там нет, значит, я сплю, либо еду куда-то, либо умер вместе с ноутом. :) Причем, часто я ноут не выключаю на ночь, так что создается впечатление, что я всегда онлайн.
Отдельно стоит отметить мою приверженность vim’у. :) Да, я знаю про преимущества PhpStorm и подобных IDE, но пока никак не могу собраться и перейти на них. :) Более того, привычка настолько сильная, что все попытки перейти у меня вызывали жуткое отторжение. :) Не, ну на самом деле, :w я набираю быстрее, чем Ctrl-S. :) Вероятно, если бы код для меня был незнакомый, я бы начал сразу с использования PhpStorm… но код я знаю хорошо, его структура изначально понятна и проста, поэтому, фактически, часть функционала, который берет на себя IDE, я реализую сам, и меня это не тянет. :)
И еще, отдельно насчет мобильности. Когда мне не хватает батареи ноутбука, но нужен доступ до всех сервисов, меня спасает планшет (Acer Iconia Tab A501). Интереснее всего получается с моими лекциями. Я читаю лекции в УлГТУ, и там мне иногда достаются аудитории, где нет розеток. В этом случае я просто использую планшет – его батарее и функционала хватает с избытком. Причем, в нем есть и почта, и Google docs, и клиенты для всех нужных сервисов, от trello до skype. Виртуальная машина – это единственное, чего у меня нет на планшете. :) Но в этот момент она мне не нужна. Как не нужна и в других похожих ситуациях – на конференциях, в поезде или самолете.
Ну, и для передачи духа – скриншоты. :)
Как вы организуете свое время?
Общие подходы и принципы просты, выработались с годами. Где-то год назад я прочитал про GTD и немного поменял свои процессы, правда, GTD-совместимыми они не стали. :)
Итак, планирую я все в trello, деля задачи на тактические (ближайшие 2 недели), стратегические (надо сделать за полгода) и мысли (там всякий хлам, который я периодически просматриваю).
До trello я ввел записи в 3 текстовых файлах. Потом перешел на trello, так как я там стал вести планирование отдельных проектов и, чтобы не вести записи о проекте и о его причинах отдельно, в разных системах, перенес все в trello.
Быстрые записи мыслей – текстовые файлы. Позже я их очищаю, вынося что-то в trello, если надо. Фактически, это буфера обмена, куда я копирую что-то для позднего анализа. Быстрее этих файлов ничего нету. Они бьют и трелло и бумажный блокнот. :)
Само планирование у меня построено так, что есть таски, которые никогда не исчезают. Это таски по пересмотру трелло и текстовых файлов. :) Пересмотр – примерно 1-2 раза в неделю. Часто – в субботу. На выходе я получаю пересортированные и измененные карточки в trello + пустые текстовые файлы. Из внешних «возбудителей», которые могу повлиять на мою работу, кроме skype, почты и личного обращения, можно выделить:
- youtrack – в нем команда разработки X-Cart 5 управляет своими задачами и планирует будущее;
- statuscake.org – мониторинг нашей инфраструктуры.
Как результат, у меня все электронное, бумаги нет вообще. :)
Какой у вас режим дня?
6:00 – просыпаюсь. 7:30 – отвожу дочь в школу. 8:00 – я на работе. Начинается моя инициализация:
- посмотреть почту, ответить, если надо;
- посмотреть календарь;
- освежить таски на день, пересортировать применительно ко дню;
- определиться, что из тасков сегодня буду делать;
- смотрю youtrack, statuscake и пр.
9:00 – работа по таскам. 12:30 – обед. 13:30 – еще раз смотрим почту, youtrack, statuscake и пр. 14:00 – возвращаюсь к работе по таскам. 18:00-19:00 – ухожу домой, ибо хочется ужина. :) 21:00 – возвращаюсь к работе. 23:00-00:00 – время сна. :) Кроме этого, часто работаю вечерами на выходных. В это время я читаю какие-то блоги, смотрю библиотеки, читаю changelog’у новых версий каких-то библиотек и прочее. Скажем так, оглядываюсь вокруг, что нового за неделю. Тогда же я пересортирую трелло и опустошаю текстовые файлы.
Насчет продуктивности и прокрастинации.
В принципе, если я выспался, то я продуктивен весь день до ночи. В этом мне помогает музыка. Я любитель Power metal, а это энергичный стиль. :) Ну, и вообще, metal уважаю. :) По конкретным группам – Manowar, Running wild, Iron Saior, Powerwolf, Ross the boss, W.A.S.P, U.D.O, Warlock, Virgin Steele, Sister sin, Firewind, Axxis, Battle beast, Amaranthe, Lordi.
Даже если есть прокрастинация, если залип, затупил, - музыка тебя заведет.
Конечно, рецепт не для всех, но кому-то поможет. :) Единственное, у музыки есть минус – я часто в наушниках и не слышу, когда меня зовут. Но ping через skype помогает отлично. :)
Какое место в вашей жизни занимает спорт?
Спорт… Здесь все плохо. :) Никак не могу собраться и заняться чем-нибудь – много времени съедает работа. Периодически я делаю набеги в качалки, но меня хватает максимум на месяц, дальше снова надо че-то срочно делать, и я это бросаю. Хотя где-то год назад я начал кататься на коньках, но тут произошел некоторый фейл: если с зимними коньками все было хорошо, то летом, встав на роликовые коньки первый раз в жизни, я с ходу сильно сломал левую руку. В принципе, это не сильно на меня повлияло, хотя мне поставили аппарат Илизарова. Я работал в больнице уже на третьи сутки, хоть и одной рукой. Ну и дальше я с этой рукой, в аппарате, был и на нашем корпоративе и на Ulcamp 2013. Но с летними коньками я решил после этого завязать – больно дорогие падения. :) Свободное или «вынужденно» свободное время я убиваю, читая что-то на планшете. Часто это facebook*, habrahabr, какие-то тематические блоги, статьи по технологиям, научно-популярные статьи. Если хочется выключить мозг, раскладываю пасьянс. По выходным играю в компьютерные игры. Обычно это какая-то старая RPG. Сейчас это Might and Magic 6. Проходить я их могу месяцами, из-за недостачи времени. :) Одно время играл на электрогитаре, но прервался после перелома. Вернулся к игре где-то в районе октября 2013, но пришлось бросить уже в декабре… Вот, думаю, в ближайшее время надо будет снова начать заниматься (для сломанной руки будет полезно).
Лайфхакерство от Максима Шамаева
Если пройтись по стандартным вещам (книги/подкасты/видео), то дела обстоят так.
Книги
Я технарь, поэтому литература сугубо техническая. Это все классика, которую полезно перечитывать:
- «Приёмы объектно-ориентированного проектирования. Паттерны проектирования» – Э.Гамма, Р.Хелм, Р.Джонсон, Д.Влиссидес.
- «Рефакторинг. Улучшение существующего кода» – М.Фаулер.
- «Совершенный код» – С.Макконел.
Подкасты
Здесь тоже все классическое, но мало, так я слушаю мало, больше читаю:
- RadioT$
- IT-компот.
Видеоподкасты
Здесь все плохо. Чего-то знаменательного я выделить не могу… Что-то такое, что прям вот надо посмотреть, такого нет. Чаще что-то важное встречается в виде слайдов, но не в виде видео. Хотя, возможно, мне видео неинтересно. :)
Но, на самом деле, подбор информации – это очень индивидуально.
Например, мне неинтересно многое из бизнесс-литературы, из маркетинга. Мне это неинтересно, потому что я технический специалист. Но мне интересны именно технологии, новые подходы, тенденции. А это чаще можно выловить в каких-то блогах, твиттере и прочем. На видео и подкастах это появится через месяцы. Но эта ловля – это, опять-таки, поиск и переходы по ссылкам. Например, нашел интересный доклад, посмотрел твиттер автора, посмотрел его блог, нашел что-то интересное. Но стоит ли подписываться на этот блог? Нет, не стоит, так как информация там появляется раз в полгода. Ибо все спецы – они занятые. Просто так никто не пишет. Да и не появляется в жизни конкретного спеца что-то интересное, о чем и написать стоит и что мне будет интересно. Поэтому, каких-то блогов, которые я читаю постоянно, нет. Ну, разве что, вот этот – @developerWorks . :)
Существует ли конфигурация мечты?
О, здесь все просто! :)
Я технократ, поэтому хочу простого – мой ноутбук, но в формате носимого компьютера. При этом, должна остаться физическая клавиатура, мышь должна заменить перчатка. И я готов к тому, что компьютер сохранит вес в 3-5 килограмм, притом, что он размещается в рюкзаке от ноутбука. Автономность – не менее 16 часов. Размер картинки – примерно как 80-ти дюймовый монитор на расстоянии метра. Принцип построения картинки в очках – дополненная реальность. Связь – 4G.
При такой конфигурации я стану более мобилен, смогу работать вообще везде, смогу одномоментно видеть больше информации, смогу отказаться от мышки в пользу более удобного устройства позиционирования.
Совет лайфхакерам
Совет простой: вам должно быть интересно. Вы должны хотеть то, что вы делаете. Более того, жаждать работы, мечтать о достижении целей. Если на работу вы ходите лениво, значит, это не ваша работы или вы устали. Поэтому, либо ищите другую работу, либо отдохните. Если отдохнули, а все равно не прет, значит, таки не ваша работа. :)Ну, и слушайте Power metal. :) Нет более энергичной и пафосной музыки, настраивающей на работу. :)
*Деятельность Meta Platforms Inc. и принадлежащих ей социальных сетей Facebook и Instagram запрещена на территории РФ.
Лучшие предложения
12 пар утеплённых кроссовок, в которых будет комфортно зимой
Надо брать: набор инструментов Deli всего за 1 552 рубля
Цена дня: термос Feijian за 1 656 рублей
Отличные вертикальные пылесосы, которые стоит купить в 2024 году
Отборные скидки: выгодные предложения от AliExpress, Hoff, ZRN Man и других магазинов
10 утяжелённых одеял для комфортного и спокойного сна
Цена дня: беспроводной пылесос Dreame Trouver J10 за 4 983 рубля
Распродажа 11.11 продолжается: 12 моделей одежды с хорошими скидками
Выгода до 1,4 миллиона рублей, быстрый переезд и ещё 3 причины купить квартиру в кварталах ПИК
РекламаЛол, это что, 2к17? Квиз, от которого можно поймать острый приступ ностальгии
Почему стоит учиться во взрослом возрасте: 5 причин от «Школы 21»
РекламаКак покорить гору и вернуться на землю: всё о подготовке к первому восхождению