Архив Июль 2008

Английский для Инженеров-Программистов (Часть 1)

Воскресенье, 27 Июль, 2008

У меня давно была мечта начать писать про английский язык и использовать для иллюстраций язык проектирования UML (Unified Modeling Language). После многих лет работы за рубежом и чтения сотен книг на английском языке, включая лингвистическую литературу, я стал замечать, что знаю грамматику английского языка лучше русского. Сегодня я расскажу про первый урок, который я усвоил в 90х во время работы, посылая новые версии программ каждую неделю американским заказчикам. Речь пойдет о настоящем совершенном времени (Present Perfect Tense). Его используют, когда хотят подчеркнуть, что действие только что произошло. Вообразим, что мы только что послали багфикс или новую версию. Если мы напишем “I sent the fix” или “I sent the new version” это будет означать что вы послали его некоторое время назад (прошедшее время, Past Tense) и многое могло измениться с тех пор. Но, если мы напишем “I‘ve sent the fix” (I have sent the fix) или “I‘ve sent the new version” (I have sent the new version), это будет означать, что мы сделали это прямо сейчас, буквально перед тем, как мы написали об этом. Можно усилить упоминание о том, что мы только что сделали это: “I‘ve just sent the fix” (Я только что послал багфикс).

Разница между двумя временами может быть проиллюстрирована на следующих двух диаграммах последовательности (sequence diagram). В названиях я использую английский язык в качестве дополнительного учебного средства.

Когда из контекста все ясно, вместо Present Perfect Tense можно использовать Past Tense. Многие так и делают, особенно в Штатах. По моим наблюдениям, использование Present Perfect Tense более специфично для европейских англоговорящих стран. Если вы сомневаетесь в правильности предложения или фрагмента используйте Google для частотного сравнения:

“I’ve sent” - 1,840,000 раз
“I sent” - 23,600,000 раз
“I send” - 14,700,000 раз (Я определенно намереваюсь послать …)
“I’ve send - 60,900 раз (ошибка в форме глагола)

или поиск по полной фразе:

“I’ve sent the fix” - 7 раз
“I sent the fix” - 42 раза
“I send the fix” - 5 раз (Я определенно намереваюсь послать багфикс)
“I’ve send the fix - 1 раз (ошибка в форме глагола)

Если вы упоминаете точное время, то нужно использовать Past Tense: ”I sent the fix yesterday” (Я послал багфикс вчера). 

В следующей части мы поговорим о формах глагола. 

- Дмитрий Востоков @ DumpAnalysis.org -

Удаленная отладка доктора Отладчикова

Воскресенье, 20 Июль, 2008

Новая карикатура от Narasimha Vedala:

В госпитале для сердечных больных

DBG_DebugCardiograph from Narasimha Vedala (click to enlarge)

- Дмитрий Востоков @ DumpAnalysis.org -

Оригинальная статья: Dr. Debugalov’s remote debugging disaster

Доктор Отладчиков читает лекцию по отладке

Воскресенье, 20 Июль, 2008

Еще проясняющая карикатура от Narasimha Vedala (щелкните по картинке чтобы увеличить):

Человек-паук

DBG_SpiderMan from Narasimha Vedala (click to enlarge)

- Дмитрий Востоков @ DumpAnalysis.org -

Оригинальная статья: Dr. Debugalov lectures on Debugging

Паттерны анализа дампов на Википедии

Воскресенье, 20 Июль, 2008

Сегодня я обнаружил ссылки на портал и книгу Антология Анализа Дампов Памяти в английской Википедии:

http://en.wikipedia.org/wiki/Debugging 

Очень признателен тому, кто добавил их.

- Дмитрий Востоков @ DumpAnalysis.org -

Оригинальная статья: Dump Analysis on Wikipedia

Доктор Отладчиков рассказывает сказку

Воскресенье, 20 Июль, 2008

Еще карикатура от Narasimha Vedala:

Сказка на ночь

DBG_AttemptsBedtimeStory from Narasimha Vedala (click to enlarge)

- Дмитрий Востоков @ DumpAnalysis.org -

