← All posts tagged programming

hatred
blog programming qtcreator cmake CMakeProjectManager2 CMakeProjectManager2: теперь и с Server Mode: htrd.su

Плагин не претендует на оригинальность. Всё что он делает, это:
— отображает все файлы в дереве проекта (Project View), вместо того, что было взято из модели CMake. В версиях QtC > 4.2, файлы не их модели отображаются бледным цветом.
— позволяет использовать контекстеное меню в Project View для добавления файлов/классов, переименования и удаления. При этом никаким образом не модифицируется соответствующий CMakeLists.txt и прочие таргеты. Это этого нужно иметь парсер, по аналогии с KDevelop (выпилен в 5.0, есть в 4.6) или Clion. Оба проекта стонут от необходимости поддержки этого куска г-на. Server Mode в CMake не решает этой проблемы.
— в новом обличии заменяет представление дерева проекта в Server Mode в простую иерархию, которая используется для CMake < 3.7. Сделано что бы была возможность реализовать два предыдущих пункта. И мне тупо так удобнее.

Всё это делается поверх функциональности оригинального плагина.

ЗЫ QtC теперь требуется CMake >= 3.0. Для использования возможностей Server Mode, нужен CMake >= 3.7.
hatred
Lisp programming IDE а подскажите годную IDE для Common Lisp, но только не Emacs+SLIME или vim-based (не обсуждается). Все три плагина для Eclipse протухли (одуванчик, cusp и форк его lispdev)
hatred
Linux programming говно и всё таки Линупс — говно. полное. из-за того, что его не нужно переустанавливать каждый месяц начинаешь забывать что и как конфигурил, какой софт ставил, постепенно обрастаешь свякими конфигами (в том числе и общесистемными, домашние не трогаем), разными установками из сорцов (под конкретные нужды), и когда приходится переезжать на новую систему, нужно достаточно много времени что бы всё поставить и поднастроить под себя. пользователи Windows намного более мобильные. аминь.
hatred
programming с++03 народ, а ткните пальцем в стандарт, легитимно ли такое, или расширение gcc:

template<int v>
struct Int2Type { const static int value = v; }

const static int Param = ...; // вопрос в этом месте, gcc достаточно константности и статичности, что бы значением Param можно было параметризовать шаблон
Int2Type<Param> someVar;
hatred
programming GCC пока первые впечатления о новом выводе диагностических сообщений (ошибки, предупреждения) в GCC 4.8 крайне доставляют. И внезапно — ворнингов стало В РАЗЫ больше =-)
hatred
C++ programming qtcreator cmake CMakeProjectManager2 CMakeProjectManager2 — последние изменения

Как я уже писал (http://htrd.su/wiki/zhurnal/2011-03-24_14.49_qt_creator_i_cmake_-_prodolzhenie), вяло пилю модифицированную версию плагина CMakeProjectManager для Qt Creator'а. Там же указаны причины, вынудившие меня на это. Но разговор, не про это, а про то, что с момента прошлого поста было сделано.

Итак:

Для каждого профиля сборки сохраняются введённые параметры для CMake, так что, выбрав в следующий раз «Run CMake» не нужно вспоминать, с какими параметрами вы его запускали и легче управлять профилями сборки. Вкупе с последней фичей из апстрима: сохранения глобальной истории параметров для CMake, получается достаточно мощный механизм.
Используя вышеприведённую информацию, появилась возможность при модификации дерева исходников (добавление, удаление, переименование) в фоновом режиме запускать обновление CBP файла и дерева сборки, что особо актуально при использовании глоббинга.
По сравнению с первым вариантом, получилось значительно сократить расходование памяти при использовании плагина, особенно когда в дереве проекта много вспомогательных модулей, временного C/C++ кода.
Кодовая база периодически синхронизируется с GIT версией Qt Creator. Если кто-то будет делать клоны для стабильных релизов, просьба отписываться с информацией об оных.

HINT:
Так как, при добавлении, удалении или переименовывании файла, не осуществляется модификация CMakeLists.txt, то нужно вносить изменения самому, либо использовать globbing:

# UTILS
file(GLOB_RECURSE UTIL_SOURCES "../util/*.cpp")
file(GLOB_RECURSE UTIL_HEADERS "../util/.h" "../util/.hpp")
На полноценный парсер пока времени нет (хотя уже адоптирован на чистый C++/Qt оный из KDevelop), к тому же, в списке рассылки Qt Creator проскакивала новость, что одна команда разрабатывает полноценный плагин (тыц — digipedia.pl Зная это, не хочется делать бесполезную работу, при том, что текущий функционал уже вполне удовлетворяет.

Src: htrd.su
hatred
Java programming IDEA да, Intel Atom 1.6GHz, 1Gb RAM и IntelliJ IDEA 10.5 просто созданы друг для друга... Eclipse хотя бы чуточку ворочается. Про JBoss не говорю — мрут оба. Но на работе проникаемся IDEA, возможно, даже, будем по результатам покупать (или продолжать сидеть на Eclipse)
hatred
programming FOSS cross-platform Привязывать карты в Linux я научился (спасибо программе QLandKarteGT, проектам proj, gdal, libgeotiff и иже с ними, подробности: hatred.homelinux.net , hatred.homelinux.net , hatred.homelinux.net Но возникла ситуация: на генштабовских километровках есть рамка, и иногда нужно отдельные листы склеивать в единый с последующим вырезом нужной части. Что бы не бить привязку в GeoTIFF есть чудные утилиты для этой цели:
— gdal_translate
— gdal_merge.py

Так вот, не всегда удобно и с руки выполнять данные команды, к примеру: хочется отрезать, задав широту и долготу, а карта в проекции Mercator (к примеру, MapNav, а точнее утилита для подготовки для него карт, понимает карты только в данной проекции), и тогда координаты нужно задавать в метрах относительно гринвича/экватора.

В общем, собираюсь, по наличии свободного времени, писать небольшую графическую оболочку для этих и смежных (geolist, cs2cs) утилит, для обрезки привязанных карт и их склеивания.

Внимание вопрос: а есть ли уже такие готовые приложения для Linux? Если есть, что бы не писать с нуля, а, в крайнем случае, допилить существующие.

Можно конечно использовать виндовый GlobalMapper (при экспорте в GeoTIFF можно область обрезки задать) из-под wine, но он платный, озиковский MapMerge производит файлы только в озиковском же формате (и не знаю, умеет ли обрезку, хотя оную, вроде как, умеет сам Ozi), да и сам Ozi платный. Да, что GM, что OziExplorer прекрасно идут под wine. Других (не уровня GIS) приложений для столь востребованной операции я не нашёл даже под оффтопик.
hatred
programming plugin qtcreator cmake CMakeProjectManager2 Qt Creator и CMake — продолжение
Некоторое время я поднимал тему связки Qt Creator и CMake, тогда всё показалось не очень хорошо.
В общем, собрался и сделал несколько лучше: малость допилил плагин CMakeProjectManager, реализовав следующие фичи...
Читать: hatred.homelinux.net