вторник, 27 января 2009 г.

Чудеса случаются!..

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

Самый простой способ решения проблемы - привязаться к датам файла и письма. Если дата письма больше даты файла, то такое письмо содержит новую версию файла и его необходимо заменить. Казалось бы - ну где тут можно найти проблемы?

А проблема-то очень интересная :) Делаем следующее:

  1. создаем файл с именем А
  2. переименовываем этот файл, например, в Б (некритично, можно и удалить)
  3. создаем файл с именем А

Вопрос - какое будет время создания нового файла А?

Неа, не угадали - временем создания нового файла А будет время создания старого файла А.

Вот такие дела. В итоге пришлось принудительно ставить время создания файла :(

среда, 21 января 2009 г.

А-ф-и-г-е-т-ь!

Оказывается Windows 7 и Windows Server 2008 R2 можно устанавливать не только на реальный раздел жесткого диска, но и на .vhd-образ. Причем этот образ можно создать "на лету" в процессе установки. Инструкция - тут . Вообщем, у меня нет слов :) Это фантастика!

вторник, 20 января 2009 г.

Microsoft Enterprise Desktop Virtualization

На днях компания Microsoft опубликовала бета-версию Microsoft Enterprise Desktop Virtualization (MED-V) Посмотреть работу этой штуки в действии можно тут (скачать ролик (20 Мб) - тут).

Вообщем-то ролик очень информативен - рекомендую посмотреть. Основное:

  • Администратор готовит один или более образов нужных ОС с нужным набором софта.
  • Распространяет эти ОС среди членов домена (насколько я понял - даже есть версионность, т.е. в случае обновления образа он обновится у всех членов домена у кого есть доступ к нему)
  • Список ссылок на софт из виртуальной машины интегрируется в стандартное меню Пуск (также настраивается).
  • Администратор настраивает как именно будет запускаться софт в виртуальной машине - отображая рабочий стол этой машины конечному пользователю или отображая только интерфейс конкретной программы (в этом случае, если у программы есть иконка в трее - она тоже отображается в трее реальной машины!!! жесть :) )

Может что-то и еще есть, но я пока что не заметил.

Навскидку, зачем все это надо:

  • Единый набор софта для пользователей в домене - автоматически обновляющийся системным администратором сразу у всех пользователей
  • Легкость в использовании - все отличие между "виртуальным" и реальным софтом - в наличии красной рамочки у окон "виртуального" софта.
  • Легкость в тестировании своего софта под разные ОС. В частности, интерфейс программы запущенной в виртуальной ХР будет отображаться в реальной висте в стиле ХР.

Вообщем, интуитивная простота в использовании. Мне понравилось :)

Алгоритм Шинглов — поиск нечетких дубликатов текста

Довольно подробное описание алгоритма находится здесь. Код написан на питоне, но для понимания принципов работы алгоритма это неважно. Для тех, кто не знает что это такое, процитирую:
Немного теории
Поиск нечетких дубликатов позволяет предположить, являются ли два объекта частично одинаковыми или нет. Под объектом могут пониматься текстовые файлы и другие типы данных. Мы будем работать с текстом, но поняв, как работает алгоритм, вам не составит труда перенести мою реализацию на необходимые вам объекты.
Обратите внимание, задачей не стоит определить абсолютное значение схожести объектов, а так же выделения в каждом из объектов схожих частей. Нам необходимо только предположить, являются ли объекты почти дубликатами или нет.
Где может применяться данный алгоритм?
Как я уже писал выше, он может быть применен в поисковой системе для очистки поисковой выдачи. Так же данный алгоритм может использоваться для кластеризации документов по их схожести.

Свершилось!

Получил свидетельство о государственной регистрации программы для ЭВМ - "Модульной системы машинного перевода".

Радуюсь :)

четверг, 15 января 2009 г.

Если Проводник падает...

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

Решить данную проблему можно следующим образом (на примере mpg-файлов):

  1. запустить Regedit.exe
  2. Найти HKEY_CLASSES_ROOT\.mpg
  3. На всякий случай сделать резервную копию раздела (правой кнопкой - Экспорт)
  4. Удалить раздел HKEY_CLASSES_ROOT\.mpg\shellex

