Четверг, 17 сентября

Ночью шёл дождь, утром тоже слегка капало. Сквозь промытый воздух было далеко видно, в частности, горы на востоке очень красиво смотрелись под розовым небом.

Утром Сашик делал омлет на троих, Тим — два бутерброда в школу (у них кафетерий маленький, и если покупать еду, то большая часть перерыва уходит на стояние в очереди), а я им кофе варил. Я Тимоше помыл пару больших листов салата в бутерброды, бутерброды стали чуть потолще, чем обычно, и с трудом влезали в пакетики. Бедный Тимоша расстроился и отказался взять с собой мелкие морковки «потому что не осталось места в коробках». Ох непростой характер у мальчика…

Манечка прислала сообщение, что ей получше.

На работе меня ждал лаптоп из Калифорнии. Выяснилось, что проблема возникала не совсем там, где я думал: не при завершении самого первого «нормального» запроса (SCSIOP_READ_CAPACITY), а при завершении команды SCSIOP_ATA_PASSTHROUGH16, которую посылает мой «сигнальный» thread чтобы разрешить наши специальные команды. Ну я передвинул это разрешение специальных команд туда же, где открывается последовательный порт (через секунду после старта), и на этом лаптопе оно перестало грохаться. Однако не видя кода USBSTOR трудно сказать, насколько это решает проблему, например, не может ли выйти так, что read capacity задержится, и опять passthrough вернётся раньше времени? Добавлю-ка я такую специальную проверку завтра…

Обедали с Серёгой:

150917-121330

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

А пока я там на совещаниях прохлаждался, к мальчишкам приезжала Г.Я., сварила нам кастрюлю борща, ещё какие-то вкусности детям сделала, а они, кажется, нахамили ей в ответ, вместо того, чтобы «спасибо» сказать. Пришлось проводить воспитательную работу.

Панасоник вместо того чтобы мне позвонить или написать письмо, прислали мой сломанный птичий объектив (100-300мм) обратно, с письмом, в котором хотят за ремонт триста баксов с копейками. И что-то мне кажется, что не надо его ремонтировать, что обойдусь я и дальше 45-175мм с удлинителем — он чуть потемнее и чуть покороче, но зато резче, меньше, легче, и нету дурацкого поршня.

Среда, 16 сентября

Утро было тёмное, а день светлый и прохладный. Мы с мальчишками приехали к школьному автобусу чуть раньше, и постояли несколько минут там:

150916-064350

Немного пообщались с Манечкой текстовыми сообщениями: она жива и почти здорова, только опухоль укушенной щиколотки ни фига не уменьшилась, а даже увеличилась. Манечка думает, что это всё-таки аллергическая реакция, и что опухоль из-за того, что она целый день на ногах провела. Посмотрим, что дальше будет.

На работе продолжается всё то же. Оказывается, ещё и Картера тоже уволили. Я полностью восстановил всё, что отключал для вчерашних изменений и аккуратно закодировал рестарт отслеживания, правда в последнюю минуту, уже убегая встречать детей из школы, заметил ещё один путь в коде неокученный, но там совсем просто. А вот завтра будет интересно, если Натан действительно привезёт мне лаптоп с проблемой…

Дети из школы пришли на час позже, чем я думал, поэтому обедать мы с ними поехали уже после моего важного телефонного совещания на работе. После обеда купили ещё птицам орехов, а себе — по пирожному в китайской пирожной. Вечером с Сашиком закончили обдирать краску (с некоторым грустным воспитательным моментом), потом посмотрели с мальчишками одну серию «Ghost in the Shell», и всё.

Вторник, 15 сентября

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

В пять тридцать утра я уже приполз на кухню, и поскольку сегодня у нас Сашик должен был завтрак готовить, у меня образовалась минутка проверить email. В первом сообщении Илья мне предлагал 20% от нашего с ним дела (а себе — 51%). Я немного подумал, прислушался к своим ощущениям, понял, что с Ильёй больше работать не смогу, стёр со своего компьютера наши с ним совместные штуки, ответил ему «спасибо, не надо», и занялся с мальчишками обычными утренними делами. Потом пришлось ещё парой писем с Ильёй перекинуться, он немедленно пошёл на попятный, прислал «исправленный вариант» соглашения, в котором вроде было поровну (я не читал толком), извинялся, но вроде я объяснил ему большую часть проблемы (что у меня меняется отношение к людям после предательства, и хорошая память, другими словами, я не смогу ни простить, ни забыть).

