понедельник, 18 октября 2010 г.

Upgrade to VS2010

У нас идет плановый переход на Visual Studio 2010. Почти все проекты сконвертились без приключений. Пока только две проблемы заставили подумать.

1. В соответствии с новым, ещё не принятым, стандартом, у ассоциативных контейнеров iterator и const_iterator — оба константные итераторы (см. §23.2.4). С одной стороны, это позволяет избежать ошибок на этапе компиляции, ведь, например, у std::set изменение элемента контейнера может разрушить этот контейнер. С другой стороны, если мы точно знаем, что мы меняем элемент и при этом порядок элементов не меняется, то можно сэкономить кучу тактов, если менять элементы напрямую. К счастью, для второго случая остается лазейка — можно объявить поля структуры, которые мы хотим менять, mutable. Конечно, нужно быть очень осторожным, но предполагается, что если мы пишем mutable, то мы знаем что делаем.

2. В проектах со смешанным кодом C++ и C++/CLI иногда перестали подгружаться managed-ресурсы. Расследование показало, что у resx-файлов поле Logical resource name в настройках проекта равно чему-то вроде $(RootNamespace).%(Filename).resources. Так вот этот %(Filename) ни чем не заменяется при компиляции. Проблема решается ручной настройкой для каждого resx-файла. Надо бы баг запостить в connect.microsoft.com, но пока не до этого.

Также, к сожалению, подсветка синтаксиса для стандартных типов (из стандартной библиотеки) в C++ по прежнему отсутствует. Поэтому пригодился старый файл usertype.dat, который можно положить рядом с devenv.exe и все указанные типы начинают светиться любимым цветом (любимый цвет выбирается). Каждый может написать свой файл usertype.dat, формат предельно прост — каждая строка содержит один тип.

четверг, 7 октября 2010 г.

Обо всем понемногу

Сегодня прислали материальное подтверждение, что наша компания получила статус Microsoft Certified Partner. В составе: стеклянная фиговина (и ещё одна запасная), как на картинке, и большой постер. К статусу прилагается куча лицензий на софт, в том числе 10 комплектов Visual Studio 2010 Premium с подпиской MSDN. Кстати, для небольших стартапов партнерство (даже без сертификаций) является неплохим способом получить лицензионные средства разработки и прочий софт за недорого. Подробнее об этом рассказывали на форуме Innovation Day 5 октября, ну и ещё не раз расскажут видимо. А почитать можно по ссылке. Стоит отметить, что мы успели завершить все формальности до октября, а иначе такого статуса не дали бы, т.к. система плюшек поменялась. Хорошо это или плохо — пока не ясно.

Кстати о студии... Предварительно в VS 2010 уже видны косяки, которые остались ещё с бэты. Во первых, конвертация проектов не проходит так гладко, как хотелось бы. А второе, это то, что помимо обычных зависимостей в С++ солюшене, сделали ссылки как в .NET и совсем не очевидно, что зависимости нужно ставить в двух местах теперь. Всякие вкусности из нового стандарта уже есть, но пользоваться ими, к сожаления, пока нельзя (о чем я писал тут).

Стоит упомянуть, что на Innovation Day раздавали книжки по Share Point 2007, но оставили без футболок, а в обед оставили без десерта, что очень печально — экономить на разработчиках плохо ибо, перефразируя Этвуда(Atwood), Cookies is Cheap, Programmers are Expensive. Помимо этого все было посвящено переходу всего и вся в облако, но судя по количеству вопросов, особой популярностью эта тема пока не пользуется. Облачное счастье последовательно продвигается Микрософтом уже довольно давно, но меня лично пока не впечатляет. Вообще-то облака — это не открытие, просто в других облаках нельзя писать на C#. Материалы по докладам можно будет найти позже здесь.

Тем временем, нашему серверу, который обеспечивает команду сорсами, багами, доками, билд сервером на виртуалке и прочим, предстоит миграция с Ubuntu 8.04 LTS x32 на Ubuntu 10.04 LTS x64. Если у читателей присутствует опыт как перенести все конфиги и получить тот же набор пакетов, то ссылки в комментариях(или по почте) приветствуются. Можно просто скопировать все из /etc в новую ОС?

Ещё мы опять ищем разработчиков на С++, так, что можно заполнять анкету и слать на [email protected] вместе с резюме.