P.S.: кстати, из-за этого могут/будут падать и те программы, которые так или иначе используют проводник. В частности, у меня на машине вдруг внезапно начала падать Nero 7...


Горячие клавиши в Windows

Основные сочетания клавиш:
• CTRL+C: копирование
• CTRL+X: вырезание
• CTRL+V: вставка
• CTRL+Z: отмена действия
• DELETE: удаление
• SHIFT+DELETE: удаление выбранного объекта без возможности восстановления, не помещая объект в корзину
• CTRL с перетаскиванием объекта: копирование выделенного объекта
• CTRL+SHIFT с перетаскиванием объекта: создание ярлыка для выбранного объекта
• Клавиша F2: переименование выбранного объекта
• CTRL+СТРЕЛКА ВПРАВО: перемещение точки ввода в начало следующего слова
• CTRL+СТРЕЛКА ВЛЕВО: перемещение точки ввода в начало предыдущего слова
• CTRL+СТРЕЛКА ВНИЗ: перемещение точки ввода в начало следующего абзаца
• CTRL+СТРЕЛКА ВВЕРХ: перемещение точки ввода в начало предыдущего абзаца
• CTRL+SHIFT + клавиши со стрелками: выделение блока текста
• SHIFT + клавиши со стрелками: выбор нескольких объектов в окне или на рабочем столе, а также выделение текста в документе
• CTRL+A: выделение всего документа
• Клавиша F3: поиск файла или папки
• ALT+ВВОД: просмотр свойств выбранного объекта
• ALT+F4: закрытие активного окна или завершение работы активной программы
• ALT+ВВОД: просмотр свойств выбранного объекта
• ALT+ПРОБЕЛ: вызов контекстного меню активного окна
• CTRL+F4: закрытие активного документа в приложениях, в которых одновременно можно открыть несколько документов
• ALT+ТАБУЛЯЦИЯ: переход между открытыми объектами
• ALT+ESC: просмотр объектов в том порядке, в котором они были открыты
• Клавиша F6: поочередный просмотр элементов интерфейса в окне или на рабочем столе
• Клавиша F4: отображение панели адресов в папке «Мой компьютер» или в обозревателе Windows Explorer
• SHIFT+F10: вызов контекстного меню для выделенного элемента
• ALT+ПРОБЕЛ: вызов системного меню для активного окна
• CTRL+ESC: вызов меню «Пуск»
• ALT+подчеркнутая буква в названии меню: вызов соответствующего меню
• Подчеркнутая буква в имени команды открытого меню: выполнение соответствующей команды
• Клавиша F10: активация строки меню в используемой программе
• СТРЕЛКА ВПРАВО: вызов следующего меню справа или подменю
• СТРЕЛКА ВЛЕВО: вызов следующего меню слева или закрытие подменю
• Клавиша F5: обновление активного окна
• Клавиша BACKSPACE: просмотр содержимого папки, расположенной выше на один уровень в каталоге «Мой компьютер» или обозревателе Windows Explorer
• Клавиша ESC: отмена выполняемого задания
• SHIFT при загрузке компакт-диска в привод для компакт-дисков: предотвращение автоматического воспроизведения компакт-диска
• CTRL+SHIFT+ESC: вызов диспетчера задач


+ большой бонус

Сочетания клавиш для диалоговых окон
При нажатии клавиш SHIFT+F8 в окнах списков связного выбора включается режим связного выбора. В этом режиме можно использовать клавиши со стрелками, чтобы переместить курсор, сохраняя выбор объекта. Для настройки параметров выбранного объекта нажимайте CTRL+ПРОБЕЛ или SHIFT+ПРОБЕЛ. Чтобы отключить связный режим, нажмите SHIFT+F8. Режим связного выбора отключается автоматически при перемещении фокуса к другому элементу управления.