Оригинальная статья: Bedtime story from Dr. Debugalov

Доктор Отладчиков на международном чемпионате

Пятница, 18 Июль, 2008

Еще одна карикатура от Narasimha Vedala (щелкните по картинке чтобы увеличить):

На соревнованиях

DBG_AtTheChampionships from Narasimha Vedala (click to enlarge)

- Дмитрий Востоков @ DumpAnalysis.org -

Оригинальная статья: Dr. Debugalov at WHDC

Быстрый доступ к отладчику WinDbg

Четверг, 17 Июль, 2008

Эта легко запоминающаяся ссылка поможет вам быстро найти и установить отладчик WinDbg:

windbg.org

- Дмитрий Востоков @ DumpAnalysis.org -

Баги-предатели

Четверг, 17 Июль, 2008

Новые карикатуры от Narasimha Vedala:

Долина смерти

DBG_ValleyOfDeath from Narasimha Vedala (click to enlarge)

Моментальный фикс

DBG_AtAGlance from Narasimha Vedala (click to enlarge)

Не тот дамп

DBG_IgorMessesUp from Narasimha Vedala (click to enlarge)

- Дмитрий Востоков @ DumpAnalysis.org -

Оригинальная статья: Bugs prosecute defectors

Дампы Памяти для Чайников (Часть 3)

Четверг, 17 Июль, 2008

В предыдущей части мы рассмотрели как проверить тип дампа памяти: Часть 2. Сейчас я постараюсь объяснить падение (аварийное состояние) программ и роль постмортем отладчика (postmortem debugger).

Иногда компьютер (центральный процессор, ЦПУ) не может выполнить свою работу потому, что инструкции, которые он получает для того, чтобы сделать расчеты, прочитать или записать данные, являются неправильным. Представьте себе ситуацию, когда вы получаете адрес для доставки сообщения, и вы обнаруживаете, что он не существует… Следующая идеализированная картинка показывет эту ситуацию (если ячейки памяти, адреса, индексируются с 0, то -1, очевидно, неправильный адрес):

При обращении к неверному адресу ЦПУ выполняет специальную последовательность действий (так называемую ловушку, trap), что в конечном итоге, приводит к сохранению памяти, чтобы мы могли изучить ее содержание и выяснить, какие инструкции являлись неправильными. При падении операционной системы Windows мы видим синий экран, а затем память ядра (kernel memory) или полная физическая память компьютера сохраняется в файл (так называемый дамп ядра или полный дамп памяти, соответственно). Если у нас приложение или служба завершается аварийно, то ее содержимое памяти тоже сохраняются в файл (так называемый пользовательский дамп, user dump). Этот дамп памяти также называется постмортем дамп, и мы называем программу, которая сохраняет его - постмортем отладчик. Таких программ может быть несколько, и одна, которая указывается в реестре для выполнения, называется постмортем отладчик по умолчанию (default postmortem debugger). Следующая картинка иллюстрирует этот случай (здесь служба принтера, spoolsv.exe, аварийно завершилась из-за ошибки драйвера принтера):

В операционных системах до появления Windows Vista это был Dr. Watson (drwtsn32.exe), но он иногда не работал из-за ограничений, особенно в системах удаленного многопользовательского доступа (terminal services environment) и я всегда рекомендовал указывать в реестре другой отладчик, NTSD (ntsd.exe):

Как сделать NTSD постмортем отладчиком по умолчанию (статья на английском)

Я предпочитаю называть пользовательские дампы и полные дампы/дампы ядра постмортем дампами потому, что они сохраняются после того, как приложение, служба или система уже аварийно завершилась (фатальная ошибка уже произошла). Это отличает их от текущих снимков памяти (live memory dumps) сохраненных в ручную по желанию.

- Дмитрий Востоков @ DumpAnalysis.org -

Оригинальная статья: Crash Dumps for Dummies (Part 3)

Экзамен Windows Internals 71-660

Вторник, 15 Июль, 2008

Для тех, кто не знает — регистрация начинается через 2 дня:

Windows Internals Beta Exam 71-660

- Дмитрий Востоков @ DumpAnalysis.org -