Зато остальная часть дня была хорошей: от Манечки пришла пара SMS, первое «тяжело», я сразу переспросил «болеешь?», она сразу не ответила, а потом написала, что «боль в горле перебил укус какого-то подлого насекомого. Раздуло всю щиколотку». Т.е. не здорова, но, во всяком случае, жива! На работе я аккуратненько переделал completion contexts, всё как положено, lookaside маленьких структурок, если что-то по пути не так, то оно правильно чистится, и т.д. С первого раза всё правильно заработало, отладочный Windows больше ни на что не жалуется, все verifiers довольны. Послал это попробовать Стивену в Калифорнию, надеясь, что ничего не изменится (поскольку ничего такого, что могло бы повлиять на его проблему, я не трогал), а сам с Аделиком отправился пообедать, на обратном пути пройдя по дорожке, по которой раньше никогда не ходил:

150915-123058

После обеда Стивен подтвердил, что ничего не изменилось (ура!), а Натан сказал, что завтра едет в Калифорнию, и любезно согласился привезти мне этот чёртов лаптоп. Также я благополучно перелил Сашины триста гигабайт на его новый SSD, и поехал домой встречать мальчиков из школы. SSD отлично прижился, 450 МБ/сек, вроде как — должно хватить для записи видео. А я в очердной раз поразился тому, как Миха здорово починил этот чёртов микровыключатель питания — оказывается, Сашик его каждый раз использует, а не так, как я думал — иногда…

Вечером я возил Тимошу — на теннис, Сашу — на занятие по вождению (инструктор сказал, что хорошо Сашик рулит, экзамен должен сдать легко), теперь осталось посмотреть серию или две «Ghost in the Shell», и скорее спать.

Понедельник, 14 сентября

Утром было довольно тяжело вставать, несмотря на вчерашний ранний отбой. Детей пришлось будить несколько раз. Зато синие птицы в рассветных сумерках уже крутились вокруг, и потом всё утро шла кормёжка их, дятлов и вот ещё молодые скворцы, штуки три или четыре, а взрослых я что-то не видел:

150914-080759

Скворцы здесь какие-то подозрительно крупные, ненамного меньше синих галок — акселераты?

От Манечки никаких новостей нет, наверное в их деревне не работает телефон, или что-нибудь у неё с телефоном случилось. Очень хочется надеяться, что она не свалилась болеть совсем сильно…

На работе я наконец-то сумел поставить отладочную версию Windows, что характерно — только 8ю, 8.1 не может загрузиться с флэшки, дохнет где-то по пути, 8.1 с обновлениями грузится, но не может установиться, а 10 на MSDNе почему-то отладочной нету, а всякие левые партнёрские версии ставить не хочется, от них символов на публичных серверах нет. Так вот, отладочный classpnp 8 стал мне жаловаться, что у него SRB.DataBuffer не совпадает с PKT.DataBufCopy или что-то в этом роде. И действительно, выяснилось, что после моей подмены MDL я SRB.DataBuffer не могу восстановить как было, потому что MmGetSystemAddressForMdlSafe возвращает другой адрес для старого MDL, не тот, что стоял в SRB. А мне так хотелось ограничиться передачей старого MDL в completion routine! Попробую завтра с этим разобраться.

Вечером побеседовали с Сашиком про статистику (вроде всё он правильно понимает), пошкрябали старую краску (осталось на один раз, и можно будет красить), посмотрели втроём последнюю серию «Rick and Morty» и две серии «Ghost in the Shell» (там была одна история из трёх серий, и хотелось до логического завершения досмотреть), а теперь у Сашика жужжит компьютер, делает dism /capture-image /imagefile:e:\sasha.wim /capturedir:f:\ /name:sasha, это примерно 300GB. А завтра я ему сделаю dism /apply-image на новый SSD, чтобы он мог на своём лаптопе записывать видео как он играет в какие-то новые карточки, где он опять один из лучших в мире.

Воскресенье, 13 сентября

Утром снаружи шёл дождь, поэтому доделать деку не получилось, только вечером я ещё поотдирал старую краску, сколько мог. И всю неделю обещают дождливую, к сожалению.

Манечка присылала сообщения из автобуса, на котором они ехали в ту деревню, где будут жить — в двух с половиной часах от Рима. Боится, что заболевает.

