четверг, 31 января 2008 г.

А вы знали, что...

... что для элементов дизайна можно создавать папки? Об этом очень подробно описал Alan Lepofsky в своем блоге. Вещь насколько интересная, настолько и бестолковая в текущей её реализации

среда, 30 января 2008 г.

Все презентации с Lotusphere 2008

На форуме Интертраста добрый человек A Medvedev выложил ссылку на все (предположительно) презентации с Lotusphere 2008. К сожалению, т.к. я нахожусь не дома, я не могу скачать и проверить корректность файла

А вы знали, что...

Недавно я столкнулся с проблемой - у меня была функция, которая создавала документ в другой базе данных и возвращала его... Точнее должна была возвращать, но ничего не возвращала. Я бешено сидел и пытался понять, почему так происходит. Оказалось, что если в Sub'e, который вызывает данную функцию, нет объекта базы, в которой функция создает документ, то будет возвращено Nothing.
Причину этого явления очень доходчиво объяснил Akupaka в этом сообщении:
это связанно с тем, что лотус убивая объект БД чистит память под объектами, полученными из этой БД

Поэтому в функцию, которая создает документ в какой-либо базе данных, имеет смысл передавать объект той самой базы, в которой необходимо создать документ

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

Все презентации с Lotusphere 2008 появились в "свободном" доступе

На сайте LS08 online выложены все 177 презентации с Lotusphere2008... Одна проблема - к этому сайту имеют доступ только те, кто был на аккредитован на Lotusphere. Вот такая политика у IBM'a =(

Обращение к объекту класса

Предположим, что вам нужно использовать один и тот же объект класса между разными сабами. Допустим, это ядро какого-либо движка. Как его передавать от одного Sub'a другому? Насколько мне известно, существует всего два метода - объявить переменную глобальной либо передавать через параметр. Каждый из методов имеет своим преимущества и свои недостатки. Глобальные перемменные лучше вообще никогда не использовать, а через параметр передавать не очень-то удобно.
Дискуссия, начатая мною, по построению некоторого дерева Sub'ов переросла в некий мастер класс по ООП от Yakov'а (да простят меня программисты Java).
Одно из его предожений мне очень пришлось по вкусу - общаться с объектом класса только при помощи вспомогательной функции:

Public Function getMyClass() As MyClass
If MyClassGlobalVariable Is Nothing Then
Set MyClassGlobalVariable = New MyClass()
End If
Set getMyClass = MyClassGlobalVariable
End Function

Быстренький агент, написанный мною, показал, что 10 000 вызово этой функции занимает всего .015 сек (в тесте объект создается всего-лишь один раз). Таким образом не нужно в начале каждого Sub'a проверять на существование объекта класса. Общение с объектом класса происходит только при помощи функции getMyClass

Собираем урожай =)

Lotusphere прошла. Жаль, но меня там не было, не дорос. Может к следующей лотусфере подросту =). Мой анализ лотусовых блогов при помощи замечательного сайта planetlotus.org показал, что блогеры наконец начали выкладывать свои презентации с Lotusphere2008. На данный момент я наскреб штук 7-10, через некоторое время я сделаю единый банк всех презентаций, которые смогу найти

Wiki от IBM

