четверг, декабря 02, 2004

Плагин Now playing - 2

Правильно - расширение для MS Internet Explorer.
Оно же утилита ком. строки (хотя и форма на самом деле).
Устанавливается в меню Tools браузера, тут же можно и настроить оперативно. В Maxthon настроил на вызов через "внешние утилиты". В форумах пользоваться довольно удобно - сделал для них шаблон с тегами:

-= Слушаю [I][B]WMP[/B][/I]: [B][COLOR=blue]{0}[/COLOR][/B] от [B]{2}[/B] =-

Выглядит, вроде, ничего.
Описание сунул на ту же страницу, что и предыдущие плагины.

четверг, ноября 25, 2004

Плагин Now playing

Форматирует и вставляет в буфер обмена данные о музыке, проигрываемой в настоящий момент проигрывателем Windows Media Player вер. 9,10.
Сбылась мечта человечества...
Информация считывается из xml-файлов, сформированных вчерашним плагином WmpNow.
Для форматирования информации используется форматная строка, аналогичная форматной строке .Net-ного метода String.Format().

Получается что-то вроде этого:

[WMP 9.0.0.3128]: Here Comes The Sun [The Beatles]

Можно по-разному отформатировать, в рамках строки формата - довольно широкие рамки там.

Используется диспетчер .NET плагинов для MS Office.

Страничка про оба плагина - здесь.

среда, ноября 24, 2004

Плагины для WMP

Покопался в хелпе от WMPSDK и соорудил плагин для Media Player'а (там прилагаются визарды для Студии, городящие программы на C++). Пользы особой от такого плагина не увидел, но подумал о возможности прицепить через него дотнетовскую программку.
Просто сказать, но сделать - мама, не горюй. Кончилось загрузкой в этом плагине СОМ-компонента на C#. Жуть, как люди на этих плюсах чего-то большое пишут? Но получилось ничего так - в дотнетный модуль передаётся объект, который является действующим WMP, в который и загружен плагин. Все характеристики доступны по объектной модели из wmppia.dll, обработчики событий цепляются и вызываются.
Была мысль сделать в этом нетном модуле какой-нить сервер, отдающий информацию из плеера. Оказалось, что Remoting - немного про другое, а городить Web-сервис непонятно пока зачем - не хочется. Остановился на выводе информации в какое-нибудь общедоступное место для последующего считывания теми, кому она нужна.
Таких мест оказалось два - очереди сообщений и файловая система. Реализовал работу с обоими - если нет в системе сервиса "Message Queuing" с локальной очередью "WmpNow", то вываливаем инфу в xml-файлы. Пока реализовал вывод информации о audio-единицах - с прицелом сделать в Outlook вставку о проигрываемой сейчас мелодии. А то в каком-то WinAmp есть, а для WMP - нет.
Положил эту штуковинку на Трипод - wmpnow.zip - там и кратенькое описание есть.

Как это применять, надеюсь, завтра сделаю.

P.S. Сделал и применялку, и страничку с описанием.

понедельник, ноября 08, 2004

Офисные плагины

Доделал новую версию системы .NET-плагинов для MS Office.
Добавил разные феньки, сделанные в плагинах:
- сохранение конфигурации в xml-файлах посредством сериализации
- "красивые" сообщения с помощью баллона ассистента (если есть)
- не помню ещё чего...

Повнимательнее почитал статью про конфигурации плагинов и сделал нечто похожее:



Поподробнее это хозяйство описано здесь и here
Запостил также на gotdotnet.ru и gotdotnet.com.

суббота, октября 30, 2004

Видео-музыкальное

Прикупил тут в Интернет-магазине (оказалось - пираты, даже на каждый диск отмазку записали) всякой кино-музыки (не музыки из кино, а музыка с изображениями - клипы, концерты). За копейки, но качество вполне пристойное.
В частности, на двух дисках концерт в Лужниках "КИНОпробы". Совершенно растрогали ребята из Воплей Видоплясова и Zdob с цыганами.

Который уже час с женой сидим, смотрим и слушаем - даже про клеветанье Латыниной позабыли.

пятница, октября 29, 2004

Локальный поиск - 3

