понедельник, 22 декабря 2008 г.

How to force pdb loading in WinDbg

Прислали dmp файл, но оказалось, что pdb имеет размер 0. Это очень плохо, но есть же репозитарий — слил нужную версию версию и пересобрал. Но pdb все равно не подходит, т.к. checksum не совпадает. Неизвестно почему, может быть из-за даты сборки или ещё по какой-то причине. Но я точно знаю, что pdb тот, что нужно. В Visual Studio — это тупик, но не в WinDbg.

Пишем команду .symopt+0x40 и WinDbg, зыбыв про контрольную сумму, загружает pdb. Эта команда включает опцию SYMOPT_LOAD_ANYTHING. Про другие параметры можно посмотреть в MSDN.

среда, 10 декабря 2008 г.

Партнерство с Microsoft

Недавно организовал заключение партнерского соглашения с Microsoft. А именно вступили в программу Empower for ISVs. Оказалось сделать это очень просто. Участие стоит 420$ за первый год + столько же за второй. На первом уровне учавствовать можно два года максимум, потом нужно переходить на следующий. Требуется зарегистрировать в их каталоге продукт, которые вы хотите делать.

Бенефиты следующие — дают Visual Studio 2008 Professional на 5 разработчиков и подписку MSDN Premium, что включает в себя почти все виды операционных систем, которые можно использовать для разработки, т.е. не на компах в бухгалтерии. Для бухгалтерии же дополнительно припасено ещё 5 комплектов Windows Vista (Business Edition) и Office 2007 (Professional Edition) — их можно ставить где угодно в компании. Это ещё не все... дополнительно для организации бизнеса даются также лицензии на Windows Server 2008, Exchange 2007 Server, SQL Server 2005, Office SharePoint Server 2007. Все они Standard or Enterprise Edition на Ваш выбор. Дополнительно дается два звонка в службу поддежки(ещё не разбирался о чем это).

Короче, дается все, чтобы начать небольшой бизнес по разработке софта. Останется взять в аренду офис с компами :). У нас все это уже было(в смысле компов и прочего), а нужно было обновить средство разработки и тут получилась большая экономия средств. На остальные рабочие места покупали софт отдельно и не такой навороченный (например, Studio 2008 Standard достаточно в большинстве случаев, а где-то даже Ubuntu+Eclipse хватает, но это уже отдельная история).

Комплект приходит в виде двух чемоданчиков с кучей дисков в них:





Получение ключей проводится через фирменный кейген на сайте MSDN. Там же можно скачать недостающие или запаздывающие материалы(обновления приходят по обычной почте).

четверг, 4 декабря 2008 г.

Начинающим программистам



На собеседования приходит много народу, которые заполняют нашу анкету и не готовятся к собеседованию. Не понятно на что рассчитывают эти кандидаты...

Мы, со своей стороны, готовимся к собеседованию, поэтому совет, который, вероятно, подойдет при собеседовании в любой фирме — готовьтесь по теме работы, почитайте книжки, попробуйте реализовать пару алгоритмов на С++. Если Вам выдается такое счастье как анкета, то часто можно понять из неё что интересует нанимателя и освежить в памяти знания по теме(или даже получить новые).

Кстати, книги по С++ тоже не все хорошо написаны. Студенты часто читают только то, что им рекомендуют на лекциях или семинарах. Это плохой подход. Читать нужно больше. Я могу предложить следующий план изучения для студентов.

Beginners: «Язык программирования С++». Автор — Страуструп. Он лучше всех написал по этой теме, поэтому начинать лучше с его книги. Тем более, что её, наверное, можно купить почти в любом магазине. В крайнем случае, читать в электронном виде. То, что предлагается на кафедрах, часто написано местными работниками кафедры, для того, чтобы иметь публикации как этап в пути к защите или получению какой-либо должности. Качество таких материалов в среднем оставляет желать лучшего (я не исключаю, что есть отдельные хорошие работы, но я их не встречал). На самом деле, после этого этапа уже можно искать работу.

Intermediate: Далее продолжить можно с книгой «Эффективное использование C++» Майерса. Это позволит понять как лучше использовать на практике возможности С++.

Advanced: К этому моменту большинству уже не нужны советы по выбору источников знаний. Если вдруг кто-то не знает, то труды Саттера и Александреску неплохо бы изучить. Можно также почитать про паттерны проектирования для общего развития.

Помимо изучения инструмента разработки, конечно, параллельно нужно вести алгоритмическую подготовку. Наиболее широко нужные алгоритмы освещены в книгах Дональда Кнута. Их скорее всего и рекомендуют в институтах. Это хороший источник знаний, но быстро его трудно осилить, поэтому можно начать с каких-то других книг.

Ещё один момент. Достаточно опытные(наверное) разработчики на C приходят к нам с уверенностью, что знают С++ тоже. К сожалению, это не так. Оказывается, что длительное программирование на C скорее вредно. А код в компании весь пишется на С++ и его нужно понимать и уметь поддерживать(и не испортить!). Кстати, это касается не только С, но и математики. Не во всех ВУЗах учат пользоваться знаниями, которые читаются на лекциях, поэтому «отл.» по мат. анализу или красный диплом не означают достаточный для работы уровень.

В завершение, хочу отметить, что наша компания не отказывает навсегда. Можно подучиться и попробовать снова через 6—12 месяцев.