В этом выпуске: находим достойную альтернативу Sublime Text, пересматриваем видео со всех конференций 2015-го года, поднимаем свой StackOverflow, узнаем, как стать настоящим гуру UI, и не только. Предыдущие выпуски: ноябрь 2015, октябрь 2015, сентябрь 2015, август 2015.

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

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

Часто от умных, казалось бы, людей можно услышать очень смешные вещи в отношении GC. Например, «Java/Scala/Go тормозит и вообще со stop the world, поэтому все всегда нужно писать только на Erlang». При этом все остальные преимущества Java (Scala) и множественные недостатки Erlang отбрасываются. Или вот еще — «все игры должны писаться на C/C++, потому что из-за GC автоматически все будет лагать». Люди, как всегда, все переупрощают и ругают то, с чем они даже не пытались научиться работать. Та же проблема stop the world действительно является проблемой, но вовсе не относящейся к разряду нерешаемых. И в этой заметке я собрал аж десять известных мне способов борьбы с ней.

Поговорим об отладчиках для Microsoft Windows. Их существует довольно много, вспомнить хотя бы всеми любимый OllyDbg, некогда популярный, но в настоящее время практически умерший SoftIce, а также Sycer, Immunity Debugger, x64dbg и бесчисленное количество отладчиков, встроенных в IDE. По моим наблюдениям, WinDbg нравится далеко не всем. Думаю, в основном это связано с командным интерфейсом отладчика. Любителям Linux и FreeBSD, бесспорно, он пришелся бы по душе. Но закоренелым пользователям Windows он кажется странным и неудобным. А тем временем, по функционалу WinDbg ничем не уступает другим отладчикам. Как минимум, он точно нечем не хуже классического GDB или там LLDB. В чем мы сегодня с вами и убедимся.

Ранее в заметке Делаем метрики и мониторинг для Akka при помощи Kamon мы уже познакомились с некоторыми возможностями Kamon. Правда, нельзя сказать, что возможности эти были особо впечатляющими, так как метрики можно вполне успешно писать и безо всякого Kamon. Сегодня же мы познакомимся с некоторыми другими средствами, предоставляемыми этой несколько спорной, но определенно очень мощной библиотекой.

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

Про DI и пользу от него сказано уже немало. Если простыми словами, то идея сводится к следующему. В ряде случаев вместо конкретной реализации того или иного компонента в коде используется только интерфейс. Конкретная же реализация передается явно через конструкторы классов, паттерн service locator, cake pattern, и так далее. Таким образом можно с легкостью мокать классы (вряд ли вы хотите слать настоящие e-mail при прогоне интеграционных тестов), или, например, при помощи файла конфигурации определять, в какой из трех поддерживаемых РСУБД хранить данные. В этой заметке мы рассмотрим, как добиться всего названного в Scala, воспользовавшись библиотекой SubCut. Также мы выясним, почему то же самое, по всей видимости, очень трудно проделать в некоторых других языках.

Задачи в программировании бывают разными. Например, часто нужно написать скрипт на 10 строк кода. И, соответственно, нужно для этого что-то вроде Bash, только не Bash :) Долгое время я использовал для этих задач Perl. Но, увы, во многих командах Perl недолюбливают. Не исключено даже, что заслуженно. Поэтому возникает вопрос поиска хорошего скриптового языка. После долгих и мучительных раздумий я пришел к выводу, что такой язык — это, скорее всего, Python, и в этой заметке будет рассказано, почему.

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