Dmitry Shuklin - Scientific Research & Software Architecture A { TEXT-DECORATION: none } A:hover { TEXT-DECORATION: underline } Dmitry Shuklin Scientific Research & Software Architecture 24.04.2008 18:57:15 Публикации Сообщения Логин: Пароль: Запомнить меня Регистрация >> Cerebrum Forum Автор: Шуклин Дмитрий Тема: Dmitry Shuklin BLOG & Guest Book | << | < | 1 2 | > | >> | 10 20 50 100 | * Шуклин Дмитрий 20.06.2006 16:12:33 Первое тестовое сообщение Связей: 0 Теперь Cerebrum живет и в среде ASP.NET Бойко Сергей 20.06.2006 16:17:10 Поздравления Связей: 0 Дима поздравляю тебя с удачным экспериментом (Ц в среде ASP.NET) Шуклин Дмитрий 21.06.2006 10:46:15 Первые проблемы Связей: 0 Видимо при перезагрузке сервера были потеряны несохраненные сообщения. Это говорит о некорректной отработке события Domain.Unload у провайдера. Приношу свои извенения всем кто принял участие в тестировании. Пожалуйста продублируйте свои сообщения заново. С уважением, Дмитрий. Шуклин Дмитрий 21.06.2006 10:59:31 BLOG Связей: 0 Вчера Бойко Сергей обнаружил проблему новой версии в процессе остановки развернутой в RAM БД. Подсистема принудительного сброса экземпляров объектов в хранилище была полностью блокирована. Подсистема в очередной версии разблокирована. Тем не менее необходимо обдумать реализацию перпендикулярных транзакций. Требуется обеспечить возможность управлять memory snapshot transactions независимо от milestone transactions. Это должно облегчить проблему внезапной перегрузки сервера. Полностью решить эту проблему может только(?) переход на страничную организацию хранилища. Шуклин Дмитрий 21.06.2006 13:24:48 Регламент Связей: 0 Сохранение базы данных сообщений не гарантируется. После изменения от 21.06.2006 после каждого изменения производится остановка и повторный запуск сервиса. Теперь все гораздо стабильнее. Шуклин Дмитрий 21.06.2006 14:32:58 2 ИванFXS Связей: 0 Привет, отвечая на потерянное сообщение. Потрогать это дело можно очень просто. Вопрос в том, что конкретно хочется потрогать. Если саму БД - то лучше всего взять текущую официально опубликованную на http://www.shuklin.com/ai/ht/ru/cerebrum/ реализацию. Если интересно последнюю версию - то могу выслать по почте. Последняя версия на то и последния что находится в разработке и поэтому недоотлажена. Зато можно ориентироваться на новые фичи. Если интересует мост для веб - то опять же по почте. Я его еще не публиковал. Шуклин Дмитрий 21.06.2006 18:01:00 Обновление Связей: 0 Ввел принудительное сохранение базы после каждого поста. Теперь отключение света у провайдера не должно влиять на сохранение сообщений ИванFXS 21.06.2006 22:44:57 Связей: 0 Дмитрий, я имел в виду - потрогать то, что ЗДЕСЬ. Шуклин Дмитрий 22.06.2006 11:34:14 2 ИванFXS Связей: 0 А здесь всего лишь гуест бука, причем очень примитивная. Единственная ее цель - посмотреть как себя будет вести ядро Cerebrum в боевых условиях. Хостинг комерческого провайдера, 24/7, ... Доступа к всему серваку у меня нет. Собственный сервайс установить на сервер мне никто не даст. Поэтому БД живет в процессе IIS. Уже есть один интересный результат. Событие Domain.Unload не отработало. Наиболее вероятно, что хостер вырубил VM без штатной остановки IIS.Здесь сейчас проходят испытания ядра Cerebrum. Поэтому чтобы его потрогать, надо пойти по вышеозначенному адресу и ознакомиться со всеми опубликованными по этой теме материалами. А затем пинать меня в аську или почтой вопросами. Шуклин Дмитрий 22.06.2006 11:35:03 День второй Связей: 0 Полет нормальный Шуклин Дмитрий 23.06.2006 10:20:47 Новости Связей: 0 Опубликовал новую версию СООБЗ Cerebrum Шуклин Дмитрий 23.06.2006 10:22:25 День третий Связей: 0 Полет нормальный Шуклин Дмитрий 26.06.2006 15:34:10 Новости Связей: 0 Опубликовал версию от 2006.06.25 Основные изменения: Реализована концепция синонимии/омонимии объектных идентификаторов и undo/redo persistent transactions. Синонимия/омонимия объектных идентификаторов позволяет реализовывать более сложные (по сравнению с предыдущими версиями) модели данных и обойти известное ограничение ООБД с созданием объектных VIEWs/JOINs. Система поддерживает многоуровневые undo/redo persistent однопользовательские транзакции. Undo/redo persistent transactions позволяют организовать общепринятую в пользовательском интерфейсе функциональность undo/redo на уровне ядра БД. Это помогает реализовать на основе ядра Cerebrum приложения CAD/CAM активно взаимодействующие с пользователем и требующие функциональность undo/redo. Транзакции могут быть двух видов: с версионированием объектов и без версионирования объектов. Транзакции могут находиться в грязном и чистом состоянии. При создании новой транзакции с версионированием объектов предыдущее состояние всех объектов сохраняется в хранилище и создаются новые версии измененных объектов. При выполнении операции undo актуализируются предыдущие сохраненные версии объектов, а новые изменения становятся невидимыми. При выполнении операции redo происходит обратный процесс – измененные версии объектов вновь становятся видимыми. При многократном выполнении операций undo/redo производится актуализация версий объектов соответствующих транзакции выбранной операциями undo/redo. В случае создания транзакции без версионирования объектов, новые версии объектов не создаются, изменения накапливаются в версиях ближайшей предыдущей транзакции с версионированием, а текущей транзакции присваивается статус «чистая». В случае завершения чистой транзакции по CommitTransaction транзакция остается в чистом состоянии, счетчик TransactionCount уменьшается на 1. В случае завершения чистой транзакции без версионирования по RollbackTransaction предыдущая транзакция переходит в грязное состояние, счетчик TransactionCount уменьшается на 1. В случае завершения грязной транзакции без версионирования по RollbackTransaction предыдущая транзакция переходит в грязное состоянии, счетчик TransactionCount уменьшается на 1. Завершение грязной транзакции по CommitTransaction либо создание новой следующей транзакции недопускается. В случае завершения грязной транзакции с версионированием все изменения объектов, накопленные в пределах данной версии откатываются. Если в процессе выполнения операции undo/redo актуализируется транзакция без версионирования то актуализируются версии объектов ближайшей к предыдущей транзакции с версионированием. Для того чтобы посмотреть как это работает можно сделать следующее: 1. Скачать ООБД Cerebrum http://www.shuklin.com/download.aspx?file=ru_cerebrum_sdk 2. Развернуть архив и запустить файл Binary\Application\Debug\Cerebrum.DesktopClient.exe 3. Выбрать из меню File\Streams-01 пункт New Stream … 4. Подтвердить параметры создаваемой БД нажатием кнопки OK 5. Ввести имя файла создаваемой БД и подтвердить его создание нажав Save 6. Начать транзакцию нажав Begin 7. Заполнить БД тестовыми данными нажав Populate Images 8. Убедиться, что последнее созданное изображение имеет номер 099. Для этого перейти в конец списка и выделить последний элемент. Под списком отображается количество элементов в списке, номер текущей активной тарнзакции / общее количество транзакций. 9. Начать транзакцию нажав Begin 10. Заполнить БД тестовыми данными нажав Populate Images 11. Убедиться, что последнее созданное изображение имеет номер 199. Для этого перейти в конец списка и выделить последний элемент. 12. Повторить пункты 6. и 7. еще 5 раз. В результате в списке должно быть создано 8 транзакций и 700 элементов. 13. Убедиться, что последнее созданное изображение имеет номер 699. Для этого перейти в конец списка и выделить последний элемент. 14. Выполнить команду UNDO нажав на кнопку со стрелкой влево ‘<’ 15. Убедиться, что последнее созданное изображение имеет номер 599 и текущая транзакция имеет номер 7. 16. Выполнить команду UNDO нажав на кнопку со стрелкой влево ‘<’ 17. Убедиться, что последнее созданное изображение имеет номер 499 и текущая транзакция имеет номер 6. 18. Выполнить команду REDO нажав на кнопку со стрелкой вправо ‘>’ 19. Убедиться, что последнее созданное изображение имеет номер 599 и текущая транзакция имеет номер 7. 20. Закрыть БД 21. Закрыть оболочку 22. Заново запустить файл Binary\Application\Debug\Cerebrum.DesktopClient.exe 23. Выбрать из меню File\Streams-01 пункт Open Stream … 24. Найти файл ранее созданной БД и подтвердить его открытие нажав Open 25. Убедиться, что последнее созданное изображение имеет номер 599 и текущая транзакция имеет номер 7. 26. Выполнить команду REDO нажав на кнопку со стрелкой вправо ‘>’ 27. Убедиться, что последнее созданное изображение имеет номер 699 и текущая транзакция имеет номер 8. 28. Откатить все созданные транзакции выполнив 7 раз команду Rollback 29. В процессе отката убедится в последовательном уменьшении общего количества транзакций и элементов в списке. 30. Закрыть БД 31. Закрыть оболочку Шуклин Дмитрий 26.06.2006 15:35:32 Флюктуация Связей: 0 При попытке постинга предыдущего сообщения на сервере возникла проблема. Сайт был недоступен в течении нескольких минут. Причина неизвестна. Надо ввести собственный лог событий сервера. Шуклин Дмитрий 26.06.2006 19:46:41 >> Флюктуация Связей: 0 Причина флюктуации обнаружена. <> Шуклин Дмитрий 29.06.2006 21:58:23 Синонимия/Омонимия объектных идентификаторов Связей: 0 Важной особенностью СООБЗ Cerebrum является отличие в адресации объектов по сравнению со стандартом объектных баз данных ODMG. По аналогии с естественным языком, когда одно и то же слово в разных контекстах имеет различное значение, и когда разные слова в некотором контексте имеют одинаковое значение, в ООБД так же возможно адресовать в разных контекстах разные экземпляры объектов с помощью одного и того же идентификатора, либо в некотором контексте адресовать один и тот же экземпляр с помощью разных идентификаторов. В этом случае каждый экземпляр persistent объекта определяет собственный контекст разадресации. В пределах любого экземпляра допустима только синонимия - когда разные ИД адресуют один и тот же внешний по отношению к текущему экземпляр другого объекта (в том числе и этого же самого если имеем ссылку на себя). Омонимия в пределах контекста разадресации не допускается. С другой стороны в БД столько контекстов сколько экземпляров. Поэтому в пределах всей БД каждый экземпляр может иметь практически неограниченное количество различных идентификаторов, без какого либо противоречия и конфликтов. В Cerebrum каждый объект, так же как и в ODMG адресуется с использованием мягкого указателя или ID объекта Cerebrum.Runtime.NativeHandle . Получение указателей на экземпляры объектов, внешних по отношению к некоторому текущему объекту, производится в пределах контекста текущего объекта. Объект может адресовать только те объекты, с которыми он установил связь. Каждый связанный с текущим объект имеет идентификатор. Каждый уникальный идентификатор определяет в пределах текущего объекта экземпляр связанного с ним объекта. В пределах текущего объекта каждый идентификатор может адресовать только один экземпляр. Однако важным отличием от ODMG является возможность иметь в пределах некоторого объекта несколько различных NativeHandle адресующих один и тот же экземпляр. В пределах некоторого заданного объекта несколько разных идентификаторов могут ссылаться на один и тот же экземпляр объекта. В отличие от ODMG, где каждый объект имеет только один уникальный идентификатор в Cerebrum один и тот же объект может иметь различные идентификаторы. Если рассмотреть не один экземпляр, а всю базу, то по аналогии с явлениями естественного языка синонимии и омонимии в СООБЗ Cerebrum возникает явления синонимии и омонимии идентификаторов объектов. В различных контекстах определяемых различными экземплярами объектов один и тот же идентификатор объекта NativeHandle может адресовать как разные экземпляры, так и один и тот же экземпляр. Это явление можно назвать омонимией объектных идентификаторов. Так же как и в естественном языке при омонимии один и тот же идентификатор в разных контекстах одной и той же базы данных может адресовать как различные, так и одинаковые экземпляры объектов. Как в одном и том же контексте, так и в разных контекстах различные идентификаторы могут ссылаться на один и тот же экземпляр объекта. В этом случае возникает явление синонимии объектных идентификаторов, когда один экземпляр может иметь в пределах базы множество различных идентификаторов - синонимов. Расширенная поддержка синонимии/омонимии объектных идентификаторов может использоваться для различных целей. В том числе для идентификации типа связей, при построении семантических и иерархических семантических сетей, для идентификации атрибутов объектов, реализации объектных views & joins. Определенный атрибут объекта должен иметь идентификатор инвариантный к экземпляру объекта. Различные экземпляры некоторого класса должны получать различные экземпляры значения своего атрибута при разадресации одного и тогоже идентификатора атрибута. Так же желательно иметь возможность найти метаинформацию, описывающую атрибут по идентификатору атрибута. Рассмотрим пример реализации атрибутов объектов. Пусть идентификатор атрибута равен 1000 (атрибут ‘Name’ – имя объекта). Пусть имеются экземпляры с идентификаторами 1023 (Name=’Int32’) и 1024 (Name=’Int64’). В этом случае в глобальном контексте нас интересуют 3 экземпляра объектов с идентификаторами 1000, 1023 и 1024. Экземпляр с идентификатором 1000 – метаописатель атрибута ‘Name’. Экземпляр с идентификатором 1023 – метаописатель типа ‘Int32’ и экземпляр 1024 – метаописатель типа ‘Int64’. В контексте объектов 1000, 1023 и 1024 разадресация идентификатора 1000 не зависит от разадресации этого же идентификатора в глобальном контексте. В этих контекстах возможно создание дочерних экземпляров объектов с идентификатором 1000 и хранящих не метаописание атрибута а его значение. Так в контексте 1023 разадресация атрибута 1000 будет приводить к получению объекта - строки “Int32”, в контексте 1024 – строки “Int64” а в контексте 1000 – строки “Name”. Следует обратить особое внимание на разадресацию идентификатора 1000 в контексте метаописателя атрибута 1000. Такая разадресация возвращает имя метаописателя атрибута 1000 - строку “Name”. Таким образом метаописатель атрибута ‘имя объекта’ описывает и собственный атрибут ‘Name’. Значением атрибута 1000 метаописателя атрибута 1000 - ‘имя объекта’ является строка ‘Name’. Из данного примера видно, что идентификатор 1000 в четырех различных контекстах ссылается на 4 различных экземпляра объекта, при этом в собственном контексте описывает собственное имя.Объектные представления должны обеспечивать соединения объектов. Например, если атрибутом объекта Работник является идентификатор объекта Организация то во многих случаях будет интересно получить способ обращаться к имени организации, к которой принадлежит этот работник. Это обеспечивается навигацией из объекта Работник по его атрибуту ‘идентификатор организации’ к экземпляру объекта Организация и далее к атрибуту ‘имя организации’. Результирующий агрегат – объект Работник с дополнительным атрибутом ‘имя организации’ должен иметь тот же идентификатор что и оригинальный объект Работник и должен обеспечивать прозрачный доступ ко всем свойствам объекта Работник и атрибуту ‘имя организации’. В объектной базе данных, поддерживающей синонимию/омонимию объектных идентификаторов, данная задача может быть решена следующим способом. Необходимо задекларировать новый атрибут ‘имя организации’ так как объект Организация имеет атрибут Имя и объект Работник так же имеет атрибут Имя. Если добавить к объекту Работник второй атрибут с идентификатором дублирующим уже существующий в этом экземпляре атрибут возникнет логический конфликт и будет невозможно определить, какое значение требуется вернуть при разадресации этого идентификатора. В каждый экземпляр класса Работник добавляется дочерним атрибутом экземпляр атрибута Имя объекта Компания с идентификатором этого атрибута ‘имя компании’. В результате каждый экземпляр имени компании будет иметь по два различных идентификатора, один – имя в контексте объекта Компания и второй – ‘имя компании’ в контексте объекта Работник. Все работники одной компании будут иметь в качестве значения атрибута ‘имя компании’ один и тот же экземпляр атрибута объекта Компания.Имя. Шуклин Дмитрий 01.08.2006 10:23:28 Список задач требующих решения Связей: 0 теоретические: - реализация декларативных запросов + оптимизатора запросов- реализация объектных VIEW - разделение схемы БД и данных. - динамическое преобразование схемы БД в соответсвие с некоторой заданной. системные: - реализация клиент-сервер архитектуры с активным сервером - реализация мультред ---- В текущей версии встроенной синхронизации нет. На страх и риск разработчика. - реализация многопользовательского доступа---- В текущей версии встроенной поддержки нет. Требуется кастом реализация. - реализация изоляции транзакций ---- В связи с однопользовательским режимом изоляция отсутствует. - реализация failsafe ---- Требуется реализация версионирования страниц - реализация индексовприкладные: - реализация полноценной СУБЗ совсем уш приземленные: - реализация веб форума на оснвое ASP.NET с БД на основе Cerebrum - реализиция веб портала на основе ASP.NET с БД на основе Cerebrum - реализация CMS (контент менеджера) на основе ASP.NET с БД на основе Cerebrum Шуклин Дмитрий 01.08.2006 21:09:20 Теперь Cerebrum живет и в среде ASP.NET 2.0 Связей: 0 В связи с ошибкой в реализации AppDomain.Unload стенд переведен на ASP.NET 2.0 Шуклин Дмитрий 10.08.2006 14:54:18 Новости Связей: 0 - Сделал страницу с историей изменений СУБЗ Cerebrum http://www.shuklin.com/ai/ht/en/cerebrum/history.aspx- Опубликовал новую версию Cerebrum от 2006-08-10- Перевел стенд на последнюю версию. БД с сообщениями сконвертил используя новый Data Manager Шуклин Дмитрий 21.08.2006 18:25:32 BLOG Связей: 0 Сегодня вернулся с отпуска. Отдохнули с Наташкой в Коктебеле. Великолепно провели время. Однако традиционные взрывы складов боеприпасов традиционно вызвали проблемы у ЮЖД. На вокзале в Симферополе бардак еще тот. Такого безобразия от администрации ЮЖД я не ожидал ((( Шуклин Дмитрий 24.08.2006 16:13:55 BLOG Связей: 0 Приступил к разделению определений и реализации типов СУБЗ Cerebrum. Это нужно для обеспечения потенциальной возможности использования интерфейсов ядра в среде .NET Remoting. Будет большая "революция". Много типов переедет из Cerebrum.Runtime в Cerebrum, Cerebrum.Typedef. К тому же NativeHandle переименуется в ObjectHandleВторое давно назревшее изменение - интерфейс IDomainFactory для обеспечения автоматического определения типа открываемой БД и создания экземпляра DomainContext. Это позволит открывать любую БД Cerebrum одной унифицированной процедурой. Шуклин Дмитрий 07.09.2006 17:10:32 BLOG Связей: 0 Стартовал проект "OT":Предполагается разработать библиотеку тесно интегрированных классов, на основе которых будет можно собрать приложение чем то напоминающее TradeStation. Десктоп приложение. Платформа Microsoft .NET 1.1 Язык реализации C#. При разработке буду предполагать что разрабатывается полноценная торговая платформа - конкурент TradeStation ( ;) ) Понятное дело что сама эта цель как таковая не реальна, но на разработку архитектуры приложения окажет значительное влияние. Тоесть приложение не будет монолитным. Это будет набор интерфейсов и соглашений по которым должны быть построены отдельные модули чтобы они смогли понимать данные друг друга. В качестве платформы для интеграции этих модулей будет выступать объектная БД Cerebrum. Отдельные экземпляры в этой БД будут поставщиками данных, отдельные - потребителями. Описание текущей конфигурации пользовательского интерфейса так же будет в этой же БД. БД с тикерами будут внешними. Обязанностью поставщика данных будет понять внешний формат БД с историческими данными и предоставить приложению в требуемом формате.Так как общие масштабы первой версии будут весьма ограничены, то в первой версии будет доступна библиотека базовых классов для облегчения создания источников данных, простенький поставщик исторических данных с БД на основе текстового ХМЛ и чарт для визуализации котировок.Экземпляры объектов можно будет подключать друг к другу динамически, выстраивая нужную конфигурацию, чем то похоже на вращение кубика рубика. Наличие ОБД должно позволить довести конфигурируемость отдельных модулей до параноидальных вершин :) В результате разработанная библиотека классов уже будет вести себя как готовое приложение и будет позволять реконфигурацию в весьма широких пределах.Так как разработка еще не начата то интересующиеся могут повлиять на результат своими коментариями и предложениями. Может даже специально под когото какой то модуль смогу разработать под шумок.Предпологаю что народу это дело будет интересно как простой тулз для просмотра котировок и как платформа/библиотека для построения собственного торгового софта.Большинство исходников видимо распространяться не будет, однако обфускацию применять пока не планирую.Бетаверсии будут доступны в скомпилированном виде свободно. Ну а до релиза еще далече. Любая комерциализация этого проекта будет приветствоваться.Смотреть также 1 Бойко Сергей 07.09.2006 18:43:54 Проект ОТ Связей: 0 На 1.1. не согласен. Под 2.0 есть готовый генератор отчётов, который даже декомпильнуть можно и переделать, что и собирался вообще-то я сделать. А под 1.1 он не работает. А 2.0 и так по миру уже разошлась. Шуклин Дмитрий 07.09.2006 18:51:41 Проект ОТ Связей: 0 Отчеты в первых версиях OT врядли понадобятся. Я думал про двойку. Глючит двойка заметнее меньше чем 1.1, но специфические возможности 2.0 пока некуда там применить. Поэтому решил ограничиться более универсальной 1.1. Разумеется при разработке надо будет обеспечить совместимость с 2.0 как на этапе выполнения так и на этапе компиляции.Из личного опыта, чтобы перевести текущую версию Cerebrum.DesktopClient на версию .NET 2.0 можно его перекомпилировать или без перекомпиляции достаточно включить в файл конфигурации Шуклин Дмитрий 07.09.2006 18:53:40 BLOG Связей: 0 Завершил "революцию" по разделению определений и реализации типов. Осталось еще IContainerEx удалить, давно он мне ненравится. Вместо него будут хэлп функции в Cerebrum.Integrator.Utilites.Усовершенствовал реализацию гостевой книги и перевел ее на новую версию Cerebrum. Шуклин Дмитрий 12.09.2006 13:11:36 BLOG Связей: 0 Опубликовал новую версию СУБЗ Cerebrum.В новую версию вошли следующие изменения:- Проведено разделение Cerebrum.Runtime.dll на две сборки: Cerebrum.Typedef.dll и Cerebrum.Runtime.dll В первую вошли определения основных типов и интерфейсов, во вторую - реализация. Это позволит использовать Cerebrum в среде Remoting. Подключение к клиенту только Cerebrum.Typedef.dll гарантирует отсутствие случайного инстанциирования окружения на стороне клиента.- Большинство интерфейсов и основные типы переехали из namespace Cerebrum.Runtime.* в namespace Cerebrum.* Cerebrum.Runtime.NativeHandle переименован в Cerebrum.ObjectHandle. Удален интерфейс Cerebrum.Runtime.IContainerEx- Появились хелпер функции Cerebrum.Integrator.Utilites- Добавлена возможность обновления кэша идентификаторов объектов используемая в ResolveHandle. Появились две новые функции Cerebrum.Management.Utilites.RefreshHandle и Cerebrum.Management.Utilites.RefreshHandles- Добавлен интерфейс Cerebrum.Runtime.IDomainFactory используемый для автоматического определения типа открываемой БД и выполнения начальной инициализации DomainContext. В Cerebrum.DesktopEngine добавлена поддержка таблиц DomainContexts и UiFileTypes- Добавлена формочка Help/Credits со списком участников проекта. Бойко Сергей 12.09.2006 13:49:04 Благодарность. Связей: 0 Спасиба Дима за реализацию возможности обновления кеша идентификаторов объектов. Уж очень нужная это штука. Шуклин Дмитрий 13.09.2006 17:22:54 Однако Microsoft Связей: 0 Описание проблемы:По странной причине браузер теряет persistent cookie в FormsAuthentication режиме. Если верить MSDN то:timeout Specifies the amount of time, in integer minutes, after which the cookie expires. The default value is 30. If the SlidingExpiration attribute is true, the timeout attribute is a sliding value, expiring at the specified number of minutes after the time the last request was received. To prevent compromised performance, and to avoid multiple browser warnings for users that have cookie warnings turned on, the cookie is updated when more than half the specified time has elapsed. This might result in a loss of precision. Persistent cookies do not time out. Исходя из реализации .NET 1.1 FormsAuthenticationTicket ticket1 = new FormsAuthenticationTicket(1, userName, DateTime.Now, createPersistentCookie ? DateTime.Now.AddYears(50) : DateTime.Now.AddMinutes((double) FormsAuthentication._Timeout), createPersistentCookie, "", strCookiePath);Исходя из реализации .NET 2.0 FormsAuthenticationTicket ticket1 = new FormsAuthenticationTicket(2, userName, DateTime.Now, DateTime.Now.AddMinutes((double) FormsAuthentication._Timeout), createPersistentCookie, string.Empty, strCookiePath);Для 1.1 приведенная фраза является верной, но в 2.0 они не продлевают жизнь persistent cookie на 50 лет, отчего persistent cookie в .NET 2.0 померает по умолчанию через пол часа.Вот уш не ожидал. => придется в ручную ей жизнь продлевать :( Шуклин Дмитрий 20.09.2006 14:01:30 BLOG Связей: 0 Опубликовал новую версию СУБЗ Cerebrum.В новую версию вошли следующие изменения:- Усовершенствован Data Manager- Теперь Emergency Configurator выключен по умолчанию. Включить его можно установив в файле Cerebrum.DesktopClient.exe.config параметр - Cerebrum.Runtime.IDiscovery переименован в Cerebrum.IDiscovery- Cerebrum.Windows.Forms.TabHeaderDirection переименован в Cerebrum.Windows.Forms.LayoutDirection- Cerebrum.Windows.Forms.TabHeaderBehavior переименован в Cerebrum.Windows.Forms.SelectionBehavior- Добавлен Cerebrum.Windows.Forms.ControlComponent- Усовершенствован код предотвращающий одновременную загрузку нескольких экземпляров Cerebrum.DesktopClient.exe Шуклин Дмитрий 22.09.2006 0:10:08 BLOG Связей: 0 Опубликовал новую версию СУБЗ Cerebrum.В новую версию вошли следующие изменения:- В модуле Cerebrum.Expert.dll исправлена ошибка компиляции базы знаний. Шуклин Дмитрий 02.10.2006 13:12:46 ИИ-2006 Связей: 0 2006-09-26 Выступил на конференции ИИ-2006 с докладом. Решение конференции: 3. На основании проведенного конкурса лучших докладов, представленных на конференции и научных молодежных школах молодыми учеными и аспирантами, наградить денежной премией в размере 1000 рублей авторов следующих докладов: - Шуклин Дмитрий Евгеньевич (Харьков) - Хорошилов Александр Владимирович - Головинский Андрей Леонидович (Киев) - Коровин Яков Сергеевич (Таганрог) – Жук Александр Викторович (Донецк) – Морозов Алексей Александрович (Москва) – Миронова Марина Юрьевна (Санкт-Петербург) Шуклин Дмитрий 02.10.2006 13:15:15 Однако Microsoft Связей: 0 После разделения ядра влетел в проблемы компиляторов от MS. C# имеет странное поведение (глюк?) в результате которого и специфических условий формируется DLL приводящая к вылету компилятора VB.NET. Шуклин Дмитрий 05.10.2006 14:56:55 BLOG Связей: 0 Опубликовал новую версию СУБЗ Cerebrum.В новую версию вошли следующие изменения:- Реализован workaround в связи с обнаруженным багом(?) компилятора VB.NET v1.1 Шуклин Дмитрий 11.10.2006 19:47:58 BLOG Связей: 0 Добавил возможность сортировки сообщений по дате Бойко Сергей 13.10.2006 15:44:47 Индексация текста в ООБЗ Церебрам. Идея. Связей: 0 Для индексации можно использовать уже имеющийся нейрон FastSymbolNeuron, разработанный Дмитрием Шуклиным, из примера Cerebrum.Samples.Objects-01. Использовать этот нейрон тоже идея автора примера. Но я предлагаю доработать его. А именно для каждого хранящегося символа в дереве цеплять ObjectHandle объектов в названии которых используется этот символ. Потом когда будет происходить поиск объектов по названию читать все ObjectHandle объектов для каждого символа и отсеивать те, которые хотя бы в одном из найденных символов отсутствуют. Это можно сделать при помощи логических операпций. Таким образом останится коллекция только искомых нами объектов. Шуклин Дмитрий 13.10.2006 15:54:02 Re: Индексация текста в ООБЗ Церебрам. Идея. Связей: 0 Привет, Серега! Я не полностью понял твое высказывание "А именно для каждого хранящегося символа в дереве цеплять ObjectHandle объектов в названии которых используется этот символ." Ты предлагаешь сохранять ObjectHandle всех объектов в индексируемом аттрибуте которых имеется один символ или последовательность символов, определяемая текущим узлом FastSymbolNeuron? Бойко Сергей 13.10.2006 16:28:22 Индексация текста в ООБЗ Церебрам. Идея. Связей: 0 Например мы ищем объекты сопоставляемые с понятием "мама". К примеру у нас в нейронной сети на основе FastSymbolNeuron есть ещё понятие "мало". Тогда в нейронной сети у нас будут хранится нейроны с такими символаси: "м", "а", "м", "а" и ещё 2-а для другого понятия "л", "о". К примеру с понятием "мама" будет сопоставлен объект с ObjectHandle=65667, а с понятием "мало" - ObjectHandle=65668. Тогда в каждом из нейронов будут хранится такие ObjectHandle. "м" - 65667, 65668; "а" - 65667, 65668; "м" - 65667; "а" - 65667; "л" - 65668; "о" - 65668. Когда производим поиск понятия "мама", объект с ObjectHandle=65668 есть только в 2-х первых нейронах. Значит он нам не подходит. А вот объект с ObjectHandle=65667 есть во всех 4-х нейронах. Значит это и есть искомый объект. Шуклин Д elmos - 2115 - - - - - - - - - - - - -