/* */

понедельник, 10 августа 2009 г.

Exchange 2007 . Заметки начинающего.


Столкнувшись с документацией microsoft по exchange , я вынужден был для решения некоторых вопросов облазить интернет. Вот некоторые полезные вещи - которые бы стоило записать.

  • Global Address List (GAL) - это фильтр для выборки пользователей, а не какой то отдельный список. Он представляет из себя условие, по каким выбираются пользователи из AD. Соответсвенно в теории его обновление должно быть очень быстрым (ну какое обновление у фильтра ?), однако на практике это занимает порядка 8 часов и это "запланированое поведение"- глупость какая то. С этим и надо разобраться.
  • Address List - это sub-фильтр. Так как глобальные фильтры не могут быть изменены , то используется для ограничения круга лиц из GAL.
  • Offline Address Book (OAB) - а вот это уже твердая копия результата запроса адресной книги используя фильтр GAL. Она обновляется раз в сутки(расписание можно задать). Клиент может запросить обновление вручную - пока непонятно - запрашивается ли копия лежащая на сервере или для каждого клиента генерится при этом новая актуальная OAB.
  • Outlook Web Access (OWA) - не использует GAL при запросе информации , а напрямую лезет в AD , для ограничения адрессной книги необходимо манипулировать параметром пользователя в AD msExchQueryBaseDN .
"Отметка msExchQueryBaseDN добавляется к объектам пользователей Active Directory и указывает на список адресов или подразделение. Этот список адресов будет использован в качестве глобального списка адресов пользователя, причем в этом глобальном списке адресов пользователю будут доступны только учетные записи пользователей данного подразделения."
http://www.redline-software.com/rus/support/articles/msexchange/2007/address-lists-exchange2007-part1.php

понедельник, 26 января 2009 г.

post sp 4 update созданный с winlocalupdater (в архиве)
http://depositfiles.com/files/imtenjxim
еще один сборник
http://www.fixupdate.narod.ru/page2.html

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

от исходников С++/C к исполняемому файлу - Как все это работает?


Все началось вот с этого поста: http://www.gamedev.ru/code/forum/?id=90107
Ко мне пришла мысль - а сам я действительно представляю что происходит с исходниками, как они превращаются в программу ?
Попробую представить и записать на будущее это здесь:
Для наглядности возьмем код топикстартера:

./main.cpp

int main(int argc, char * argv[])
{
test *pTest = new test();
}

./resources.h

#ifndef RESOURCES_H_
#define RESOURCES_H_
#include
#endif

./test.cpp

class test
{
public:
test()
{
std::cout << "It works!"; } };



Это так называемые исходники, т.е. файлы содержащие исходный код программы. Если вставить это в соответствующие файлы .h .cpp и компилировать в каком либо ide (с точки зрения новичка - все делает именно ide, дальше я покажу что это не совсем так), то получим что? - правильно, кучу ошибок.
я использую mingw (порт на windows GCC), для других компиляторов сообщения будт отличаться, но если вы знаете английский хоть на минимальном уровне то обычно поймете что вам пытается сказать компилятор.
Compiling: main.cpp
E:\Code\aaa2s\a\main.cpp: In function `int main(int, char**)':
E:\Code\aaa2s\a\main.cpp:3: error: `test' was not declared in this scope
E:\Code\aaa2s\a\main.cpp:3: error: `pTest' was not declared in this scope
E:\Code\aaa2s\a\main.cpp:3: error: `test' is not a type
E:\Code\aaa2s\a\main.cpp:3: warning: unused variable 'test'
E:\Code\aaa2s\a\main.cpp:3: warning: unused variable 'pTest''
Чтобы понять в чем ошибка - углубимся в теорию.

Что представляет из себя исходный код - это набор комманд препроцессора и компилятора.
Прочитали ссылочки? - ничего не поняли, не беда - читаем дальше.
Что это значит ? - А то что исходный код должен быть обработан вначале препроцессором, а потом компилятором(они могут быть сделаны как одна программа или две разные, у нас первый случай)! Запустим только препроцессор(ключик -E) и
E:\Code\aaa2s\a>c:\MinGw\bin\mingw32-c++.exe -E main.cpp
# 1 "main.cpp"
# 1 ""
# 1 ""
# 1 "main.cpp"
int main(int argc, char * argv[])
{
test *pTest = new test();
}

