Форматирование C++ кода

Одна из особенностей языка Go, которая мне очень нравится – стандартизация практические всего и вся с предоставлением инструментов для валидации и максимальной автоматизации применения. Так все программы на Go выглядят более-менее одинаково как за счет единого стандарта к разработке (да,я не люблю кучу соплей с проверкой результатов возврата, но тем не менее это единообразие) так и за счет единого форматирования. Благодаря этому не приходится испытывать какого-то серьезного дискомфорта разбирая новый кусок кода – каким бы (не)качественным он ни был, выглядеть и как следствие восприниматься он будет как родной. Кроме того, основная масса редакторов Go поддерживает переформатирование текста при сохранении, так как за формат отвечает косольное приложение, то появляется возможность поставить триггеры в VCS и отклонять не удовлетворяющие условиям коммиты. С одной стороны, все это может казаться мелочами. Но только до тех пор, пока ты не работаешь в довольно сильно распределенной команде с крайне разными уровнями у разработчиков.
Continue reading

Генератор CMakeLists.txt файлов

Довольно часто возникает необходимость быстренько написать тестовое приложение на C++ и опробовать в нем что-то. IDE я не слишком люблю, а каждый раз где-то выискивать завалявшийся шаблон к CMake-у довольно лениво. После очередных поисков запилил небольшой вспомогательный скриптик (само собой на Python) для генерации CMakeLists.txt.

На данный момент поддерживается только генерация приложений, как надоест конвертировать приложения в библиотеки, так будут и они генериться

Сам скриптик с руководством по использованию тут: https://github.com/astavonin/gen-cmake

Дизассемблер под OSX

Иногда бывыет нужно что-то по-быстрому дизассемблировать, понять как работает или почему работает не так, как ожидалось. Недавно, в очередной раз вознила такая задача и я стал думать чем же мне воспользоваться. По большому счету, под OSX с дизассемблерами не очень: возможности OTool как дизассемблера (им я раньше и пользовался, но уж больно не удобно что-либо дизассемблировать в командной строке) очень скудные, IDA Pro за $1129 (да, именно Pro, а не Starter, которую я еще согласен оплатить из своего кармана) и очень понравившееся мне приложение с великолепным соотношением цена/качество – Hopper Disassembler.
Безусловно, по возможностям Hopper Disassembler основательно уступает IDA Pro, но, в большинстве случаев вся мощь IDA Pro не очень-то нужна и возможностей Hopper вполне хватает. Так что, будет кому-то нужен недорого дизассемблер под OSX – поглядите в сторону Hopper.

Ментальные карты

При работе над требованиями к новому проекту, при работе над какой-то относительно большой заметкой или статьей или какой-то другой структурированной информацией я одно время активно использовал Mindjet. По большому счету, приложение ну просто всем хорошо кроме своей цены. В стародавние времена лицензия на это приложение стоила порядка 250 долларов, что, конечно, не мало, но оно того стоило. Потом, долгое время я не работал ни над чем таким, где могли бы потребоваться ментальные карты, но на днях необходимость возникла и я полез на сайт производителя, что бы узнать, сколько сейчас стоит эта радость. Ну что сказать, цена меня не обрадовала, так как теперь купить приложение и пользоваться им неограниченное количество времени нельзя, дело в том, что авторы перешли на систему подписок и в год набегает порядка 300 долларов.
Да, само собой, я пишу это не для того что бы порекомендовать покупать столь дорогущее приложения, а для рекламы его аналога – XMind! XMind, как впрочем и Mindjet, является кроссплатформенным приложением и отлично запустился как на моем домашнем Mac OS X, так и на рабочей Ubuntu. С учетом того, что XMind базируется на Eclipse, то он очень прожорлив, но за его “цену”, это очень легко простить, а создаваемы в нем ментальные карты не на много хуже того, что получалось в Mindjet.