• CTRL+ТАБУЛЯЦИЯ: перемещение вперед по вкладкам
• CTRL+SHIFT+ТАБУЛЯЦИЯ: перемещение назад по вкладкам
• ТАБУЛЯЦИЯ: перемещение вперед по опциям
• SHIFT+ТАБУЛЯЦИЯ: перемещение НАЗАД по опциям
• ALT+подчеркнутая буква: выполнение соответствующей команды или выбор соответствующей опции
• Клавиша ВВОД: выполнение команды для текущей опции или кнопки
• Клавиша ПРОБЕЛ: установка или снятие флажка с поля, если активный параметр представлен флаговой кнопкой
• Клавиши со стрелками: выбор кнопки, если активная опция входит в группу переключателей
• Клавиша F1: вызов справки
• Клавиша F4: отображение элементов активного списка
• Клавиша BACKSPACE: открывает папку, расположенную на один уровень выше, если папка выбрана в диалоговом окне Сохранение документа или Открытие документа

Горячие клавиши стандартной клавиатуры Microsoft Natural Keyboard
• Эмблема Windows: открывает или закрывает меню «Пуск»
• Эмблема Windows+BREAK: вызов диалогового окна Свойства системы
• Эмблема Windows+D: отображение рабочего стола
• Эмблема Windows+M: сворачивание всех окон

• Эмблема Windows+SHIFT+M: восстановление свернутых окон
• Эмблема Windows+E: открытие папки «Мой компьютер»
• Эмблема Windows+F: поиск файла или папки
• CTRL+эмблема Windows+F: поиск компьютеров
• Эмблема Windows+F1: вызов справки Windows
• Эмблема Windows+ L: блокирование клавиатуры
• Эмблема Windows+R: вызов диалогового окна Запуск программы
• Эмблема Windows+U: вызов диспетчера служебных программ

Сочетания клавиш специальных возможностей
• Удерживание правого SHIFT 8 секунд: включение и отключение фильтрации ввода
• Левый ALT+левый SHIFT+PRINT SCREEN: включение и отключение высокой контрастности
• Левый ALT+левый SHIFT+PRINT SCREEN: включение и отключение высокой контрастности
• Пятикратное нажатие SHIFT: включение и отключение залипания клавиш
• Удерживание клавиши NUM LOCK 5 секунд: включение и отключение озвучивания переключения
• Эмблема Windows+U: вызов диспетчера служебных программ

Сочетания клавиш в обозревателе Windows Explorer
• Клавиша END: переход вниз активного окна
• Клавиша HOME: переход вверх активного окна
• Клавиша NUM LOCK+звездочка (*): отображение всех подкаталогов выбранной папки
• Клавиша NUM LOCK+знак «плюс» (+): отображение содержимого выбранной папки
• Клавиша NUM LOCK+знак «минус» (-): сворачивание выбранной папки
• СТРЕЛКА ВЛЕВО: сворачивание выбранного объекта, если развернут, или выбор родительской папки
• СТРЕЛКА ВПРАВО: отображение выбранного объекта, если свернут, или выбор первой вложенной папки

Сочетания клавиш для таблицы символов
Дважды щелкнув символ на сетке знаков, можно перемещаться по сетке, используя сочетания клавиш:
• СТРЕЛКА ВПРАВО: перемещение вправо или в начало следующей строки
• СТРЕЛКА ВЛЕВО: перемещение влево или в конец предыдущей строки
• СТРЕЛКА ВВЕРХ: перемещение на одну строку вверх
• СТРЕЛКА ВНИЗ: перемещение на одну строку вниз
• Клавиша PAGE UP: перемещение вверх на один экран за раз
• Клавиша PAGE DOWN: перемещение вниз на один экран за раз
• Клавиша HOME: переход в начало строки
• Клавиша END: переход в конец строки
• CTRL+HOME: переход к первому символу
• CTRL+END: переход к последнему символу
• Клавиша ПРОБЕЛ: переключение режимов увеличения и обычного представления выбранного символа

Сочетания клавиш для главного окна консоли управления (MMC)
• CTRL+O: открывает сохраненную консоль
• CTRL+N: открывает новую консоль
• CTRL+S: сохранение открытой консоли
• CTRL+M: добавление и удаление объекта консоли
• CTRL+W: открывает новое окно
• Клавиша F5: обновление содержимого всех окон консоли
• ALT+ПРОБЕЛ: вызов меню «Окно» консоли управления (MMC)
• ALT+F4: закрывает консоль
• ALT+A: вызов меню «Действие»
• ALT+V: вызов меню «Вид»
• ALT+F: вызов меню «Файл»
• ALT+O: вызов меню «Избранное»

