воскресенье, 12 февраля 2012 г.

Особенности костылестроения под Windows

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

Одна из его историй изрядно позабавила. Прошу заметить, мопед не мой, я рассказываю лишь то, что рассказали мне. Поэтому комменты вида "а почему не сделали вот так?" буду пропускать мимо, но передам при случае автору, если что. Рассказываю по по памяти, но могут быть неточности. поскольку был немного под пивом.

Итак, есть в любой юникосоподобной системе, например Linux или FreeBSD такая замечательная утилита lsof. Про её пользу и назначение никому рассказывать не надо, надеюсь?

Ну, вот, потребовалось ему аналогичное под под Windows реализовать. Просто потому, что система никак штатными средствами не показывает кто держит локальный экзешеник или dll. То есть узнать кто держит файл по сети - без проблем. Через терминальную сессию - тоже, локально - фиг вам. Хорошо, есть такая функция в winapi, которая показывает все открытые дескрипторы файловой системы. Типа, зашибись. Есть что надо. Осталось только нужное написать.

Ага, пишет. Выясняется следующее - если эта утилита натыкается на любой именованный канал aka пайп при опросе, то она не возвращает управление обратно. Вообще. Совсем. Обойти никак, потому, что надо же сначала при выяснить, а что это такое там файл держит. Изначально ведь неясно, что там за процесс. Т.е. проигнорировать не получится, сказав - "видишь пайп - пройди мимо", если он определяет, что это пайп, то софтина из глубокого зависа уже не выходит. По вышеуказанной причине. "Что за фигня?", скажете вы. Вот тоже самое сказал он, когда с этим столкнулся.

Рытьё MSDN не помогает. Нету ничего. Сертифицированные по самые гланды разработчики под Windows тоже разводят руками. В итоге он пишет письмо самому Марку Руссиновичу, мол, такая вот ситуация. Делал так, делал эдак. Ничего не помогает. Руссинович пишет ему ответ в таком духе, что "не сношай себе мозг, пиши драйвер работающий на уровне ядра системы, который сможет выполнить нужное".

Драйвер. Уровня ядра. Чтобы посмотреть, наконец, мать вашу, какой процесс держит ФС. Те, кто реально работает с Linux, поймут идиотизм ситуации.

Морали не будет. Думайте сами.

суббота, 11 февраля 2012 г.

А что есть из аналогов Google Desktop Search под Linux?

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

Впрочем аналог не обязателен. Какие вообще решения для этой цели есть? Кроме прожорливого Beagle ничего не вспоминается.

среда, 8 февраля 2012 г.

Kindle 3

Забрал, наконец, привезённый мне из США Amazon Kindle 3 (он же - Kindle Keyboard) в модификации Wi-Fi+3G. Спросите почему не взял более новый, тот же Touch, например? Если честно, не понравился.. Меня вообще не вдохновляет чрезмерная сенсорориентированность электронных устройств, к тому же, Kindle Touch толще и гораздо хуже лежит в моей руке. Nook от Barnes & Nobles почему-то не впечатлил, хотя изначально хотел именно его.

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

Впрочем, от периодического таскания книжек у[info]der_arbeiter меня это не избавит, так у него имеется много такого, чего в электрическом виде просто нет.