10 февраля 2020 г.

Мой рейтинг шрифтов для программирования

Наблюдая за профессиональными программистами, увлечёнными разработкой (а я пересмотрел очень много обучающих видеороликов от самых разных людей), я заметил, что далеко не всем интересна тема настройки своего редактора кода. Люди просто открывали редактор и начинали программировать: никому не интересно какая там тема установлена, какие шрифты и какие расширения можно установить для удобства. Чего уж там говорить, когда я видел пару десятков видеороликов, где VS Code сигнализировал о новом скаченном обновлении, но "учитель" даже не заморачивался, чтобы это обновление применить. И так на протяжении нескольких уроков, которые он очевидно писал на видео за один раз.
Лично я такого дзена и отрешенности от внешнего мира во время программирования не познал, поэтому потратил некоторое время на выбор самого удобного шрифта, самой симпатичной темы подстветки (этот процесс может продолжаться вечно, потому что темы надоедают).
Шрифт: JetBrains Mono, тема редактора: Dracula
Итак, мой личный рейтинг шрифтов, которые сделают ваш код красивым (с визуальной точки зрения) и легко читаемым.
1. JetBarins Mono. Этим шрифтом в VS Code я начал пользоваться всего две недели назад и уже успел его полюбить. Данный шрифт давно применяется в профессиональных IDE от JetBrains, но вот недавно его сделали доступным для всех. Естественно шрифт с лигатурами, потому что это сейчас модно в шрифтостроении для программистов.
2. Fira Code. Очень популярный сейчас во всём мире шрифт от отечественного дизайнера Никиты Прокопова. Данный шрифт демонстрируется на официальной странице VS Code в документации и примерах, то есть им пользуются в самой Microsoft. Шрифт отлично читаемый и любим программистами за лигатуры.
3. Hack Nerd Font. На этом шрифте я просидел больше года и он меня абсолютно всем устраивал, пока я не отправился искать новых ощущений с другими шрифтами. Шрифт реально классный и разработан так, чтобы не раздражать своего пользователя при повседневном использовании - с этой задачей он справляется прекрасно.
4. Consolas. Это уже классика от Microsoft и он используется по умолчанию на системах с Windows в VS Code. Использовать шрифт Consolas для кода я начал почти 10 лет назад, когда писал свои первые проекты на PHP (тогда я использовал подзабытый ныне редактор Komodo Edit). Сейчас шрифт, конечно, смотрится не так круто по сравнению с новыми, специализированными шрифтами для программистов, но кто сказал, что классика должна удивлять? В конце концов, очень много программистов сидят на Courier New или на похожих древних mono-шрифтах и им ничего больше не надо. Аналогичным шрифтом в MacOS является San Francisco, который и используется по умолчанию в VS Code, а большего программистам на MacOS и не нужно, потому что от добра добра они не ищут (маководы вообще не любят что-то настраивать, а чтобы красиво было сразу из коробки).
5. Cascadia. Новый шрифт от Microsoft для программистов (а значит с лигатурами). Пока не снискал большой популярности, лично я его не использовал, но это точно очень качественный шрифт от профессионального дизайнера. Шрифт открытый и исходники выложены на github. Данный шрифт используется по умолчанию в новом Terminal Windows 10 и для командной строки он очень хорош.
6. Operator Mono, Source Code Pro, Iosevka, Fantasque Sans Mono (ссылка на репорзиторий с архивами всех шрифтов). Отличные шрифты для программирования, которые обязательно упомянут в любом треде, где программисты их обсуждают, но лично я ими долго не пользовался по тем или иным причинам (меня полностью устраивал Hack Nerd font). "Радость" от использования шрифта так же зависит от качества вашего монитора (HD/Retina), личного восприятия и привередливости. Некоторые программисты, например, не любят, когда буква О и 0 (ноль) трудночитаемые и этого будет достаточно, чтобы не пользоваться таким шрифтом.
Учтите, что далеко не у всех шрифтов для программистов есть поддержка кириллицы (если разработчик не русскоязычный или не корпорация, то скорее всего кириллицы не будет) и комментарии на русском языке будут выглядеть в ваше коде ужасно (ещё один повод выучить английский и не писать комментарии на русском языке, потому что это непрофессионально).
Пример лигатур в Fira Code 2
Некоторые программисты считают лигатуры блажью, которые не дают ничего для программирования в плане повышения читаемости кода: ну подумаешь стрелочка => по другому рисуется, или знаки сравнения типа "больше равно" в виде одного символа.
Включение поддержки лигатур в редакторе VS Code
Долгое время и я этой моды не понимал, но два месяца назад включил их в настройках VS Code (да, их можно запросто включать и отключать, нужно только чтобы в вашем шрифте была поддержка лигатур) и так и не отключал, потому что лигатуры меня не раздражают. В любом случае рекомендуемую всем попробовать писать код с включенными лигатурами, и возможно, вы не сможете от этого отказаться. Многие программисты даже специальным образом патчат свои любимые шрифты, чтобы добавить туда поддержку лигатур. 