Сочетания клавиш окна консоли управления (MMC)
• CTRL+P: печать текущей страницы или активной области
• ALT+знак «минус»: вызов меню «Окно» активного окна консоли
• SHIFT+F10: вызов контекстного меню «Действие» для выделенного элемента
• Клавиша F1: открывает раздел справки (при наличии) по выделенному объекту
• Клавиша F5: обновление содержимого всех окон консоли
• CTRL+F10: сворачивание активного окна консоли
• CTRL+F5: восстановление активного окна консоли
• ALT+ВВОД: вызов диалогового окна Свойства (при наличии) для выделенного объекта
• Клавиша F2: переименование выбранного объекта
• CTRL+F4: закрытие активного окна консоли; если консоль содержит только одно окно, данное сочетание клавиш закрывает консоль

Подключение к удаленному рабочему столу
• CTRL+ALT+END: открытие диалогового окна Безопасность Microsoft Windows NT
• ALT+PAGE UP: переключение между программами слева направо
• ALT+PAGE DOWN: переключение между программами справа налево
• ALT+INSERT: перемещение между программами в порядке, который использовался последним
• ALT+HOME: вызов меню «Пуск»
• CTRL+ALT+BREAK: переключение клиентского компьютера между режимом окон и полноэкранным режимом
• ALT+DELETE: вызов меню «Windows»
• CTRL+ALT+знак «минус» (-): помещение снимка всей области клиентского окна в буфер обмена на сервере терминалов (действие, аналогичное нажатию клавиш ALT+PRINT SCREEN на локальном компьютере)
• CTRL+ALT+знак «плюс» (+): помещение снимка активного окна клиентской области в буфер обмена на сервере терминалов (действие, аналогичное нажатию клавиши PRINT SCREEN на локальном компьютере)

Навигация в обозревателе Microsoft Internet Explorer
• CTRL+B: открывает диалоговое окно Упорядочить избранное
• CTRL+E: открывает панель «Поиск»
• CTRL+F: запуск служебной программы поиска
• CTRL+H: открывает панель журнала
• CTRL+I: открывает панель избранного
• CTRL+L: открывает диалоговое окно Открыть
• CTRL+N: запуск еще одного экземпляра обозревателя с аналогичным веб-адресом
• CTRL+O: открывает диалоговое окно Открыть, подобно действию CTRL+L
• CTRL+P: открывает диалоговое окно Печать
• CTRL+R: обновление текущей веб-страницы
• CTRL+W: закрытие текущего окна

Дополнительно:


1. Если выделить папку или файл и нажать F2 то включится редактирование имени, или если в проводнике нажать F4, то активным станет адресная строка
2. Проматывать страницу вниз не скроллом и клавишей Page Down, а просто нажимая "space"
3. А Shift+Space - обратно
4. Все действия Shift+... возвращает в обратном порядке(Ctrl+Tab,Ctrl+Shift+Tab; Alt+Tab,Alt+Shift+Tab...)
5. Чтобы в эти самые "окна на таскбаре" попасть без мышки, можно нажать комбинацию Win+Tab
6. Win+Break - быстрый доступ к свойствам системы
7. Ctrl+Shift+Esc - к списку процессов
8. Скопировать сообщение из окна с ошибкой можно просто нажав CTRL+C когда вылетает такое окно
9. ctrl+esc - вызывает пуск
10. alt+space - меню активного окна(закрыть, свернуть)
11. Если начать вводить текст и нажать alt+break то курсор либо исчезнет, либо перестанет мигать
12. Alt + Esc - смена порядка окон - текущее отправляется на задний план
13. Окна закрываются двойным щелчком по иконке окна в левом верхнем углу
14. Если сделать меню Пуск активным, screensaver не запустится
15. "ctrl+tab" - переключение между вкладками окна свойств элемента
16. Шорткат для доступа в трей Win-B
17. Просто свернуть все окна - Win+M, а Win-D спрятать все окна, а при повторном нажатии - показать
18. Win+f - поиск
19. Win+l - блокировка
20. Win+u - спец возможности для людей с ограничениями по слуху\зрению
21. Win+e - Мой компьютер
22. Win+r - выполнить

