История украинского народа уходит корнями в глубокую древность. Она не начинается с Оранжевой Революции, как наивно полагают некоторые на Западе. Она не начинается с Переяславской Рады, как хотели бы думать в Москве. Она не начинается даже с Кия, Щека и Хорива, как полагают некоторые ограниченные историки в Украине. Установлено, кто украинцы ведут свое происхождение от древнейшего народа укров, проживавшего на территории современной Украины уже в 4-м тысячелетии до н.э. К сожалению, в результате ряда катастроф как природно-геологического, так и социально-политического характера, литературные и культурные памятники укров были полностью утрачены. Однако нет на свете ничего, что было бы потеряно навеки (кроме Халезмийского собора - см. Д. Адамс, "Жизнь, Вселенная и все остальное", М., Аст, 2002, стр. 287). Достижения современной статистической историографии позволили буквально по крупице воссоздать и расшифровать фрагмент эпоса древних укров, публикуемый ниже. Работы по расшифровке продолжаются, и мы надеемся, что вскоре эпос будет полностью восстановлен.
Hi! My name is Leonid, I live in Kharkov, Ukraine and work as a software engineer. Here I record notes on programming, system administration and other, completely unrelated, topics. Some posts here are in English and some are in Russian.
Tuesday, June 19, 2007
Эпос древних укров
Thursday, May 17, 2007
SharePoint Server: Audiences based on group membership problem
One of the ways to define an audience membership is via Windows security group. One can say that an audience consists of all members of a security group. This is often very convenient, as security groups often already reflect the organization's structure. However, setting up audiences on our company's SharePoint server I found that this simply didn't work. I set up an audience to consist of members of a security group that had 7 members. I found that the audience had only 1 member. I tried it with other groups - the results were utterly inconsistent. With some groups it worked, with some a few members were missing, with some all members were missing, and no clear pattern was seen.
After a long investigation the pattern was revealed. A security group member wouldn't make it to the group-based audience if the group was his/her primary group. It is a bug in SharePoint server, described in this blog post by Craig Gemmill for SharePoint Server 2003. I am using SharePoint Server 2007 and the bug is still present.
Apparently, it has to do with the fact that the user's primary group is not listed in its memberOf Active Directory attribute. The primary group's members attribute does not include the members with Primary Group attribute either. There are valid reasons for this design, described in this Microsoft KB article, but SharePoint Server, apparently, doesn't take Primary Group into account.
Thus the only solution was to reset the Primary Group of all users to Domain Users.
Monday, April 23, 2007
Using deadlines to install Windows updates on unattended servers
But what about unattended servers? No-one ever logs into their consoles and thus there's nobody to install the updates. Having an administrator log in to each server to install updates is just too tedious. Luckily, this isn't necessary. Using deadlines, one can have the updates install on unattended servers automatically. Here's how I do it:
- I've created a computer group in WSUS called "Servers" and added all servers to it.
- Whenever I approve an update, I make a separate approval for the "Server" group with a deadline.
- When the deadline expires, updates are installed automatically.
Always set the deadline more than 22 hours in the future. This is because Automatic Updates service is checking for new updates by default every 22 hours. Imagine what happens if during the day, say at 12am you set the deadline for 11pm today. By 11pm a server may not have checked for new updates yet, and it will not know a new update with a deadline is available. Next day, say at 10am it will check, find the update and see that the deadline is already past due. It will then immediately install the update and reboot right when your users are busy using it. To avoid such unfortunate scenario, allow sufficient time for Automatic Updates to find the update before the deadline expires.
Устанавливаем Lingvo 12
Технически работает эта схема лицензирования так. На сервере устанавливается Lingvo License Manager. В него вводятся и активируются все лицензии. Клиентские машины получают лицензию от сервера при запуске Лингво.
На бумаге все хорошо. На практике обнаружилось, что при запуске Лингво на одном компьютере License Manager показывает, что все concurrent лицензии заняты этим компьютером, и ни один другой компьютер запустить Лингво уже не может. Весьма неприятный сюрприз. В интернете обнаружили описание такой же проблемы (http://forum.lingvo.ru/actualthread.aspx?tid=72935) и совет обратиться в службу поддержки. Написали на support@abbyy.ua. Служба поддержки ответила, поинтересовалась номером нашей лицензии, и действительно прислала нам обновление на License Manager, исправляющее эту ошибку. Таким образом при доработке напильником система все-таки работает.
Несколько неприятной, однако, оказалась следующая новость в Лингво 12. В предыдущих версиях Lingvo был LvAgent, который сидел в System Tray и позволял вызвать Lingvo по Ctrl-Ins-Ins. При закрытии самого Lingvo LvAgent продолжал работать. Теперь все немного не так. По-прежнему LvAgent может запустить Lingvo, но теперь при закрытии Lingvo стандартными способами (кнопочка "x" или Alt-F4), сам Lingvo продолжает работать и, что особенно важно при concurrent лицензировании, занимать лицензию. Т.о. стоит запустить Lingvo, как он занимает лицензию даже после закрытия. Есть, правда, в меню пункт "Выход", который действительно закрывает Lingvo - но вместе с LvAgent.
В свете этого моя рекомендация такая - в настройках на вкладке "Общие" снять флажок "Отображать значок ABBYY Lingvo в области уведомлений на панели задач". В этом случае LvAgent не используется и закрытие Lingvo действительно его закрывает. Но вызов по Ctrl-Ins-Ins будет невозможен.
И наконец, странная история, приключившаяся с инсталляцией Лингво. После установки License Manager, по рекомендации производителя, инсталляция самого Лингво была помещена на сетевой диск. Вскоре несколько пользователей пожаловались, что они не могут установить Лингво себе на компьютер, используя эту сетевую инсталляцию: инсталлятор сообщает "Внутренняя ошибка 2349" и прекращает работать. Выяснилось, что по какой-то причине часть файлов из инсталляции получили дату изменения 01.01.1857 (как это произошло - загадка). При копировании этих файлов инсталлятор пытался дать установленным копиями такую же дату, что заканчивалось ошибкой. После исправления даты файлов проблема разрешилась.
Tuesday, April 10, 2007
Outlook 2003 update breaking Outlook 2007
A surprise came when I installed the next round of Microsoft updates (from our local WSUS server). An "Junk mail filter update for Outlook 2003" (KB931764) was offered to me, although I no longer had Outlook 2003. Not knowing what this means, I installed the update.
Right after that had an error in Outlook: "The File ExSec32.dll is incompatible with Microsoft Office Outlook. Install Outlook Again.", when opening any Outlook item. Apparently the "Junk mail filter update" reinstalled some of Outlook 2003 DLLs that were not compatible with Outlook 2007 (I guess this was the reason why they could not coexist in the first place).
I removed ExSec32.dll in Office11 folder, then get the same error about RTFHTML.dll. Removed it as well. Outlook items started to open, but after a few more errors, I resorted to reinstalling Outlook 2007.
Ever since then, each monthly update of Junk Mail Filter for Outlook 2003 was offered to me by Windows Updates, and I had to manually deselect it. Finally, when I uninstalled Office 2003, the problem stopped.
Sunday, April 08, 2007
GroupWise vs. Excel
Thursday, March 22, 2007
Blogging from Word 2007
They say one can write blog posts directly from Word 2007. I am just curious. Let's see if it works.
Apparently it does! Although it's not as good as I thought it would be. I don't seem to be able to update a post once it is published. Instead, it publishes the modified document as a new post. Still, it's interesting and somewhat unusual for Microsoft