Утром синие сойки обнаружили орехи, и началась невероятная движуха: одна за другой прилетали новые птицы, хватали один или два ореха, и скорее куда-то их утаскивали. В какой-то момент их было четыре в очереди. Ещё я явственно видел, как одна проглотила довольно большой орех целиком, прямо в шкуре. Очень это странно. Они явно не едят с такой скоростью, а прячут где-то про запас. Тоже мне, умные… Но красивые, да:

150913-104435

К Сашику днём приходили четверо молодых людей играть в настольную игру. Я их всех (и Тимошу) кормил свежеиспечёнными пиццами. Тимоша весь день программировал, устал и в какой-то момент запаниковал, заплакал даже. Я его ласково выпер погулять, он вернулся успокоенный, сразу у него всё получилось. Интересно, научило ли это его чему-нибудь?

Суббота, 12 сентября

Уфф… Какие насыщенные выходные! Погода — летняя, подъём был в девять, и едва позавтракав, началось вот это — на весь, практически, день:

150912-180558

но, к сожалению, не успели всё счистить до темноты, придётся завтра утром доделывать.

Манечка с подружкой целый день ватиканили: у них был билет на вход с первой группой, в 10 утра, а когда мы с Манечкой переписывались через телефон в их 6 вечера, они всё ещё там были. А завтра они в деревню уедут, и не факт, что связь там будет работать.

Мы с мальчишками днём съездили пообедать в Bento Box, встретили там Митю с семейством, он сказал спасибо за рекомендацию фотоаппарата. Потом зашли в птичий магазин, спросили «что у вас есть для синих галок?», юноша Кен с нами содержательно поговорил про corvidae и продал нам: небольшую плоскую кормушку, крюк, чтобы её присобачить к балкону, и орехи, чтобы в неё положить. Потом зашли купить пирожных к чаю в китайскую кондитерскую, встретили там старого физтеха Льва с сыном, но из-за кормушки, крюка и мешка с орехами в руках не получилось толком пообщаться. Я потом ему послал пару электронных писем, но пока без ответа. Крюк привинтили, кормушку повесили, орехов насыпали, и буквально через несколько минут пронаблюдали синюю галку с орехом в клюве! Посмотрим, что дальше будет. Боюсь, что белки и крысы тоже окажутся  неравнодушны к таким орехам. Также интересно насколько именно умны врановые: если я, к примеру, буду мимо кормушки шастать и их тем самым пугать, сообразят они, что по совокупности обстоятельств я — скорее хороший человек, чем плохой?

Пятница, 11 сентября

Погода совершенно летняя, ближе к вечеру нагрелось чуть ли не до 30°C, а в небе плавали эти огромные штуки красивые (я после работы пробежался по Мэримуру, сфотографировал):

150911-173303

Манечка благополучно прилетела в Рим, и краски её тоже, вроде бы. Чемоданы они оставили в камере хранения, а сами уже сходили посмотреть Колизей и Форум, а завтра у них билет в Ватикан погулять.

У нас на работе продолжаются катаклизмы: выяснилось, что вчера ещё и аккуратиста Скотта уволили, и Юрия тоже. (Они, по-моему, что тот, что другой ничего не делали с весны, если не раньше) То, что наш Кевин больше не начальник Натана, мы знали ещё вчера, и опасались, что хрен знает кого поставят, а оказалось, что нашим, грубо говоря, завотделом будет Рик, который у нас же и сидит, вполне вменяемый человек. А то что там выше нас, в общем-то, и не волнует. К сожалению, нового понимания нынешней конкретной проблемы у меня сегодня не добавилось. Хотя нет, чуть-чуть есть: выяснилось, что самый-самый первый запрос к USB диску когда завершается, почему-то USBSTOR.SYS вызывает какую-то дрянь, начинающуюся на Po, чтобы что-то сделать idle, что и так idle, и это почему-то жуткая проблема. О, вот прямо сейчас я вспомнил, что когда я на всё это с недоумением смотрел, то заметил странную строчку версии Windows — какой-то winblue что-то ltr. Надо будет в понедельник попробовать найти такую, может это всего-навсего ошибка в том конкретном USBSTOR.SYS?

А теперь нужно Тимошу забрать с вечернего тенниса с пиццей, посмотреть с мальчишками серию «Ghost in the Shell», и всё!

Четверг, 10 сентября

Погода такая же, как вчера: тёмное утро с туманом, потом солнышко. Фотография по дороге в школу:

150910-063829