Посмотрим что же получается с кодом после обработки его препроцессором
ну можно сказать что ничего с нашим примером не происходит, так как он практически не содержит комманд препроцессора, обычно начинающихся для с/c++ c знака #
(#include, #define и т.д.)
Но запомните - препроцессор - замена одного текста на другой исходя из комманд препроцессора. После того как препроцессор отработал и заменил текст в нужных местах, комманды препроцессора убираются из исходного текста - остаются команды для компилятора.
Что же делает дальше компилятор - он ищет свои ключевые слова ( ( , ) , * и т.д.) и в соответсвие с правилами языка разбирает препроцессированный исходный текст(синтаксический анализ, лексический анализ - не буду углубляться в то что знаю сам на уровне начинающего :) ). Одна неочень важная деталь - если какое слово не распознано как ключевое - то считается что это имя переменной (в общем случае, но контрпример - название функции - не ключевое слово но опознается именно как название функции потому что стоит там где по правилам языка должно стоять название функции, тоже самое с типом - оно узнается только потому что стоит там где должно стоять тип[TODO: чушь, переписать]). Ну это так - лирическое отступление.
Итак, посмотрим на ошибки:
E:\Code\aaa2s\a\main.cpp:3: error: `test' was not declared in this scope
Первая же ошибка нам говорит что компилятор не знает что за тип мы указали для переменной pTest, (он знает что это должен быть тип , потому что оно стоит там где по правилам должен стоять тип, но он не нашел его среди встроенных типов , таких как int , char и т.д.)
Соответсвенно мы должны подсказать ему что это за тип. Но как это сделать - если определение у нас в другом файле и компилятор почему то его не видит?

вторник, 25 декабря 2007 г.

работы навалилось слишком много.. но я не унываю.

итак. сегодня мне сказать практически нечего, сумбур в голове.
продолжается работа над профайлингом приложения.
к сожалению возможностей для него даже с профайлером от fb3 мало,
не хватает таких характеристик, как максимально и минимальное время выполнения функций, также характеристики отдельных участков кода, а то время указывается только для функций. глубже характеристики не даются.
ПРедварительные итоги: тормозят партиклы. (а кто бы сомневался, с обработкой кучи движущихся обьектов - это проблема). casheAsBitmap - неочень спасает.Надо думать над самими алгоритмами.
да. нашел такую фишку что если создается mx:Panel то автоматом к нему прикремляется менюшка, с кнопкой выхода.. Она (менюшка) не видна, но успешно заслоняет события нижележащих обьектов. Вот радость то - стоит кнопочка за этой менюшкой, а ее нажать нельзя - неположено, потратил целую субботу и кучу нервов чтобы найти это.
Юзаю теперь Box для обьединения элементов.
Но все это конечно следы незнания того на чем программишь.

пятница, 7 декабря 2007 г.

FB 3 + subclipse

Решил совместно с fb3 beta2 воспользоваться плагином для svn - subclipse
Скачал версию 1.2.4 , так как ядро eclipse на котором построен fb3 имеет версию 3.3.0 .
Однако ... счааааас.... разбежался.
Eclipse Modeling Framework (EMF) - org.eclipse.emf.codegen.ui (2.3.0.v200706262000) requires plug-in "org.eclipse.jdt.core".
Порывшись в нете нашел такую ссылку
http://bugs.adobe.com/jira/browse/FB-9525
Почитал, подумал:
скачал и установил JDT Runtime Binary
после перезагрузки эклипса, установил сам subclipse.

...Как же тормозит открытие менеджера обновлений

четверг, 6 декабря 2007 г.

Итак, задача - сделать использование ассетов удобным для меня и для художников.
Для этого придется использовать часть flexa
+ большое количество уже написанного кода
+ существование удобного редактора интерфейса
+ возможность беcпроблематичной работы с символами из flash cs3
- существенное увеличение размера кода, и в конечном итоге swf
- увеличение сложности логики
- подводные камни

Схема приложения пока следующая:
главным проектом является flex-проект, для того чтобы компилятор создал необходимый код для инциализации компонентов flexa использованных в action script коде
к нему подрубается библиотека компонентов из флекса, над которой будут непосредственно работать художники (swc)
и библиотека алгоритмов (пока классы юзаются оттуда напрямую в главном проекте) которую обслуживают программисты , тоже в swc.

to be continued...