Обнаружился в рассылке ещё один локальный поисковик - COPERNIC DESKTOP SEARCH (http://www.copernic.com/). Обещан поиск в почте и контактах (Outlook и Outlook Express) и в адресной книге Windows. Также обещано индексировать текстовые, музыкальные файлы и картинки.
По методе работы очень похож на остальные - резидент размером ок. 24 Мб дожидается паузы в работе пользователя и остальных сервисов, во время которой и занимается индексированием. Примерно за 3 дня набрался индекс размером около 150 Мб (в настройке были указаны практически все возможные источники информации).
Поиск проводится по ключевым словам, быстро. Ищется в категориях источников (почта, контакты, медиа, видео, pictures и др.) раздельно (в отличие от Гуглёвого поисковика).
Недостаток один, но крутой - почтовые сообщения выводит в неверной кодировке (и никакой настройки этого дела не обнаруживается). Поиск в почте отключил.
Остальные источники выдаются нормально. Из музыкальных файлов выбирает и индексирует названия, артистов, композиторов (лирику не индексирует).
Итог - оставил в списке источников для индексирования музыку, картинки, видео и контакты (с которыми Гуглёвый в нынешнем состоянии не работает). Индекс при этом принял размер ок. 65 Мб.


Теперь живу с двумя поисковиками - Google Desktop Search с индексированием всего, что он может и Copernic Desktop Search с ограниченными настройками источников).

Локальный поиск - 2

Закончил попытку потестировать встроенный в Windows Indexing Service. Какого-то окончательного варианта не дождался: индекс достиг размера 1200 Мб, сервис наковырял более 340 тыс. документов. (Что он под этим разумеет - понять сложно).
Язык запросов весьма причудливый, какие-то доморощенные регэкспы, к которым надо долго пристраиваться. Поиск "интуитивный" (задать интересующие слова, без всяких регэкспов) даёт результаты вовсе непредсказуемые - вываливает документы, этих слов не содержащие, и не даёт документов с поисковыми словами (может, потому, что индекс ещё недостроен).
Нет никаких намёков на индексацию почты.
Итог - тесты закончил, индекс выкинул, сервис остановил. Тем более, Microsoft обещает к концу года представить свой локальный поисковик (на базе LookOut, надо полагать?).

суббота, октября 23, 2004

Сравнительный анализ программ для локального поиска.

После объявления поисковика Google Desktop стало интересным сравнить его с другими подобными. Провёл изучение трёх систем.

1. Google Desktop - http://desktop.google.com
2. LookOut - http://www.lookoutsoft.com/Lookout (куплена нынче Microsoft)
3. Indexing Service - системный поисковик.

Первые два обещают поиск в почте (второй - только в Outlook) и в любых, практически, файлах на диске.
Третий про почту как-то ничего не обещает, что странно.
Все три для быстрого поиска строят индексы.

Google Desktop строил индекс 4 дня, совсем незаметно для производительности. В настройках указаны все возможные источники информации. Получился индекс размером ок.550 Мб. Проиндексировано 81 678 документов (почта - 31 993, Web history - 10 606, файлы - 39 079). Не проиндексировались текстовые файлы, однако при их изменениях (создание, редактирование) они попадают в индекс. Похоже на глюк беты.
Обновление индекса происходит быстро (сразу при появлении "окна" в процессорном ресурсе), как по файлам, так и по почте.
Скорость поиска - "световая" (показывает какие-то цифры типа 0,28 сек, отрисовка страницы в браузере присходит дольше).
Памяти хозяйство (5 процессов) съедает ок. 20 Мб (пополам оперативка и своп).
Для поиска используется форма в браузере (вполне привычная по "большому" Гуглю).

LookOut строит индекс быстро, часа полтора. Сколько проиндексировал документов, не говорит, в процессе наблюдения можно узнать количество обработанных папок - ок. 12 000 (сюда входят папки Outlook и папки файловой системы). Индекс получился размером ок. 210 Мб. Не проиндексировались файлы на диске, ни текстовые, ни офисные (по крайней мере, поиск по словам этих файлов не даёт). Почта проиндексировалась вся, недостатков при поиске в почтовых документах не обнаружено.
Обновление индекса регулируется параметрами (от 10 минут до нескольких месяцев), однако дождаться явления не удалось, запустилось только кнопкой на форме с полной переиндексацией.
Скорость поиска также большая, результаты выдаются практически мгновенно.
Памяти в составе Outlook съело около 100 Мб (оперативной и виртуальной).
Для поиска используется Win-форма (форма как форма, ничего плохого).

Indexing Service на настоящий момент строит индекс третий день, рассказывает о 75000 проиндексированных документах, индекс имеет размер 340 Мб. Можно полагать, что окончательный размер будет меньше, чем у Google Desktop. Что там индексируется, так и не понятно. Пробный поиск даёт совершенно чумовые результаты - выдаются документы, запрошенных слов не содержащие. Запрос выполняется сравнительно быстро (только, что толку-то?) Примеры запросов из хелпа проясняют мало что.
Памяти использует 20-22 Мб (примерно пополам).
Для поиска есть форма в mmc (довольно убогая), результаты запроса выводятся там же. В хелпе помянута возможность запросов через веб-формы.