А потом стало не до фотографий: на десять было намечено собрание без какой-то конкретной темы, но его отменили. Я занялся своим делом, а тем временем, оказывается, Натан увольнял китайца и Брюса. Китаец был к такому повороту дела давно готов, у него и вещей практически не осталось, а для Брюса это стало неприятным сюрпризом. Днём промелькнула новость что в конкурирующей организации больше тысячи человек увольняют. А вечером выяснилось, что и у нас того же порядка увольнения… А я тем временем продвинулся в понимании моей нынешней технической проблемы.

Манечка утром прислала сообщение из Ванкуверского аэропорта, видимо из самолёта улетающего. И весь день летит.

Вечером поездили с Сашиком на машине, и что-то я падаю от усталости, пойду-ка спать пораньше.

Среда, 9 сентября

Погода летняя: утром темно и туман, потом облака растаяли, днём было тепло. Фотография утренняя, по пути на работу:

150909-080558

Манечка начала своё путешествие. Около полудня их с подружкой отвезли на автобус, а без десяти шесть Манечка прислала сообщение, что они добрались до отеля в Ванкувере, где сегодня ночуют.

А мне пришлось раньше времени с работы убежать, потому что дети не отзывались на телефоны. Оказалось, что Саша ходил на интервью в Редмондский бассейн, чтобы там работать на каникулах, а Тимошин телефон почему-то под кроватью был. Но я всё равно что-то успел на работе, в частности, научился из debug extension с символами работать, записи свои на отлаживаемой машине находить, и в них копаться. Только дома уже осознал, что, наверное, надо не за каждым полем отдельно ходить, а стараться за один раз побольше выгребать с помощью ReadMemory

Вечер прошёл тихо, организованно. Поотдирали краску с Сашиком, сделали кучу всяких обязательные хозяйственных дел, посмотрели с мальчишками отличную серию Ghost in the Shell, и уже спать пора, завтра рано вставать.

Вторник, 8 сентября

Погода ничего себе, даже лестница просохла, и Манечка наконец-то смогла её покрасить (вчера и позавчера слишком влажная была). У детей возобновилась школа. Фотография утренняя, по дороге домой, уже без детей:

150908-064651

Тим выложил свой Minecraft plug-in на github, обогнал, можно сказать, папу…

Я на работе пропадал весь день, написал довольно аккуратные кусочки чтобы сохранять историю нескольких последних дисковых команд, а завтра нужно ещё написать debugger extension, чтобы в ней искать записи, относящиеся к определённым блокам…

Понедельник, 7 сентября

Погода получше, дождя сегодня не было, а белые облака на синем небе — были.

Дети утром устроили отвратительную сцену, Тимоша довёл Сашу до того, что тот облил Тимошу кофе нарочно. Пришлось проводить воспитательную работу.

Манечка переживала, что краски не доедут (были прецеденты), пришлось мне искать ей бумажки от производителей этих красок о том, какие они безопасные…

Ни гулять, ни на велосипедах кататься не получилось, и фотография — вид с кухни:

150907-173130

Вечером приходил в гости Манечкин бывший соученик Майкл, ненадолго, потому что завтра рано вставать.

Воскресенье, 6 сентября

Ночью прошёл дождь, но покрашенное вчера вроде не пострадало. А вот докрашивать из-за сырости не получилось.

Утром все спали — до десяти почти, и потом день как-то очень медленно шёл. Сашик писал сочинение, Тим старательно программировал, Манечка читала, я учился. Ближе к вечеру мы с Манечкой доехали до Аделиков, у которых очень давно не были:

150906-172839

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

Суббота, 5 сентября

Утро было светлое, а днём пошёл дождь — очень некстати, потому что мы как раз красили «балкон». И, к сожалению, обещают дожди каждый день до отъезда Манечки. Она, кстати, закончила сегодня сборы, уложила чемодан в котором красок и холстов существенно меньше, чем одежды. Сашик ездил днём лазать и с другом Павликом заниматься программированием, Тим ходил к другу Тео под дождём. Вечером приходили гости. Я когда не стучал молотком, то изучал язык программирования Go, думал и на дудке учился играть. Сфотографировал сухой лист, подобранный в гараже не полу:

150905-145841

Пятница, 4 сентября

Погода невнятная и на работе ни фига не получается (та вещь, которую я вчера думал, что починил, не починилась), и ещё выяснилось что у этого аппарата в режиме «А» выдержка слишком длинная (потому что у них же стабилизация, да?). Видимо это тот случай, когда надо было режим «S» включать, а я не догадался… Поэтому фотография птички не очень-то:

150904-190848