4 февраля 2020 г.

Командная строка в Windows может быть удобной

Вот уже полгода я "вкатываюсь" в мир frontend разработки и пока я не начал этого делать, я даже и не подозревал, что профессиональные веб-разработчики работают с консолью "на ты" не хуже линуксоидов. "Ты же делаешь сайты, зачем тебе сидеть в консоли?" - но не всё так просто.
При разработке любого относительно сложного и комплексного проекта, веб-разработчик использует пакетный менеджер для установки библиотек и прочего, скрипты запуска или сборки проекта, поглядывает на проходящие тесты в консоли, ну и конечно периодически работает с системой контроля версий (Git, как правило), сохраняя свои труды в коммитах. Да, не для всех этих задач требуется именно консоль, но я ещё не видел ни одного профессионального разработчика, который бы ей не пользовался (большая часть веб-разработчиков пользуется MacOS, сидят на Macbook и хвалят красивую консоль там). К счастью, пользоваться консолью не страшно и не больно даже в Windows, где она до сих пор была уделом только суровых сисадминов.
Более того, вы можете даже получить консоль как в Linux в своём Windows! Настоящую bash со всеми командами оттуда (и выполнить rm -rf). Самым простым способом для этого будет использование эмулятора терминала Cmder. Программа имеет огромное количество настроек и встроенный bash для Windows (для этого нужно загрузить полную версию дистрибутива на 118 МБ). Кстати, при установке Git, вам так же устанавливается эмулятор git bash. Файловые системы в Windows и Linux разные, но эмуляторы корректно обрабатывают пути, хотя я заметил, что профессионалы этим не злоупотребляют и не пишут названия каталогов с пробелами и кириллицей (ну это так, общее правило всех программистов - даже в счастливый век UTF-8 можно запросто получить не очевидную проблему из-за этого).
В VS Code очень удобно организована работа с терминалами
Сама Microsoft давно поняла, что профессиональным разработчикам нужны профессиональные инструменты и желательно, совершенно бесплатные. Корпорация подарила прекрасный редактор кода VS Code, который сейчас является самым популярным у веб-разработчиков по всему миру. В прошлом году корпорация порадовала нас новым терминалом, новой 7-й версией Powershell и даже открытым шрифтом Cascadia с лигатурами для программистов (который весьма хорош, но о моих любимых шрифтах для программирования я напишу в другом посте). В VS Code можно удобно работать с терминалами (по клавише ctrl+~), запускать несколько штук и переключаться между ними.
Посмотрите на этот тизер нового терминала Windows - практически блокбастер! К сожалению, в реальности терминал Windows не стал таким красивым и удобным как в рекламном ролике, но вы можете скачать preview версию нового терминала и начать им пользоваться прямо сейчас (есть версия для установки из магазина MS и на github). Да, из него можно запускать команды, но он не настолько удобен как терминалы в Linux, где консоль это основа система, можно сказать её душа. Чувствуется, что терминал в Windows это вспомогательный минималистичный инструмент.