Комбинации Shift+клавиша

Shift - При вставленном CD, держать для блокирования автовоспроизведения.
Shift-стрелки - Выбрать текст, или несколько файлов в проводнике.
Shift-клик - Выбрать всё содержимое между выделенным фрагментом, и фрагментом по которому кликают; также работает с текстом.
Shift-клик кнопки закрытия - Закрыть активное окно проводника, и все предшествующие (если открыты в нескольких окнах)
Shift-Alt-Tab - То же что и Alt-Tab, но в обратном направлении.
Shift-Ctrl-Tab - То же что и Ctrl-Tab, но в обратном направлении.
Shift-Ctrl-Esc - Открыть диспетчер задач.
Shift-Delete - Удалить файл без перемещения в корзину.
Shift-двойной клик - Открыть папку в двух панельном режиме проводника.
Shift-Tab - То же что и Tab, но в обратном направлении.
Shift-F10, или кнопка контекстного меню на некоторых клавиатурах - Контекстное меню, открыть



Источник 




Update: Новые горячие клавиши в Windows 7



В Windows 7 все приложения могут отображаться ярлыками в панели задач, которую внутри MS уже окрестили “super-bar” (по аналогии с taskbar – панель задач, – суперпанель). Помимо привычного клика мышкой для запуска приложений можно использовать сочетания клавиш “WIN+[number key]”.
  • Win+1 запускает первое приложение слева (Internet Explorer)
  • Win+2 запускает второе приложение слева (Libraries Explorer) и т.д.
Работа с дополнительными мониторами или проекторами:
  • Win+P – подключение к проектору или дополнительному монитору
  • Win+Shift+Left Arrow – перемещает активное окно на экран влево
  • Win+Shift+Right Arrow – перемещает активное окно на экран вправо 


Управление окнами
  • Win+Home – сворачивает все окна за исключением активного окна
  • Win+Left Arrow и Win+Right Arrow – Изменяет размер окна, перемещает активное окно по экрану (Win7 window docking feature)
  • Win+Up Arrow и Win+Down Arrow – максимизирует или восстанавливает / минимизирует активное окно. Жаль только, что нет возможности после свертывания окна восстановить его последующим нажатием Win+Up
  • Win+Shift+Up Arrow и Win+Shift+Down Arrow максимизирует и восстанавливает размер окна по вертикали
  • Win+T – действует аналогично комбинации “alt+tab” только для списка окон над иконками запущенных приложений.  После нажатия Win+T по списку окон можно перемещаться с помощью стрелок влево/вправо/вверх
  • Win+Space – вот эта комбинация осталась для меня загадкой, про нее в блоге Тима написано: “By pushing this is and hold the Win-key, you can peek at your desktop without dragging it to the bottom right corner” – но означенного эффекта я или не заметила на десятке окон, или не поняла :-)
  • CTRL+shift +click – когда вы кликаете на приложение, удерживая одновременно CTRL+shift, оно запустится с повышенными привелегиями, то есть в контексте  Администратора

Источник 

Дополнительно:
  • Win+G - Отобразить гаджеты поверх всех окон
  • Win+X - Запустить Mobility Center
  • Win + "+" - Увеличить масштаб
  • Win + "-" - Уменьшить мастшаб
Windows Explorer
  • Alt+P - Показать / Скрыть панель предпросмотра

Панель задач
  • Shift + щелчок на иконке - Открыть новое окно приложения
  • Ctrl + Shift + щелчок по иконке - Открыть новое окно приложения с привилегиями администратора
  • Shift + щелчок правой кнопкой на иконке - Показать меню приложения
  • Shift + щелчок правой кнопкой на группе иконок - Показать меню, восстановить все / cвернуть все / Закрыть все
  • Ctrl + щелчок по группе икнонок - Развернуть все окна группы

Еще чуть-чуть:

  • Shift+клик мышью или клик средней кнопкой мыши по иконке приложения на панели задач приводит к запуску еше одной копии данного приложения (если это возможно).
  • Ctrl+клик мышью по иконке приложения на панели задач приводит к переключению между окнами данного приложения (так же как Alt+Tab, но только для окон данного приложения).

Источник