Компьютерра - Журнал «Компьютерра» № 5 за 7 февраля 2006 года
Media:SlayerReign In Blood> get-command play*
Command Type Name Definition
— — —
Cmdlet play-nextsong play-nextsong [-Verbose…
Cmdlet play-previoussong play-previoussong [-Ver…
Cmdlet play-song play-song [[-MshPath] S…
Можно усложнить команду, добавив к ней несколько параметров. Даже если разработчик не позаботился о документации, пользователь сможет получить автоматически генерируемую справку о формате ее вызова и типах параметров:
Media:SlayerReign In Blood> get-command play-nextsong —Synopsis
play-nextsong [[-SkipSongCount] Int32] [-Verbose] [-Debug] [-ErrorAction ActionPreference] [-ErrorVariable String] [-OutVariable String] [-OutBuffer Int32]
А вот так выглядит листинг содержимого текущей директории. Директория не обязательно файловая, это может быть контейнер любых объектов, в нашем случае это альбом, а содержимое — композиции:
Media:SlayerReign In Blood> ls
Number Name AlbumName ArtistName Year
— — — —
1 Angel of Death Reign In Blood Slayer 1986
2 Piece By Piece Reign In Blood Slayer 1986
3 Necrophobic Reign In Blood Slayer 1986
Новые возможностиЧто же дает Monad различным категориям пользователей? Программисты, например, смогут ускорить реализацию интерфейсов управления к разрабатываемым системам. Для того чтобы создать новую команду, достаточно унаследовать свой класс от класса Cmdlet и вызвать из него специфичную функцию системы (см. врезку). Отметим, что, реализовав интерфейс управления к своей программе таким образом, разработчик не ограничивается только командной строкой. Стандартная графическая консоль управления Microsoft Management Console (MMC), используемая в Windows XP и Vista, будет понимать модули, написанные для Monad.
Администраторам разнородных сетей, безусловно, будет удобнее управлять Windows-системами, с помощью привычного интерфейса командной строки. Инструменты управления DNS и Active Directory с навигацией, реализованной в виде иерархической структуры, тоже разрабатываются, и их можно найти в Интернете.
Администраторы смогут скомпоновать из разных блоков командную оболочку для определенных типов задач. Ее можно указать в качестве сценария запуска (login shell) при входе определенной группы пользователей в систему — локально или удаленно. Тем самым можно ограничивать функции, доступные пользователям, а требования к пропускной способности канала в случае распределенной системы будут минимальными, достаточными для протокола telnet.
Ну а продвинутые юзеры, знающие .NET или использующие готовые скрипты (см. ссылки в конце статьи), получают мощный инструмент управления системой и повышения эффективности работы. Не должно вызвать трудностей и освоение команд и синтаксиса нового языка, так как их именование стандартизовано.
SH vs MSHНе могу удержаться от соблазна сразу же привести пример. Людям, знающим предметную область, он многое объяснит.
Требуется написать скрипт, принудительно завершающий в системе три процесса, которые отъедают наибольшее количество процессорного времени и у которых значение этого параметра больше трех.
Я попросил специалиста Unix shell быстро, не зарываясь в man, написать такой скрипт.
Решение SH:
%>ps -A -sort ‘%cpu’ -format ‘%cpu,pid’ | egrep -v ‘^ (0|1|2).’ | grep -v ‘%CPU’ | tail —n3 | gawk ‘{print $2;}’ | xargs -r kill
Скрипт написан за семь минут, работает, и я его привожу как есть — без исправлений. Не буду объяснять, как он работает, отмечу лишь, что главной проблемой является необходимость выделения из набора строк, возвращаемых командой ps, нужные нам параметры процессов (в данном случае — процессоное время).
Я уверен, что есть более правильные варианты, но они потребуют детального знания возможностей большого числа утилит.
Решение Monad:
C:> get-process | where-object { $_.cpu -gt 3 } | sort-object -property cpu | select-object -Last 3 | foreach-object { $_.Kill() }
get-process — функция, возвращающая массив объектов типа System.Diagnostics.Process;
where-object — функция условия, которая сравнивает значение свойства с тройкой;
$_ — переменная, содержащая элемент массива — объект класса Process;
sort-object, select-object — сортировка и фильтрация массивов;
foreach-object — выполнить код для каждого элемента, в нашем случае — вызвать метод объекта — Kill()
Эту же строку можно написать с использованием алиасов:
C:> ps | where { $_.cpu -gt 3 } | sort cpu | select -Last 3 | foreach { $_.Kill() }
Читаемость варианта Monad даже не имеет смысл сравнивать с SH-скриптом. Написано за минуту.
Когда?Не будет преувеличением сказать, что Monad — это качественный скачок, переосмысление накопленного опыта в области управления операционных систем. В заключение несколько слов о том, когда же наступит светлое будущее.
Релиз Monad должен появиться в составе Microsoft Exchange Server 12. Он работает на системах Windows XP, Windows Server 2003 или других системах, поддерживающих .NET Framework 2.0. Beta 3 находится в свободном доступе (download.microsoft.com).
Ссылки
[1]blogs.msdn.com/monad/de-fault.aspx (сайт разработчиков Monad).
[2]www.microsoft.com/tech-net/scriptcenter/hubs/msh.mspx
[3]www.reskit.net/monad.
[4]blogs.gotdotnet.ru/perso-nal/beerbong (блог автора статьи).
[5] Издательство O’Reilly в декабре 2005 года выпустило книгу «Monad» (ISBN: 0-596-10009-4), написанную одним из авторов платформы Энди Оукли (Andy Oakley). Это, пожалуй, самый лучший способ познакомиться с продуктом.
Автор благодарит Константина Беляева за доклады на GotDotNet User Group.
Софтерринки
Автор: Павел Каледа
Crazy BrowserОС: Windows
Адрес:www.crazybrowser.com
Версия: 3.0 beta
Размер: 700 Кбайт
Язык: английский
Цена: бесплатно
Как и большинство современных браузеров, Crazy Browser основан на вкладках, что позволяет удобнее организовать параллельную работу с несколькими страницами. С помощью заданного сочетания клавиш можно тому или иному слову поставить в соответствие адрес конкретного веб-ресурса и заменять, например, слово computerra на www.computerra.ru.
Интересным решением является группировка: страницы одной группы можно открывать одним кликом. Браузер умеет блокировать всплывающие окна и флэш-ролики, фильтровать контент, а также поддерживает плагины.
WinDjViewОС: Windows (для Mac ОS X есть программа MacDjView того же автора)
Адрес:windjview.sourceforge.net
Версия: 0.4
Размер: 480 Кбайт
Интерфейс: мультиязычный (в том числе на русском)
Цена: бесплатно
Программа WinDjView служит для просмотра файлов в формате DjVu. Среди ее возможностей — непрерывный и одностраничный режимы просмотра, группировка соседних страниц, вывод списка страниц в виде иконок, создание закладок, поиск и копирование текста, экспорт в BMP, настройка яркости, контраста и гаммы и многое другое. Особенно следует отметить удобный полноэкранный режим. Напомним, что формат DjVu позволяет сохранять документы и картинки высокого качества в файлы небольшого размера.
ShowMeОС: Windows
Адрес:www.photo-slideshow-showme.com
Версия: 1.9.1.6
Размер: 4,3 Мбайт
Язык: английский
Программа ShowMe предназначена для создания слайд-шоу из фотографий и музыкальных файлов. Имеется минимальный набор инструментов для правки изображений: их можно поворачивать, зеркально отражать, кадрировать, изменять контраст и яркость, а также устанавливать фоновый цвет и рисунок. Поддерживается прозрачность в формате PNG. Результат можно сохранить в виде хранителя экрана, исполняемого exe-файла, VCD, DVD и ASF или в виде веб-галереи.
WebSite-WatcherОС: Windows
Адрес: www.aignes.com
Версия: 4.06
Размер: 3 Мбайт
Интерфейс: мультиязычный (в том числе на русском)
Цена: 29,95 евро (для персонального использования)
WebSite-Watcher предназначен для регулярной проверки избранных сайтов на обновление. Если будет обнаружено, что контент изменился, программа запишет последние версии на диск и выделит в тексте изменения. Можно вести поиск по ключевым словам. Кроме того, Watcher имеет разнообразные варианты автопроверки: как часто проверять, по каким дням недели и пр. В случае обновления сайта «часовой» может подать звуковой сигнал, открыть сайт собственным или внешним браузером, экспортировать страницу в файл, отправить e-mail-уведомление, запустить внешнюю программу и т. д. Наконец, поддерживаются фильтры (какой фрагмент текста игнорировать, а какой отслеживать) и RSS.
ОГОРОД КОЗЛОВСКОГО: Еще одна победа цифры, или Нет в жызни щасья
Автор: Козловский Евгений
В последнем «Огороде» минувшего года ("Нехорошая квартира") я писал о поисках качественных беспроводных наушников. Перерыв Интернет, я пришел к выводу (как позже выяснилось — ошибочному) об отсутствии на сегодняшний день удобных универсальных конструкций, использующих протокол Bluetooth: либо их не оказывалось в доступном окружении, либо они требовали специальных источников — вроде отдельных КПК или некоторых моделей iPod. Но едва «Огород» успел выйти в свет, как я получил письмо от Антона Каменского, обращавшего мое внимание на Bluetooth-наушники Creative CB2530 (ru.europe.creative.com/welcome.asp — и далее найти страничку по названию). Так я и не понял: то ли прочесывал Интернет недостаточно густым гребнем, то ли они появились уже после написания мною статьи. Что, впрочем, неважно.