Если вам нужен максимум контроля операционной системы и Windows вам уже мало, то кроме перехода на MacOS есть ещё варианты - полноценный Linux внутри вашего Windows. И это даже не виртуальная машина, как вы могли бы подумать, а настоящий дистрибутив, который разворачивается на вашей системе и имеет полноценный доступ к "железу" и файловой системе. Да, шутки линуксоидов про "MS Windows" стали явью и за это отвечает система Windows Subsystem for Linux. Теперь нет никакой необходимости отказываться от Windows 10, если вы профессиональный программист и хотите работать именно с Linux.
Изначально можно было ставить Ubuntu, но в данный момент имеется и Suse Linux, и другие интересные дистрибутивы. Вы даже можете установить дистрибутив для взлома Kali Linux, хотя, конечно, для настоящего хакера это не труъ. WSL это не только доступ к linux консоли, но при желании вы можете запустить полноценный x-server и работать в графическом DE. Посмотрите видеоролик (на английском) от Скотта Хансельмана про то, какие чудеса можно творить с WSL. VS Code умеет переключаться в специальный режим при работе с WSL.
Как вы можете убедиться, командная строка в Windows это теперь круто. 

10 сентября 2019 г.

Симпатичные скроллбары в браузере

В повседневной работе я люблю использовать браузер в качестве плеера, привязывая его к левой стороне экрана, а VS Code оставляя пространство справа, благо новые версии Windows отлично управляют привязкой окон. К сожалению, даже экранного пространства 27-дюймового монитора катастрофически мало для всех "хотелок", поэтому всё больше хочется купить второй монитор.
Основной мой браузер это Vivaldi и он хорош всем, кроме того, что по умолчанию в нём используются совершенно отвратительные, толстые скроллбары прямиком из прошлого. Экрана и так мало, а тут ещё скроллбары толщиной в 15 пикселей. К счастью, поправить эту проблему проще простого и даже не придётся прибегать к магазину расширений Google Chrome.
Модный скроллбар (справа)
Можно установить современные скроллбары прямо из браузера, включив специальный флаг в экспериментальных настройках.
Для этого вводим в строке поиска vivaldi://flags и находим через поиск "Overlay Scrollbars". После этого переводим его в состояние Enabled. После перезапуска браузера вы увидите действительно современный скроллбар, который появляется только при использовании прокрутки, а в остальное время скрыт.
А ещё хочу порекомендовать малоизвестное расширение для браузеров Chrome от самого Google, которое позволяет откреплять видео с Ютуба и смотреть его даже на рабочем столе как в миниплеере или как это происходит в MacOS с видео.

P.S.: К сожалению, разработчики Chromium в новых версиях браузера по неизвестной причине убрали из флагов включение этих скроллбаров, поэтому положение могут спасти старые добрые расширения для Chrome, однако они работают далеко не во всех местах. 

24 июня 2019 г.

Волшебный мир веб-разработки