А гораздо более интересные позы оказались неприлично размытые, с 1/20-то секунды…

Четверг, 3 сентября

В четыре утра я проснулся то ли уже осознав вчерашние две проблемы, то ли это осознание пришло вскоре. Вот как полезно пораньше с работы уходить! Кнопка не срабатывала со второго раза потому после первого CRC сектора было не с чем сравнивать. А вторая проблема была как сделать рестарт после огромного trim. Ответ — как только не будет ни одного outstanding request, только это надо поаккуратнее программировать, сегодня не получилось. Сегодня я починил кнопку, добавил правильную установку параметров последовательного порта, и вроде бы ещё одну вещь, но это пока неизвестно.

Днём в небе были красивые облака. Мы даже с Манечкой сходили погулять к магазину, чтобы их сфотографировать, но к сожалению, самый пик пропустили пока кофе пили… Вот так получилось:

150903-125924

Вечером посмотрели последнюю серию первого сезона «Дживса и Вустера», а потом Манечка на волейбол поехала.

Среда, 2 сентября

Утром была вчерашняя тёмная погода, днём в небе появились просветы, а к вечеру лето начало возвращаться.

Я хотел на работе закончить новую версию драйвера, но напоролся на непонятное явление (кнопка test с первого раза не срабатывает), понял что сегодня не успею, и в полшестого домой поехал, порадовавшись облакам в небе:

150902-173010

Интересно, вот этот человек просто отвлёкся, или оно, как всё хорошее, кончилось уже?

Вторник, 1 сентября

Погода продолжается тёмная и мокрая. Дождь капал, кажется, весь день, и довольно прохладно. Птицы на кормушках практически непрерывно паслись, но фотография очень скромная, скромной же птички под названием Black-Headed Junco (самочки):

150901-184344

Утром теперь придётся вставать в шесть, чтобы успевать мальчиков привозить к автобусу от ближней школы в их школу, который уезжает без десяти семь. Сегодня их отвезла Манечка, потом она занималась всякими делами, опять немного переделала картину с яблоками (стало ещё лучше), а днём мы с ней вместе ездили помогать Г.Я. по технической части. На работе я научился посылать команды дискам через последовательный порт, там оказалось что длина пакета передаётся LSB, а CRC — MSB, и устал страшно, просто падаю… И Саша устал — заснул пока мы все смотрели очередную серию Jeeves and Wooster.

Понедельник, 31 августа

День был тёмный и мокрый. Вот такой:

150831-181339

Манечка утром возила Сашика на занятие по вождению, а потом помогала детям собраться в школу. Я на работе разбирался с тем, как разговаривать с дисками через маленький разъём (это на самом деле serial port, только низковольтный), и чтобы дело шло повеселее — на Питоне. Я уж и забыл как на Питоне приятно программировать…

Воскресенье, 30 августа

Ночью опять шёл дождь, а днём была странная погода: то темнело и дождик брызгал, то солнышко выглядывало, с периодом где-то в час.

Вчера мы чуть-чуть пообщались с Ванечкой, а сегодня утром я ему послал ссылку на хорошую заметку одной психологини, но он не ответил.

День провели, занимаясь разными делами, кто чем. Манечка дорабатывала фон на последней картине, ездила за едой, поменяла Сашику занавески в комнате, а то очень уж у него мрачно было. Тим программировал свои Minecraft plug-ins, у него случился хороший случай познакомиться с regular expressions, и он даже написал правильный код, но боюсь, что всего их потенциала не осознал. Сашик утверждает, что тоже делал что-то полезное, но я подозреваю, что не очень-то. Я изучал что в программистском мире происходит, соображал, чего бы такого сделать, чтобы было что показывать потенциальным работодателям. Научился собирать chromium, ужаснулся его размеру. Что-то не уверен я, что хочу с ним связываться… Вспомнил свою «крутилку» на JavaScript, начал её приживлять в Apache Cordova. Обновил golang до нынешней версии 1.5. Попробую поработать над читалкой-писалкой exif metadata на go для разминки…

Вечером все вместе сходили погулять в ближайший парк, и тоже начало капать, мы забоялись и вернулись домой. А уже после прогулки я сфотографировал вот этих синичек, называемых по-местному Bush Tits:

150830-181526

Они, кажется, так и живут дружным коллективом. Это сфотографировано 45-175мм объективом с 1.5x Никоновским удлиннителем — получается чуть ли не лучше, чем сломавшимся 100-300, который я вчера послал в ремонт.

