http://forum.sysadmins.su/lofiversion/index.php/t19692.html
понедельник, 19 июля 2010 г.
понедельник, 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 г.
среда, 14 января 2009 г.
от исходников С++/C к исполняемому файлу - Как все это работает?
Все началось вот с этого поста: http://www.gamedev.ru/code/forum/?id=90107
Ко мне пришла мысль - а сам я действительно представляю что происходит с исходниками, как они превращаются в программу ?
Попробую представить и записать на будущее это здесь:
Для наглядности возьмем код топикстартера:
./main.cpp
int main(int argc, char * argv[])
./resources.h
{
test *pTest = new test();
}#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 для обьединения элементов.
Но все это конечно следы незнания того на чем программишь.
итак. сегодня мне сказать практически нечего, сумбур в голове.
продолжается работа над профайлингом приложения.
к сожалению возможностей для него даже с профайлером от 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.
...Как же тормозит открытие менеджера обновлений
Скачал версию 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...
Для этого придется использовать часть flexa
+ большое количество уже написанного кода
+ существование удобного редактора интерфейса
+ возможность беcпроблематичной работы с символами из flash cs3
- существенное увеличение размера кода, и в конечном итоге swf
- увеличение сложности логики
- подводные камни
Схема приложения пока следующая:
главным проектом является flex-проект, для того чтобы компилятор создал необходимый код для инциализации компонентов flexa использованных в action script коде
к нему подрубается библиотека компонентов из флекса, над которой будут непосредственно работать художники (swc)
и библиотека алгоритмов (пока классы юзаются оттуда напрямую в главном проекте) которую обслуживают программисты , тоже в swc.
to be continued...
среда, 5 декабря 2007 г.
Еще несколько ссылок в предверии связки flex с actionscript
Использование спрайтов во флексе
Подготовка внешних XML данных и загрузка их в компонент
flex + actionscript
Проблемы с ActionScript Project
[*ОТВЕТ*]Аттач мувика из внешнего swf-файла
Живой flex
Подготовка внешних XML данных и загрузка их в компонент
flex + actionscript
Проблемы с ActionScript Project
Создание модульного Flex-приложения с использованием RSL.
RSL в ActionScript Project: разделяемый между приложениями код[*ОТВЕТ*]Аттач мувика из внешнего swf-файла
Adobe Flex -wikipedia
Русскоязычная Flex викиЖивой flex
CFCUnit + FlexUnit How-To: No excuses now!
вторник, 4 декабря 2007 г.
несколько ссылочек по теме xml , mxml, actionscript
http://www.gamedev.net/reference/articles/article2371.asp
http://www.scribd.com/doc/136930/Creating-and-Extending-Flex-Components
http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&file=intro_138_08.html
http://www.adobe.com/devnet/flex/quickstart/building_components_in_mxml/#advanced_mxml
http://lifeflex.shaggysmile.com/cookbook/runtime_skinning_and_styling.html
http://en.wikipedia.org/wiki/XML_data_binding
http://flexlabs.ru/index.php?option=com_content&task=view&id=19&Itemid=31
http://www.gamedev.net/reference/articles/article2371.asp
http://www.scribd.com/doc/136930/Creating-and-Extending-Flex-Components
http://livedocs.adobe.com/flex/201/html/wwhelp/wwhimpl/common/html/wwhelp.htm?context=LiveDocs_Book_Parts&file=intro_138_08.html
http://www.adobe.com/devnet/flex/quickstart/building_components_in_mxml/#advanced_mxml
http://lifeflex.shaggysmile.com/cookbook/runtime_skinning_and_styling.html
http://en.wikipedia.org/wiki/XML_data_binding
http://flexlabs.ru/index.php?option=com_content&task=view&id=19&Itemid=31
Подписаться на:
Сообщения (Atom)