MacBook это символ успешного разработчика
У меня в личной жизни внезапно образовалось достаточное количество свободного времени и наблюдая крайне печальное состояние промышленности в Российской Федерации, я решил осуществить свою давнюю мечту - овладеть профессией веб-разработчика, дабы в будущем иметь возможность заниматься фрилансом. Тесно соприкоснувшись с темой веб-разработки, я понял что просто не будет и интернет за эти десять лет (именно тогда я полноценно пытался самообучаться дизайну и вёрстке сайтов) прошёл невероятный путь.
"Миллениалы" придумали новые модные названия для веб-разработчиков: фронтендер и бэкендер. Фронтендер верстает сайт из макета, который нарисовал ему профессиональный дизайнер, добавляет различные нехитрые скрипты на javascript (так что программировать уметь надо) и возможно прикручивает вёрстку в CMS. Бэкендер же отвечает за движок сайта и работу с базами данных, а также он задирает нос и считает себя настоящим программистом, а не как эти "формошлёпы". Если ещё 5 лет назад можно было научиться верстать на HTML5 и выучить CSS, чтобы гордо называться верстальщиком, то сейчас это базовые навыки с которыми не найти работу ни в одной веб-студии, потому что сама по себе вёрстка мало кому нужна. Стек технологий, необходимых для современной разработки сайтов, невероятно разросся и верстальщик теперь немного программист, а программист при необходимости может сам верстать с макета и делать интерфейс. А вот в наше время можно было "нарезать" сайт и сверстать на таблицах...
Вот краткая выжимка знаний и советов, которые я постиг за месяц упорного домашнего обучения:

  1. Visual Studio Code теперь самый популярный редактор кода, который покрывает 90% задач всех фронтендеров. Atom популярностью не пользуется из-за своей глючности и медлительности, на Sublime Text сидят только старые веб-разработчики, которые просто привыкли к этому "блокноту" за годы использования. 
  2. Без ненавистного Adobe Photoshop при работе с макетами никуда. Это де факто стандарт в отрасли. Да, появились очень классные альтернативы, вроде платных онлайн-сервисов Avocode, Zeppelin или Figma, но они больше рассчитаны на быструю разработку мобильных интерфейсов, а не на макеты сайтов. И хотя они декларируют поддержку psd, с мало-мальски сложными макетами однозначно будут проблемы. Не говоря уже о том, что они неправильно читают параметры текстовых слоёв и не отображают/отключают наложенные эффекты. Ребята, которые создали Sketch для Mac OS, профукали огромнейший рынок, не желая переносить свой продукт в web или на Windows. Где достать "Фотошоп"? К сожалению, ценовая политика компании Adobe оставляет мало вариантов для таких новичков как я. Хотя для студентов они дают скидки и длительные триальные сроки.
  3. Интернет у нас теперь очень даже векторный и гипертекстовой, так что формат векторной графики SVG используется повсеместно. Хорошим тоном будет в связке с Photoshop иметь на компьютере открытый редактор векторной графики Inkscape, чтобы открывать и редактировать такие файлы. Ну или пару стрелочек нарисовать, если ничто прекрасное вам не чуждо. 
  4. Профессиональное обучение на онлайн-курсах стоит достаточно дорого: от 12000 - 20000 рублей и выше, про продвинутый уровень знаний (за который обычно платят компании, а не сам программист) я вообще молчу. Вы можете сказать, что я скачаю на торрентах любые лекции (и это так, они там есть), любые книжки и буду учиться сам. На курсах вы платите не за сами лекции (вместо них можете прочитать кучу статей по теме бесплатно), а за работу наставников с вами, за работу над ошибками и оценку ваших реальных знаний. Я никого не призывают бежать и записываться на какие-либо курсы, но обучаясь самостоятельно, некоторых знаний вы не получите. Не говоря уже о возможности по незнанию получить "неправильные знания и натренировать плохие практики". 
  5. Человеческий мозг способен адекватно воспринимать новую информацию не более 4 часов, затем начинается резкое падение эффективности. 
  6. Без практики ваши знания ничего не стоят. 80% вашего обучения должна занимать практика, а 20% изучение теории и лекций. Именно это самая ценная вещь на онлайн-курсах, которую вы не скачаете на торрентах: там вас будут всячески пинать, давать и проверять домашние задания, указывать где подтянуть знания. 
  7. Будьте готовы к тому, что каждые 2 года меняются технологии разработки сайтов: отмирают старые браузеры, появляются новые фреймворки и методы вёрстки. Будьте готовы учить новое. Эх, а ведь я реально помню те времена, когда страницы верстали таблицами и только-только переходили на "дивы". А сейчас на верстающих только "дивами" будут смотреть косо - сейчас в моде флексбоксы. 
  8. В интернете имеется множество бесплатных шаблонов в psd, которые вы можете скачать, сверстать и сделать из них портфолио. И конечно же Chrome DevTools (который открывается по F12) и аналогичный инструмент разработчика в Firefox это классные штуки: постоянно смотрите код сайтов, которые вас заинтересовали, чтобы понять как сделана та или иная вещь, или где верстальщики облажались (частенько встречаются детские ошибки). 
    Страница начинающего разработчика
  9. На биржах фрилансеров новичку работу найти крайне трудно. Как я уже и говорил, просто вёрстку заказывают редко, а если заказывают, то эти простенькие заказы перехватывают мастера, которые естественно сделают её очень быстро и качественно. Имеются биржи для совершенных новичков типа Work-Zilla, но если вы почитаете отзывы, то там будет масса негативных. Кроме того эта биржа дерёт 15% с выполненного заказа, накладывает ограничение на вывод денег и требует оплаты подписки каждый месяц. А ещё обнуляет вам рейтинг со временем. В общем, там вы в прямом смысле будете работать за еду на неадекватных заказчиков, которые хотят полноценный сайт за 1000 рублей. Раньше был иностранный Upwork, но он теперь платный, да и туда не пробиться из-за индусов. 
  10. Я выучил крутые понятия: семантическая вёрстка, адаптивная вёрстка, флексбокс, гриды, pixel perfect, кроссбраузерность. Без реальных знаний этих вещей с вами даже не будут разговаривать как с верстальщиком.
  11. Вы удивитесь, но Internet Explorer ещё не помер. 11-я версия этого "замечательного" браузера, который похоронили сами создатели из Microsoft, ещё жива и входит в понятие, которое называется "кроссбраузерность" (а иногда требуется обеспечить соответствие макета и работу сайта в китайских мобильных браузерах и Opera Mini, где не работает половина современных технологий веба). И IE 11 обязательно поломает вам вёрстку, потому что он отличается от браузеров на Chromium и Gecko (Firefox). 
    Начав верстать, вам очень скоро захочется установить второй монитор. Это рабочая необходимость
  12. Soft Skills работают как и раньше (со времён неандертальцев). А именно: умение общаться с заказчиком, рекламировать себя, искать клиентов там, где не додумаются ваши многочисленные конкуренты -  всё это поможет вам найти работу и получать стабильный доход. Ну или поможет просить денег на еду около церкви с помощью "продающих текстов" на картонке (грустная шутка).
  13. Вся актуальная и самая качественная информация по технологиям HTML и CSS только на английском языке, так что базовый английский это необходимость (если честно, ещё не встречал разработчика, который не понимал бы английский от слова совсем - некоторые на этапе обучения пользуются онлайн-словарями, профессионалы учат с репетиторами). Эту информацию часто (плохо) переводят и выкладывают на платформу блогов Medium, а потом воруют всякие ютуберы, которых я смотреть не рекомендую (годных среди русскоязычных блоггеров-разработчиков по тематике фронтенда не очень много). Ах да, никогда не смотрите видеоролики Гоши Дударя - это такой Тимур Сидельников от мира программирования. Фрилансеры очень любят вести каналы на Ютубе, так как это отличная реклама их навыков, но вот учат ли они правильным вещам... это большой вопрос. За многие вещи, которые они запросто показывают в своих видео, вас обругают тимлиды в веб-студиях. 
  14. В провинции работы для веб-разработчиков крайне мало и ниша занята давно работающими веб-студиями разного калибра (видел студию из одного человека и из трёх человек, которые умеют натягивать дизайн на Wordpress и максимум работать с jQuery). 
  15. Кстати, если вы научитесь "натягивать дизайн" на Wordpress, ModX, Joomla и другие популярные CMS, то возможно не умрёте с голода, потому что спрос на такую работу очень большой. Доля сайтов на Wordpress в мире постоянно падает, но их всё равно около 40%. 
  16. Подавляющее большинство веб-разработчиков (как и пользователей) сидят на Windows и не имеют крутых мониторов 4K, так что Retina и вёрстка для Safari это мало кому нужная экзотика. Зато доля пользователей, которые заходят на сайт с мобильных устройств, может быть больше 60%, поэтому ваш сайт обязан правильно работать и хорошо выглядеть на смартфонах и планшетах. 
  17. Время! Некоторые считают, что вёрстку можно досконально изучить за 2 месяца и ещё до полугода потратить на изучение основа javascript, средств автоматизации и популярного фреймворка. В любом случае это безумие считать, что вот сейчас вы быстренько выучитесь и пойдёте зарабатывать своими знаниями деньги. Объём материала для получения статуса "джуниор веб-разработчик" - 2000 часов лекций и практики.
    CM Storm QuickFire Rapid-i выгляди очень брутально
  18. Профессиональные программисты обожают механические клавиатуры, но как же они громко стучат ночью (у меня cherry mx black)! Берите клавиатуру на cherry mx red, чтобы было хоть немного потише. Не знаю насколько можно верить всяким топам клавиатур в интернете, но чаще всего в качестве первой механической клавиатуры советуют Cooler Master Storm QuickFire Rapid. Правда это не очень крутой бренд среди клавиатур и отсутствие цифрового блока напрягает (а фронтендерам надо вводить цифры часто), но это довольно старая модель клавиатуры и её можно найти в России по цене 4500 рублей. Впрочем за 5000 рублей уже можно подобрать себе нормальную клавиатуру на понравившихся переключателях. 