Суббота, 29 августа

Ночью прошёл обещанный дождь, я сквозь сон слышал жуткий шум воды и ветра. Утром к нам приходили гости, и мы даже собирались погулять, потому что наступило затишье, и на виде из космоса был виден большущий просвет в облаках как раз над нами. Но стоило нам выйти из дома, как подозрительно закапало, и мы передумали. А потом начались сильные порывы ветра, такие, что триста тыщ человек остались без электричества. Нас, впрочем, миловало: один раз моргнуло, и всё (только сервер в гараже и роутеры перегрузились). Днём ездили вчетвером в любимый Тимошей Bento Box, по дороге получилась вот такая фотография:

 150829-152215

А потом каждый занимался своими делами — до вечера. Вечером посмотрели все вместе первую серию Jeeves and Wooster (Саша говорит, что уже видел первые серии, а Тим — нет). И опять пошёл дождь, такой сильный, что пришлось прочищать водостоки перед домом, а то уже гараж начало заливать. Интересно, утром электричество будет у нас?

Пятница, 28 августа

Манечка в шесть утра посмотрела в тёмное окно, послушала как капает дождь, и дальше спать легла. А её художественная подруга Л. таки поехала в поля рисовать, не такая уж плохая погода потом оказалась. А Манечка зато закончила натюрморт с яблоками, по-моему, прекрасный. А Тимошик доделал тот Minecraft plug-in, что вчера делал, и новый сегодня, кажется, запрограммировал. Сашик, правда, ничего такого выдающегося не сделал, только недолго поскоблил старую краску, а потом убежал домой, сославшись на дождь. А я победил наконец-то IOCTL, уже вечером. Поймал Натана, который как раз проходил мимо, объяснил ему в чём проблема, и в процессе объяснения сам понял: оказывается, storport отвинчивает SCSI_PASS_THROUGH запросы у которых MinorFunction 0. Это, естественно, нигде не написано, а узнать можно, не работая в Микрософте, только терпеливо продираясь через ассемблерный код в отладчике, на пятом примерно уровне в глубину. Теперь у меня команды посылаются, и я могу с чистой совестью радоваться выходным и не заботиться о том, что будет в понедельник. Примерно как эта синичка, похожая на европейского воробья:

150828-185547

А завтра обещают сильный шторм…

Четверг, 27 августа

Жара, лето. 30°C, было, вроде как. А завтра обещают резкое похолодание и дождь на весь день, ура!

Манечка возила мальчишек и Сашиного друга Павлика на экскурсию в местный университет, а я сидел на работе. Первым делом починил отладчик, дурацкие паузы исчезли. Подозреваю, что дело было не в Serial vs Network, а в том, что symbol path был чуть-чуть корявый. Теория о том, что в драйвере неправильно упакована структура SCSI_PASS_THROUGH оказалась неправильной. В тестовой user mode программке, откомпилированной для x64, размер тоже 0x38, но она работает. Упростил логику, перенёс всю возню с сигналами в отдельный thread, почистил обработку того случая, когда уже нашли искомое, и надо предотвратить все дальнейшие обращения к диску. Код стал выглядеть прилично, но всё равно не работает — storport/usbport ругаются, говорят «параметр неправильный». И только к вечеру, уже уходя с работы, я придумал новую теорию: наверное, надо вместо IOCTL сделать нормальный IRP с IRP_MJ_SCSI, надо посмотреть в исходные тексты disk/classpnp, которые есть в WDK — не они ли превращают этот IOCTL в SCSI?

Мы, вообще-то, собирались с Манечкой и её подругой Л. завтра вместе поехать в Palouse Country рисовать-фотографировать, а потом в город с прекрасным названием Coeur D’Alene на выставку какого-то хорошего художника (уровня Фешина), которая открыта только до первого сентября. Но говорят, что там сильно дымно от лесных пожаров, поэтому решили не ехать. А я, раз такое дело, пойду на работу добивать специальные команды.

Гулять не получилось выйти, фотография кухонная — «Манечка опаздывает на волейбол»:

150827-204345

Среда, 26 августа

Уфф… Целый день пытался послать Force Debug Stop из драйвера, и пока что не получилось. Во-первых, выяснилось, что IoBuildDeviceIoControlRequest нельзя вызывать из, например, completion routine. В документации этого не написано, но эмпирически — нельзя. Пришлось сильно менять логику, получилось не очень красиво. Во-вторых, выяснилось, что USBSTOR вроде бы пропускает «разрешить секретные команды», но сама команда ему потом не нравится, причём очень странным образом, а в STORPORT даже и «разрешить» не лезет, причём код ошибки там другой. Ну и процесс почему-то связан с чуть ли не минутными замираниями загрузки тестовой машины, реакции отладчика на кнопку, и т.д.