Насколько я понял из этого поста, IBM прикрывает Redbook и переводит всю информация в формат Wiki... На мой взгляд, это плохо =(. Вообще не понимаю, как можно сравнивать одно с другим - Redbook - это законченная книга, учебник, когда Wiki - несвязанный набор статей.
Интересно, собирается ли IBM вообще прикрыть Redbook, оставив нас совсем без книг, или же все-таки будет выпускать по книге на версию
Notes/Domino Wiki - как я понял, содержит информацию пока полезную только для админов... Посмотрим, что будет дальше
Composite Applications Wiki

пятница, 25 января 2008 г.

Церемония открытия Lotusphere 2008

В интернете появилась церемония открытия Lotusphere 2008 от IBM... Вкусности показывают ближе к середине. Приятно просто посмотреть, что нас ждет впереди.

четверг, 24 января 2008 г.

вторник, 22 января 2008 г.

Ура, товарищи!!!

Как очень понятно написал Wild Bill, в 8.5 нас ждет "Eclipse based designer... class browser... some new design elements". Жаль только дебагер не сделают, но это мелочь по сравнению дизайнером на Eclipse!

Lotusphere 2008

Сейчас в городе Орландо, штат Флорида, проходит самое важное событие для лотусистов - Lotusphere 2008... Думаю, большая куча информации нам точно обеспечена. Уже достаточно много информации можно найти в блогах Alan Lepofsky и Ed Brill

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

Музыкой, блин навеело из "Одиночества в сети" Я. Вишневского

Мне не хочется жить в мире, где умирают Ангелы и есть Боль. Нет, разумеется, физически я в нем еще на какое-то время задержусь, но жить буду в своем мире, где есть GetDocumentByKey, LastExitStatus, GetEmbeddedObject и %include. Я здесь все знаю. Когда появляются новые вещи я заботливо расставляю их на новые полки, а со старых стираю пыль. Они меня никогда не подводят по крупному. Я знаю как и о чем их можно спросить, а уж они точно знают, что я хочу услышать в ответ. Они и сами огорчаются, когда не могут мне дать то, что я от них жду. Иногда мы тоже ругаемся, нет я просто на них ору, вспоминаю их родителей и в Бога и в мать, но они не обижаются. Как можно обижаться на людей. Они такие несовершенные. Потом опять воцаряется мир. Идилия. Я и сам иногда хочу стать GetFirstItem, хотя нет, он такой примитивный и ему не достает мужественности. Лучше я буду SetPositionAtEnd он такой непостоянный и сразу видно, что это янь. А в подруги возьму флегму NotesRichTextTable. Что же получится в результате этого союза? Error. Жаль, но у меня еще будет время на выбор спутницы жизни, да и NotesRichTextTable не обидится. Ей уже столько раз делали предложение, что одним меньше, одним больше ... А пока сядем и будем писать сказки про этот мир, заманивая в него из Вашего неокрепшие души юных программеров. Им будет здесь лучше. Потому что в этом мире ты сразу начинаешь ощущать себя Творцом. Некоторые будут обитать в нем строго 8 часов, другие с утра и до ночи с перерывами на физиологические несовершенства организма. Милости просим или обратного пути нет...

пятница, 18 января 2008 г.

Моя новая идея на IdeaJam

Идея связана с предоставлением большего кнотроля над содержимым FrameSet'ов. Это просто ахилесова пята LN... Вообще лотусовый GUI очень слаб =(

вторник, 15 января 2008 г.

Интеграция с MS Office / Open Office

До версии 8.0 нам приходилось использовать сторонние приложения для вывода данных в печатный формат. В восьмерку встроили Symphony, которая является несколько переработанным OpenOffice'ом...
Очень интересная ссылка по интеграции LN с OpenOffice/MS Office
и небольшое приложение по интеграции с Symphony

суббота, 12 января 2008 г.

Как скрыть библиотеку?

Млин, что только люди не откопают? Задача - скрыть библиотеку от заказчика, но не скрывать остальные элементы дизайна. Как это сделать?
Решени - найти документ библиотеки и в поле "$ScriptLib" написать какую-нибудь ерунду =)
Кстати, не делайте так на боевом шаблоне =)
Sub Initialize
Dim ns As New NotesSession
Dim ndb As NotesDatabase
Dim nc As NotesNoteCollection
Dim nd As NotesDocument
Dim strNoteID As String
Dim i As Integer

Set ndb = ns.CurrentDatabase
Set nc = ndb.CreateNoteCollection(False)
nc.SelectScriptLibraries = True
Call nc.BuildCollection

strNoteID = nc.GetFirstNoteId
For i = 1 To nc.Count
Set nd = ndb.GetDocumentByID(strNoteID)
Call nd.ReplaceItemValue("$ScriptLib", "HelloWorld")
Call nd.Save(True, False)

strNoteID = nc.GetNextNoteId(strNoteID)
Next
End Sub