Вступление
21 век иногда называют веком информации - то есть именно владение информацией определяет успех. Это утверждение в полной мере относится к информационным технологиям. В наше время невозможно знать всё - и лучше принять это как аксиому, это сэкономит тебе массу времени и усилий. Поэтому успешен не тот, кто всё знает, а тот, кто умеет быстро находить требуемую информацию. В школе и в институте тебе, вероятно, привили убеждение, что для успешной работы необходим некий "багаж знаний", а точнее, воз и маленькая тележка, и что тебе для обретения этого "багажа" нужно потратить кучу времени, занимаясь только обучением. Конечно, если ты что-то знаешь, это здорово, и как правило, вспомнить что-то быстрее, чем искать информацию об этом. Но навык поиска информации существенно важнее, поскольку он позволит тебе находить ответы на любые вопросы, а не только на те, ответы на которые есть в прочитанных тобой учебниках. Вот, собственно, о чём пойдёт речь.
На хрена мне это нужно?
Для начала - небольшое лирическое отступление.
На своей первой работе, примерно 2 года назад, когда я только начинал работать программистом, я разрабатывал некую систему 3D визуализации научных данных. К тому моменту я прочитал пару книжек по OpenGL, и думал, что я немерено крут
:). В какой-то момент мне нужно было наложить текстуру на 3D модель (если не знаешь, что это такое, не заворачивайся, это не принципиально). И с удивлением выяснил, что синий компонент текстуры пропал (т.е. вместо белого цвета видно сине-зелёный). В безуспешных попытках решить эту проблему я потратил примерно день, после чего обратился к боссу (привет, AVP :-). Через 10 минут чтения MSDN он мне прислал по асе кусок текста с решением моей проблемы. Когда я спросил его, работал ли он раньше с трёхмерной графикой, выяснил, что нет. На мой вопрос, откуда он это знает, он ответил что-то вроде "А ручки-то вот они!", чем вызвал у меня горячее желание его послать
:), но я сдержался.
Теперь я знаю, что имел в виду AVP, говоря про ручки, и собираюсь поделиться этим с тобой. The information should be
free!
Позволю себе привести ещё один пример. Не далее как сегодня, мой друг - Java-программист, работающий в одной туристический компании - спросил у меня по асе, не знаю ли я способа работать из Java с 1C бухгалтерией версии 7.7. Я сказал "wait", и через 15 минут дал ему ответ. И когда он спросил, "О!... Откуда ты узнал?", я ответил что-то про ручки и инет. А когда я сопоставил этот случай с моей 2-годичной давности проблемой OpenGL, я понял, что был не прав, и начал писать этот документ, поскольку, судя по обилию вопросов в конференциях вида "А как мне сделать...", эта тема ещё нигде не поднималась.
Итак, приступим!
Ценное замечание: текст выделенный шрифтом courier, следует рассматривать как одну строку без кавычек.
1. Учи язык!
IMHO большинство документации в Инете всё-таки на английском. Если ты в нём ни бум-бум, все изложенные ниже советы всё равно тебе помогут, но будь готов к тому, что ответ на особенно редкий вопрос в Рунете ты не найдёшь.
2. Профессионально используй поисковики
Предположим, перед тобой стоит какая-то задача, кажущаяся неразрешимой. Если ты уже безуспешно потратил на её решение 10 минут, самое время остановиться и задуматься - а есть ли в мире (т.е. в Сети) люди, которые сталкивались с похожей проблемой? Скорее всего, ответ положительный, это значит самое время посмотреть на проблему под несколько другим углом, и слегка усовершенствовать метод проб и ошибок и процесс чтения документации
🙂 Для начала, спроси у поисковиков. Основные правила составления запроса:
- Разделяй и властвуй (с) кто-то умный. Говоря проще - используй ту информацию, которая у тебя есть, для получения любой инфы об объекте твоего поиска. Например, ты ищешь информацию о том, как в винде программно перехватить комбинацию клавиш Ctrl+Alt+Del. Сначала спроси у поисковика что-то вроде
"Ctrl+Alt+del" intercept windows. Первый же ответ google - вопрос на каком-то форуме, и там написано "You can do this with a system wide keyboard hook...". Ага, думаешь ты, знать бы теперь, кто такой этот небобовый system wide keyboard hook! Да никаких проблем, не стесняйся и спроси у google ещё раз:
system wide keyboard hook. И на этот раз самый первый ответ - статья "How can I create a system wide keyboard hook under Win32?" с подробным описанием решения. Поздравляю, это именно то, что тебе нужно! - Если в ответ на твой запрос поисковик нашёл 4564324 варианта, попробуй его перефразировать, потому что иначе это какая-то полная фигня
:). Старайся использовать редкие термины, специфичные для того, что ты ищешь. Например, OLE лучше, чем COM; хотя в текстах на эту тему, как правило, встречаются оба слова, COM ещё обозначает домен первого уровня (yahoo.com), исполняемые файлы MS DOS (command.com) и одно из пространств имён иерархии java классов (com.sun.javadoc.Doclet). Если ты не уверен, обозначает ли термин, который ты ищёшь, что-то ещё, просто просмотри несколько первых ссылок, принцип здесь простой, как грабли - если всё не о том, значит ты не попал
🙂 - Если результат никакой (найдено 0 страниц) или близко к тому, сначала убедись в отсутствии орфографических ошибок. Слов, написанных с ошибками, в Сети
предостаточно, поэтому в ответ на запрос с ошибками какой-то результат ты всё равно получишь. - Если ты уверен, что запрос идеальный, а результат всё равно никакой, попробуй другой поисковик. Например, иногда лучше использовать google вместо яндекса, даже если ты ищешь что-то на русском языке - результат может быть в DOС или PDF файле, которые, насколько я знаю, яндекс не индексирует.
- Ну и наконец, если то, что нужно, не нашлось, делать нечего - попробуй расширить критерии поиска.
Честно признаюсь, мой любимый поисковик - google, из-за нескольких приятных фич. Вот некоторые из них.
- Знак минус (-) Если ты ищешь информацию о стране Швейцарии для туристов, а вместо этого вылетает 564 676 ссылок про швейцарские часы и швейцарский сыр, набери в строке поиска
швейцария -сыр -часы. Часы и сыр пойдут в сад аутоматычно
🙂 - Ключевое слово site: Более реальный пример - когда-то давно меня попросили составить базу данных e-mail адресов индийских компаний, занимающихся обеспечением качества ПО. Я пару минут подумал, после чего нашёл в сети список доменных имён первого уровня и с превеликим удивлением выяснил, что у Индии домен "IN". А уже после этого спросил у google что-то вроде
"Software testing" "Quality assurance" Site:.in , и получил ответ, близкий к реальности - google нашёл только те ресурсы, которые находятся в доменной зоне ".in", т.е. в Индии, что помогло нам организовать небольшую массовую почтовую рассылку
🙂 Согласись, что далеко не на каждой странице Русского интернета сверху написано большими буквами "Россия" или хотя бы "Люби Россию - твою мать"
🙂 - Ключевое слово inurl: Как правило, на хороших сайтах структура каталогов примерно соответствует логическому разбиению на подразделы, и это можно использовать. Например, запрос
form inurl:swing inurl:java найдёт только те документы, в URL которых есть слова swing и java, а в тексте документа - слово
form. - Кеширование документов. Если найденная ссылка не работает, как правило, можно нажать "cached" и посмотреть, как это было, когда работало. Например, однажды я таким образом нашёл номер сотового телефона одного перца, который он неосмотрительно оставил в фидошной конференции году так в 1996
🙂 - Возможность просматривать HTML версии документов типа .DOC, .PPT, .PDF. Удобно, если документ большой и с картинками, и скачивать его ломает.
3. Не забывай про официальную документацию
Например, ответы на некоторые вопросы ты намного быстрее найдёшь в MSDN. Если ты думаешь, что там только описания API функций, самое время изменить это убеждение. Например, злой босс подписал тебя ставить
Windows на нескольких десятках компов. Как обычно, сначала лучше подумать, а ещё лучше - использовать подручные технические средства типа MSDN. Первый же ответ MSDN на вопрос
Automate AND install AND windows содержит главу 5 из какой-то книги - Customizing and Automating Installations, что позволит тебе в процессе установки вместо тупого кликанья на Next оттянуться пивком. Кстати, подобные инструкции в официальном хелпе описаны настолько подробно, что даже американский сисадмин с IQ меньше комнатной температуры в состоянии сделать всё правильно, и как правило, с первого раза
🙂
4. Используй средства поиска, встроенные в Windows
Нет, я хочу рассказать не о поиске по Win+F - он совсем не рулит, скорее наоборот. Немногие знают, но вместе с Windows начиная с Win2K
Pro ставится Indexing Service, представляющий собой ядро поисковой машины среднего масштаба
🙂 Проблема, как обычно, в отсутствии явного упоминания об этом. Итак, начнём. Открывай Computer Management -> Services And Applications -> Indexing Service. Советую тебе удалить тот каталог, который там уже есть, и создать свой. Каталог - это база данных по индексированию документов, с целью последующего поиска по ним. При создании каталога тебя попросят указать папку, в которой будут храниться индексы - укажи какую-нибудь, которую ты точно не сотрёшь в борьбе за мегабайт. После чего, добавляй в этот каталог папки на жёстком диске, которые ты хочешь проиндексировать (например, у меня в C:\Documents около 300
Mб различной документации, в основном официальной). И запускай сервис! Если хочешь ускорить процесс индексации (по умолчанию он идёт очень неторопливо), кликай правой кнопкой мыши на "Indexing Service", выбирай All Tasks -> Tune Performance, в появившемся диалоге "Customize". Только не забудь предварительно остановить Indexing Service, иначе "Tune Performance" будет задизейблено. И настраивай!
Best Practice: Я обычно ставлю Indexing на максимум (Instant), когда я добавил что-то в индексируемую папку, после чего иду курить. Возвращаюсь - зашибись, всё проиндексировал (это видно по загрузке процессора), и сбрасываю обратно на минимум (Lazy). Чтобы задать этому поисковику вопрос - можно использовать документик C:\WINNT\Help\ciquery.htm. Один недостаток - работает только в IE, и после документа в URL нужно указать #machine=<computer
name>, catalog=<catalog name>, после чего всё становится хорошо. Я решил обе проблемы путём создания следующего ярлыка (строчка скопирована из поля Target в его свойствах):
"C:\Program Files\Internet Explorer\ IEXPLORE.EXE"
"C:\WINNT\Help\ciquery.htm# machine=soonts,catalog=std"
Если ты хочешь, чтобы индексировались не только HTML и TXT, но и документы Microsoft Office - просто поставь Office (не знаю, хватит ли версии меньше 2000, поэтому я не заморачиваюсь). Если нужна поддержка PDF (хотя после истории со Скляровым 10 раз подумаешь, а надо ли оно 🙂 - ищи в инете компонент "Adobe IFilter" и ставь. У меня версия 5.0, скачанная на халяву с adobe.com год назад, а теперь я поискал - и нету его на там, убрали
:(. В любом случае, я уверен, если оно надо, ты его найдёшь.
5. Работай головой, а не руками
Как и в случае с любой проблемой, если ты что-то делаешь, и у тебя ничего не получается вот уже 10 минут - вместо того, чтобы продолжать биться головой об стену, попробуй сделать что-нибудь другое.
Удачи!!!