Промежуточные итоги.
1. LookOut - выкинуть. Пущай MS повозится года два (ну уж, и прикупили чудо).
2. Google Desktop - пускай живёт и развивается. Будет основным инструментом.
3. Indexing Service - пускай закончит постройку своего индекса, в Гугле поискать, как этой фигнёй пользоваться, потом решить, как с ней быть.

вторник, октября 19, 2004

Музыкальное - 3

Пристроил ещё одну страничку с коллекцией вариантов песни Greensleeves. Получилась страница длиннющей, очень популярная мелодия, известная с 1500 какого-то года. Лежит здесь - на страничке Greensleeves

воскресенье, октября 17, 2004

Музыкальное - 2

Пристроил другую страничку с коллекцией вариантов песни El Condor Pasa.
Чаще известна в исполнении Simon & Garfunkel. Оказалась гимном инков.
Накачал отовсюду примеров, картинок, текстов. Лежит здесь - на страничке El Condor Pasa

вторник, октября 12, 2004

Музыкальное

Пристроил страничку с коллекцией вариантов песни My Way. Чаще известна в исполнении Элвиса Пресли или Фрэнка Синатры. Накачал отовсюду примеров, картинок, текстов.
Лежит здесь - My Way.html



OlkForward

Соорудил (в общем, для своих целей) плагинчик для пересылки почты в Outlook'е.
Запускается под диспетчером .NET-плагинов (http://dyakovkm.tripod.com/dnet/offnet.htm)

От встроенной в Outlook пересылки отличается отсутствием всяких добавок в теме и тексте сообщения (всяких там "FW:" и "Исходное сообщение...").
Групповая пересылка выполняется поштучно (а не кучей аттачментов, как в стандартной функциональности).
Разместил описания и архив на своей страничке на Триподе (http://dyakovkm.tripod.com/office/olkfw.htm) и на на GotDotNet (http://www.gotdotnet.com/Community/UserSamples/Details.aspx?SampleGuid=5c2bdb73-4fa8-4ac7-aa4a-754a1f0e2e76 и http://www.gotdotnet.ru/Downloads/Examples/77891.aspx)

В новой версии системы (см. тут) включил в дистрибутив.

суббота, сентября 25, 2004

Облом с Borland Together

Прочитал в журнале рекламу - супер-пупер UML примочка для Студии.NET. Нашёл генератор ключей, скачал ХЕЗ сколько мегабайт, поставил - а не работает :(

вторник, сентября 21, 2004

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

Запощено сие с помощью Outlook 2003 и плагинов к нему - NewsGator+Blogger Plug-in v.2.0.1.2.
Формат д.б. "текст", "html" обламывается, "rtf" вовсе отбрасывается сервером.

среда, августа 25, 2004

MS SQL Server 2005

Результаты краткого изучения

Объект:

Дистрибутив en_SQL_2005_DEV_Beta2_852.02, полученный с сайта http://msdn.microsoft.com.
Выполнена полная установка сервера на компьютеры с различными конфигурациями (Celeron 667 MHz/384 Mb и Pentium 4 2.4 GHz/640 Mb) под управлением Windows 2003.
Установка выполнена в режиме Side-by-side с сервером MS SQL Server 2000.

Общие впечатления:

  1. Сервер базы данных нормально функционирует на обеих конфигурациях на отдельских задачах (загрузка данных в хранилище). Быстродействие нуждается в специальном измерении.
  2. Средства управления и разработки на базе Whidbey функционируют также на обеих конфигурациях, однако работа с ними на Celeron 667 практически невозможна из-за низкой скорости.
  3. Базы предыдущей версии СУБД подключаются (attach…) и нормально функционируют под управлением новой версии.

Database Engine

  1. Управление и разработка производится через MS SQL Server Management Studio.
  2. Все программные объекты (триггеры, хранимые процедуры, пользовательские типы) могут быть написаны на .NET языках.
  3. Расширена поддержка XML – введён соответствующий тип данных, документы можно хранить в полях таблиц. Поддерживается язык запросов XQuery.
  4. Объектная модель Distributed Management Objects (DMO) заменяется (постепенно) на System Management Objects (SMO). Чем отличаются, информации пока нет. Можно, в принципе, установить различия рассматриванием библиотек в Студии.
  5. Загрузчик данных (без обработки OLAP-объектов) отрабатывает без ошибок ( в т.ч. блок создания объектов базы через DMO).

DTS

Сервисы изменены полностью. Для утешения добавлена поддержка пакетов из версии 2000, которые исполняются в неизменном виде, а также могут быть конвертированы (ограниченно) в новый формат.

Архитектура

  1. Две области data flow и control flow. Хорошо это или плохо – сразу сказать сложно. Непривычно.

Объекты и программирование

  1. Все существовавшие компоненты переписаны на .NET, функциональность часто расширена, иногда заметно изменена. Добавлено много новых.
  2. Каждый из объектов может читать данные из нескольких источников и писать в несколько источников.
  3. Добавлена возможность программировать собственные элементы (провайдеры данных, преобразователи и т.д.). Для написания компонентов используются средства .NET.

Разработка и распространение

  1. Для работы с пакетами (проектирование, модификация и т.п.) используется BI Development Studio – пакет на базе Visual Studio. Разработка идёт в рамках проектов (как и всё в Студии), коллективная работа, контроль версий, отладка и т.д.
  2. Вместо средств WSH (точнее, наряду с ними) можно использовать «макросы» на VB.NET (штатное средство Студии), значительно более мощное средство.
  3. Хранятся пакеты в файлах формата XML и в таблице базы данных на сервере.
  4. Для установки пакетов и изменений к ним генерится специальная утилита (wizard).

OLAP

Движок (Engine)

  1. Добавлены триггеры (синхронное исполнение хранимых процедур для проверок значений и выдачи предупреждений) и трассировщики (trace) для асинхронного измерения производительности и разрешения проблем.
  2. Введена возможность использовать xml-описания объектов базы для их создания, модификации и т.п. (Называется это дело почему-то скриптами).
  3. Можно установить несколько экземпляров на одну машину (как SQL Server).

Средства разработки

  1. Используется BI Development Studio – пакет на базе Visual Studio. Разработка идёт в рамках проектов (как и всё в Студии), коллективная работа, контроль версий, отладка и т.д.
  2. Все визарды и редакторы (кубов, измерений и др.) переработаны, интегрированы в Студию. Все возможности BI accelerator’а для OLAP 2000 входят в стандартные возможности (насколько запомнилось).
  3. Добавлено много шаблонов для различных объектов (cubes, dimensions, key performance indicators (KPIs), calculated members, named sets, calculated cells, actions, and Multidimensional Expressions (MDX) queries). Можно создавать собственные шаблоны и сохранять их в xml-формате.

Программирование

  1. Полная интеграция с .NET (поддержка XML и SOAP, языков .NET в триггерах и хранимых процедурах, управляемый доступ для администрирования и клиентский доступ).
  2. Decision Support Objects (DSO) заменён на Analysis Management Objects (AMO). DSO пока тоже поддерживается.
  3. Введён Object Definition Language (ODL), основанный на xml-синтаксисе, позволяющий описывать объекты и манипулировать ими.

Dimensions

  1. Базируются на атрибутах (соответствуют колонкам таблицы).
  2. Можно иметь множественные иерархии в одной оси (напр.,
    календарное время и фискальное время).
  3. Поддерживаются отношения многие-ко-многим между осями и
    фактами через промежуточную таблицу.

вторник, июня 22, 2004

На заметку - наблюдение за классом

Можно ли как-то со стороны одного экземпляра следить за состоянием другого экземпляра? Например, есть класс A у которого есть свойство P1 и класс B, который должен как-то узнавать обо всех изменениях A.P1. При этом, чтобы сам класс A ничего не подозревал о том, что за ним «наблюдают»?

public class A
{
public string P1
{
get {return this._P1;}
set
{
this._P1 = value;
}
}
private string _P1 = string.Empty;
}

> ... чтобы сам класс A ничего не подозревал о том, что за ним «наблюдают» ...
Если я правильно понимаю, это значит, что в самом классе A ничего не меняется

> ... класс B, который должен как-то узнавать обо всех изменениях A.P1
Это можно сделать:

A a = new A();
PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(a);
pdc["P1"].AddValueChanged(this.a, new EventHandler(A_ValueChanged));

private void A_ValueChanged(object sender, EventArgs e)
{
MessageBox.Show("sss");
}

Теперь вызываем изменение свойства
a.P1 = "str"; // это не приведет к вызову обработчика.

Для того, чтобы все заработало, свойство A.P1
следует менять след. образом:

PropertyDescriptorCollection pdc = TypeDescriptor.GetProperties(a);
pdc["P1"].SetValue(this.a, "D6");

Кстати, PropertyGrid скорее всего таким способом меняет
значения свойств у объектов:

PropertyGrid p = new PropertyGrid();
p.Parent = this;
p.Dock = DockStyle.Fill;
p.SelectedObject = this.a;

Изменение свойства this.a.P1 из PropertyGrid также
приводит к вызову A_ValueChanged


Log4Net

Повозился с субжевой системой. Ничего так, когда разберёшься. Пристроил свой Appender для вывода протокола в TextBox. Точнее, годится для любого класса, имеющего метод, принимающий строку в качестве параметра.

четверг, июня 17, 2004

2 Гб

Схватил два аккаунта по гигу размером - на SpyMac.net и на Gmail. Зачем - ХЕЗ. Запас карман не тянет, приспособим для чего-нить.

Ура!