Мой Восторг от IT

September 24, 2018

Недавно прочитал статью на Харбе Моё разочарование в софте и захотелось написат мини-ответ, про свой восторг от софта. Автор приводит примеры из веба, ноды, электрона, а по мне, все что как раз происходит в этих направлениях, нужно называть золотым веком программирования, так как с каждым днем там все лучше и интереснее. По крайней мере если выбирать эпоху, скажем 70-е, 80-е, 90-е, 0-е, или сейчас, я бы хотел заниматься программированием именно сейчас :-)

Конечно, есть перегибы, есть node_modules тяжелые как само бытие, докер под маком с тремя слоями виртуализации, руби мой любимый, который на JSON в пару мегов жрет памяти мегов 300, и прочее. Но именно эти перигибы подчеркивают, как хороши технологии, которые лежат в основе. Например, возьмем замечательный язык SQL, с тысячей диалектов. Так на нем пишут такие запросищи на десятки экранов, огроменную бизнес логику, тетрисы всякие и прочие шахматы, что авторам, думаю, в страшном сне не снилось, что такое будут делать. Или божественный эксель, на котором вообще можно сделать все, но некоторые люди умеют на нем даже больше, чем все. Вот была статья про 3D игра на эксель формулах, просто отвал башки, меня сильно впечатлила.

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

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

Inbox Всё

September 21, 2018

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

Ну что-ж, жить можно, самая главная фича с откладыванием писем есть, без нее очень муторно дережать инбокс пустым. Я бы ждал 2019 года, однако инбоксом все равно не мог пользоваться на 100%. На телефоне приложение падает на письмах из джиры, а в дескопе не удобно посылать письма с картинками. Приходилось держать все приложения и все ссылки для личной и рабочей почт. Теперь вроде как полегче, будем наблюдать.

Мастер Класс в Казани

September 16, 2018

14 сентября провел мастер-класс в Казани по настройке докер-кластера, полное название "Настройка докер кластера с использованием инструментов HashiCorp". Для меня формат новый, но очень понравился. Вроде бы участники тоже остались довольны.

Мне хотелось провести интерактивную сессию только на чистой практике, чтобы каждый выполнил все задания 100% и при этом уложиться в отведенный час. И это получилось! Я собрал тестовый стенд на 16 человек, то есть это большой сервер, в котором крутятся 16 докер контейнеров с нужными улититами, консоль пробрасывается прямо в браузер с помощью gotty, у каждого участника своя презентация, с командами которые нужно выполнять

Вот так выглядела презентация участника:

Консоль:

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

Эти проблемы я попробовал нивелировать с помощью общего дешборда, на котором видны рабочие сессии всех участников:

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

"Speed run" полного сценария занимает около 7 минут, состоит из 10-15 шагов. Но так-как вся группа ждала выполнения каждого шага всеми участниками, то полный мастер класс занял 55 минут.

Избранные отзывы:

  • Хороший формат для проведения презентаций, спасибо за workshop:)
  • Отличный интерактив! 10 динозавров из 10
  • Очень понравился интерактивный формат. Видно, что проделана работа по подготовке к занятию, что очень радует. Не хватило введения в используемые инструменты - многие использовали их первый раз.
  • Всё прикольно! Спасибо автору. Но конечно хочется не голой практики, а ещё и погружения одновременного в теорию

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

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

До встречи и хорошего настроения :cat:

Форк несуществующего кода

August 9, 2017

В любом долгоиграющем проекте случается такая вещь. Одна команда проводит модернизацию какого-то старого решения, а у другой команды есть конкретная задача из этой же области. Например команда Superstars пилит новую крутую универсальную SSO-авторизацию, взамен в хвост и гриву захаченной, но рабочей старой. В тоже время команда SadAngryDudes в рамках срочного проекта BigMoney пробрасывает очередной костыль в текущую систему. (Господи, какую американизированную дичь я пишу, но мне очень хочется конкретный пример, пусть будет такой, вроде смысл получается передать).

У Джули, технического лидера команды SadAngryDudes, возникает желание делать код, базируясь на новой SSO, а не ковырятся в историческом говне коде. И я понимаю Джули, и вы понимаете Джули. Я много раз делал как Джули, но это к сожалению ошибка. Правильно делать любой проект базируясь только на тех технологиях которые есть прямо сейчас. Да - это дороже, да это дублирование кода, да мир боль, а люди сволочи. На самом деле нет. Управленческий риск, что Superstars сорвут сроки, их решение окажется не таким радужным, а BigMoney не запустится в срок, не то что высок, а ровно 100%.

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

React App

August 8, 2017

Написал первое приложение на реакте для внутреннего использования. Ну прикольно получилось. Обратил внимание, что если делаешь crud на рейлс, то получается такой стандартный рейлс-crud. В реакте же получается in-place. Если приноровится, то на cra + react-router экспириенс из коробки получается лучше.

Спортивное программирование

August 7, 2017

Я много лет назад решил пару десятков задач с сайта http://www.spoj.com. Если к ним относится как к разминке мозга - очень клевые. Помню как писал там простую сортировку на брейнфаке в одной из первых задач. Но решение контестов слабо связано с основной деятельностью, увы.

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

Офис

August 4, 2017

Ради настоящего Пауэрпойнта покупал на месяц Микрософт Офис. Я очень уважаю Микрософт, особенно как они агрессивно вкладываются в облака, опенсорс, но при этом прилежно отдают дань традициям. Офис все также располагается на компьютере довольно кучеряво. Очень рад, что недавно переставлял комп с нуля и его ставить уже не стал.

У меня есть чеклист, что нужно настроить, чтобы начать комфотно работать. Каждый раз этот чеклист уменьшается, сейчас в нем 34 пункта, включая "скрывать док" и "показывать экран при помещении мышки в правый нижний угол".

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

Шахиджанян

August 3, 2017

В очередной раз встретил Владимира Владимировича в парке Сокольники. Я его традиционно узнал, он меня традиционно не узнал и как обычно поинтересовался где работаю и почему мы ещё не купили 100500 лицензий Соло на Клавиатуре.

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

Регэкспы и кавычки

August 2, 2017

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