Путь фронтендера очень сложен и тернист, знания устаревают и требуют обновления почти каждый год (с выходом новой версии используемого фреймворка). Но лично мне это занятие нравится и было бы круто, если бы полученные мной знания ещё и оплачивались, позволив сменить мою нынешнюю профессию на новую. Дорогу осилит идущий. 

10 июня 2019 г.

Возвращение Microsoft Flight Simulator

На проходящей выставке E3 анонсировано очень много хороших игр, но моё внимание привлёк анонс Microsoft Flight Simulator. Мёртвый король гражданских авиационных авиасимуляторов возвращается, чтобы пнуть X-plane и Prepar3D. Очень хотелось бы видеть триумфальное возвращение и надежды на это есть, даже после провальной Microsoft Flight, который был хоть и красивой, но совершенно бесполезной игрой для любителей симуляторов. Страшно представить, но полноценная номерная симуляторная часть серии (MS FS X - "десятка") выходила в 2006 году - около 13 лет назад.
Нет никаких подробностей про игру, но по трейлеру видно, что это крутейший графический движок, обеспечивающий невероятную степень детализации симуляции игрового мира. Впрочем подозреваю, что по традиции большая часть мира будет плоской и процедурно сгенерированной, а США иметь прекрасно детализированные аэропорты и города. Очень надеюсь, что в Microsoft понимают, что без сообщества моддеров у их игры нет будущего, и они откроют API для создания миссий, карт и самолётов. У многих людей на этом сейчас бизнес построен и качественный проработанный сценарий аэропорта или самолёт для предыдущей версии симулятора может стоить под 100$ и их охотно покупают. Если в Microsoft хотят на этом зарабатывать, ну что же - организуйте продажу аддонов для игры через свой магазин, берите процент. Это будет лучше, чем выпускать "мёртвую" игру в которой ничего нельзя поменять и впаривать пользователям бесконечные платные DLC (путь некоторых железнодорожных симуляторов).
Скриншот из 10-й версии с модами
Также надеюсь, что у игры будет полноценная встроенная поддержка VR. Эта технология давно напрашивается в авиационные симуляторы и в MS FS его энтузиасты конечно же пытались внедрить, но особой популярностью это не получило.
Симулятор выйдет в 2020 году.