Я-то собирался сегодня закончить, а завтра составить компанию Манечке и детям на экскурсию в местный университет, а вот не вышло…

Вечером когда я с работы приехал, дома никого не было, они все в парке в теннис играли:

150826-184157

Испекли пиццу, съездили с Сашиком покататься, выбрали фотографию, и всё, пора спать.

Вторник, 25 августа

Полдня прошло в совещаниях с высоким начальником. Ничего такого, что имело бы немедленную практическую важность, он не сказал, но и хорошего тоже, к сожалению. Манечка поскольку сегодня возила детей в школу регистрироваться, а потом встречала Г.Я. в аэропорту, обедал я с мужиками. Они надеются, что до Рождества у нас никаких катаклизмов не будет. А Натан считает, что запросто могут нас всех разогнать, приводя в пример Honeywell — тоже старая инженерная компания, однако легко увольняла людей прямо перед праздниками…

После обеда я всё-таки доехал до дома, помог Манечке и Сашику собрать новый кухонно-столовый стол, который она оторвала с какой-то огромной скидкой (а старый, купленный с рук давным-давно совсем уже разваливался), сделал им всем кофе, и поехал дальше работать. Много не наработал, только убедился, что тот же самый IOCTL_SCSI_PASS_TRHOUGH с ATA_PASSTHROUGH16 замечательно работает как для USB, так и для SATA, и осознал, что таки надо обязательно вызывать KeBugCheckEx сразу как только команда послана, а то Windows немедленно опять начинает с диском разговаривать.

Вечером недолго погуляли с Манечкой:

150825-192209

А потом она убежала на день рождения к Аньке, а мы с мальчишками посмотрели последние две серии «Rick and Morty», и я работать-учиться сел.

Понедельник, 24 августа

Погода хорошая, солнышко.

Рабочая неделя началась нормально: дети полдня спали,  Манечка ездила по делам, а у нас на работе Натан повторил пятничные новости для двух сотрудников, которых в пятницу не было, и добавил, что сам тоже ищет работу. В обед они все вместе (и с Калифорнийским начальником Кевином) пошли в пивоварню через дорогу, а я домой поехал, и выгадал: они там сорок минут там ждали пока к ним официант подойдёт.

После обеда Манечка пошла вниз рисовать, и всё ещё рисовала, когда я с работы приехал:

150824-182342

А я успел всё-таки научиться посылать секретные команды, в частности «Force Debug Stop», и услышал как диск хрюкнул, втянув свои «звукосниматели» в парковочную зону. А вот чего я не ожидал, что он немедленно опять заведётся. Завтра попробую выяснить, почему — во второй половине дня, а в первой у нас сплошные совещания…

Вечером покатались полчаса с Сашиком на машине, заодно разобрались как правильно руль крутить. Я тоже не знал, как это положено делать, но мы посмотрели на телефоне видео и научились…

Воскресенье, 23 августа

Дым кругом, от этого странное белое небо и прекрасная воздушная перспектива:

150823-144936

Это мы на велосипедах катались днём. Видели как какая-то тётя упала в обморок, или что похуже, скорая помощь её потом забирала.

Вечером Манечка на волейбол пошла, а мы с мальчишками мультики смотрели. Закончили «Арчера» и начали второй сезон «Рик и Морти».

Рабочая неделя обещает быть очень напряжённой, поэтому пойду-ка я спать.

Суббота, 22 августа

Жарко, и дым пришёл, причём он был не в небе, как тот, что из Калифорнии, а прямо на улице — конкретный такой синий дым с востока, где сейчас идут страшные лесные пожары.

Манечка весь день провела с Машей. Сашик утром смотрел живьём международный турнир по стрелятельной игре, потом пообдирал красу, потом закончил школьное задание на лето.

Тимошик весь день сидел, программировал Minecraft plug-in на Яве, к вечеру закончил, ненадолго выбирался на день рождения к Филе (почему-то в пивную).

Я изучал torii, но не очень-то продвинулся из-за жары и всяких отвлечений. Зато на дудке вечером поучился играть. Трудно с непривычки.

Вечером ходили с Манечкой, Машей и Сашиком гулять по окрестностям, видели симпатичных лошадей, которые хотели общаться:

150822-192407

А нам не хотелось напрягать хозяев этих лошадей, поэтому мы держались подальше.

Пятница, 21 августа

Погода прекрасная, а я на работе пропадал весь день.

Утром Манечка повезла Сашика на занятие по вождению, а у нас на работе Натан, вернувшийся с Интеловской конференции, рассказал две невесёлые новости: первая, что Интел в ужасном состоянии, а вторая — что наша контора, похоже, накрывается. Придётся искать новую работу, и довольно скоро. В этот раз я почему-то к этому гораздо спокойнее отношусь, чем в прошлый.

Потом мы с Натаном и Джеффом обсуждали мои вчерашние изменения, и Натан предложил вместо того, чтобы отвинчивать  приходящие запросы с STATUS_NO_SUCH_DEVICE, просто ничего с ними не делать, пусть висят в пространстве. На здоровой системе это было бы свинство, а для наших тестовых целей — это может оказаться лучше. Только я не успел это сегодня проверить, потому что потратил все силы на борьбу с USB анализатором, который почему-то мне показывал полную фигню.

Вообще-то надо бы было сходить поплавать, но во-первых, некогда, а во-вторых, там через несколько дней будет ежегодная чистка, не хочется в грязноватую воду лезть. Так что не пошли. Но Сашик вечером сам съездил полазать. И несколько досок отчистил сам. Манечка немного порисовала внизу. Гулять не ходили, фотография только с кухни:

150821-175321

А вот Паша выложил целый альбом отличнейших фотографий из Питера, и я их теперь рассматриваю. А потом пойду дальше «Библиотекаря» читать, и до понедельника о работе беспокоиться не буду.

Четверг, 20 августа

Утро было тёмное, мокрое и прохладное, потому что прошёл небольшой дождь. Днём облака растаяли, и стало опять лето.

Утром хаотический Стивен из Калифорнии прислал письмо «я понял! Оно работает когда тестируешь с помощью специальной кнопки, а когда на самом деле система грохается, то лампочка не успевает загореться!» Я уже было начал ему отвечать, что он неправ, а потом решил перепроверить, и оказалось что неправ-то как раз я: когда я вызываю KeBugcheckEx(0xbadda1a,…), всё, действительно, останавливается, включая ту штуку, которая должна лампочку зажечь. А потому что не надо было мне выключать пару строчек, которые должны были ждать пока лампочка зажжётся, а уж потом возвращать контроль туда, где делают bugcheck. Неприятность только в том, что почему-то эти строчки тоже не работали: KeWaitForSingleObject просвистывал насквозь, возвращая STATUS_SUCCESS, не обращая внимания на сброшенный event. Пришлось поменять логику, теперь я KeBugCheck вызываю только после того, как лампочке велю загореться, а чтобы не мучиться с ожиданием, на все последующие обращения к диску отвечаю STATUS_NO_SUCH_DEVICE.

Починил, послал письмо Стивену, и пошёл по ближайшему лесу погулять, пока лето:

150820-155935

Вечером работали с Ильёй, включили ember 2.0 и ember-paper, который довольно симпатично выглядит. Только я пока не узнал какие волшебные слова написать в app.scss, чтобы, например, подкрутить цвета.

Среда, 19 августа

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

Специальный мужик из Калифорнии ответил, что он использует ATA_PASSTHROUGH16, а не ATA_PASSTHROUGH12, и эта часть у меня заработала. Глупо получилось, я мог бы и сам посмотреть в исходники storahci и узнать что про 16 там знают, а про 12 — нет. Забавно, опять я чем-то таким занимаюсь, про что даже Гугль не знает… А ближе к вечеру я опять застрял, никак не мог понять почему никак не могу поймать в отладчике одну нашу внутреннюю программу, чтобы посмотреть как она работает. Только когда стало пора идти домой, осознал, что эта программа почему-то не видит SATA диска, а только USB, поэтому breakpoints в storahci и не срабатывают. А когда уже ехал домой, придумал завтра записать USB traces, там должно быть хорошо видно как именно оно работает.

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

Только что случайно наткнулся на интересное видео Джоэла Мейеровица. Интересно, как это он двумя глазами смотрит с той Лейкой? У неё же, наверное, 0.72x увеличение видоискателя? Или это у него M3 такая серенькая?

Музыкант Саша в Фейсбуке похвалил книжку «Библиотекарь» Михаила Елизарова, надо будет прочитать.