Очень давно ничего не писал. Учеба, работа, времени не было. Но ради такого случая стоит написать. Notes/Domino 8.5 PUBLIC Beta 1 - Now Available!!!
Прийду домой, узнаю, есть ли там Eclipse based designer
пятница, 30 мая 2008 г.
суббота, 1 марта 2008 г.
Рожденный ходить летать не сможет
Давно не писал... Уже второй раз убиваю Lotus Notes версии 8... Не могу я в ней работать! Еле грузит, глючит. Фу =(. Взяли, впихнули сишный клиент в эклипс.
В общем, пока не появится новый дизайнер, будем сидеть на Lotus Notes 7.
В общем, пока не появится новый дизайнер, будем сидеть на Lotus Notes 7.
среда, 20 февраля 2008 г.
[ru] Программное создание / редактирование Outline'a
Потребовалось мне по проекту программно редактировать аутлайн. Задача, конечно, не очень красивая, но пришлось делать. Заодно и изучил классы NotesOutline и NotesOutlineEntry. Эти два класса мне показались очень похожими на NotesViewNavigator и NotesViewEntry соответственно. Наверно, так они и задумывались. Однако, хочется отметить то, что классы написаны, на мой взгляд, без особо сильных затрат и раздумий. Например, чтобы удалить Entry нужно использовать конструкцию вида notesOutline.RemoveEntry( currentEntry ). Но почему нельзя было сделать currentEntry.Remove ?
Ладно, это все мои пожелания... Задачу я уже почти решил, как столкнулся с проблемой, которая меня достаточно сильно напугала - я не нашел метода / свойства, которое бы включало галку "Do not display an image". Кажется, про это свойство забыли =).
Слава богу, на IBM'овском форуме мне удалось найти два решения:
1. Создать "MasterEntry", в котором галка будет включена, и создать новый Entry по его образу (CreateEntryFrom) (я использовал этот метод)
2. Создать прозрачное gif изображение размером 1х1 пикселей.
Ладно, это все мои пожелания... Задачу я уже почти решил, как столкнулся с проблемой, которая меня достаточно сильно напугала - я не нашел метода / свойства, которое бы включало галку "Do not display an image". Кажется, про это свойство забыли =).
Слава богу, на IBM'овском форуме мне удалось найти два решения:
1. Создать "MasterEntry", в котором галка будет включена, и создать новый Entry по его образу (CreateEntryFrom) (я использовал этот метод)
2. Создать прозрачное gif изображение размером 1х1 пикселей.
пятница, 15 февраля 2008 г.
[ru] А вы знали, что...
Не люблю я дни "рандомных ошибок" - то ошибка есть, то её нет. Сегодня был именно такой день =(. Больше всего я удивился, когда заметил, что uidoc.Refresh(true) (обновление документа с richtext полями) соханяет документ! Очень много времени и нервов мне потребовалось, чтобы выяснить в чем причина. Итак
SaveOptions = "1" + uidoc.Refresh(true) = Сохранение документаВот такая вот формула... Всех, думаю, очень "радует"
суббота, 9 февраля 2008 г.
[ru] Неправильное прогаммирование
Тестировал свеженаписанное мною приложение и получил ужасный результат. После разбирательства, понял в чем проблема. У меня есть класс, в который можно закинуть определенный класс для хранения со своим IDшником. Для тестирования я закидывал туда 20 000 экземпляром класса... И это занимало 153(!!!) секунды. Попробывал закидывать не класс, а тип - 3 секунды =)
Вот так... буду думать, могу ли я хранить информацию в типах в моем случае или же от классов не избавиться
Вот так... буду думать, могу ли я хранить информацию в типах в моем случае или же от классов не избавиться
среда, 6 февраля 2008 г.
[ru] IdeaJam - а есть ли смысл?
Безусловно, IdeaJam.net очень полезный ресурс... если его читают разработчики LotusNotes. Но читают ли они его? Сколько идей было реализовано в новых версиях? Или же все это останется нашими несбыточными мечтами?
На днях наткнулся на видео, которое отображает всю мощь композитных приложений. Скажу честно - впечатляет. К сожалению, я ещё ничего не читал о новой технологии, но так понимаю, что даже лотусовые элементы дизайна проще связывать через композитные приложения, а не через фреймсеты
На днях наткнулся на видео, которое отображает всю мощь композитных приложений. Скажу честно - впечатляет. К сожалению, я ещё ничего не читал о новой технологии, но так понимаю, что даже лотусовые элементы дизайна проще связывать через композитные приложения, а не через фреймсеты
воскресенье, 3 февраля 2008 г.
[ru] GUI tip
Лотусовый ГУИ это, на мой взгляд, самая проблемная вещь. Именно проблемная... Почему тут скролл есть, а здесь нет? Понять это очень сложно, скрыто это в десятках галочек и зачастую бывает проще создать новую форму, чем разбираться, как убрать горизонтальный скролл... Но разговор не об этом
Благодаря Medevic я узнал об одной, на мой взгляд, очень полезной команде - SHIFT + F8 - полностью убирает отступ слева без появления горизонтального скролла
Благодаря Medevic я узнал об одной, на мой взгляд, очень полезной команде - SHIFT + F8 - полностью убирает отступ слева без появления горизонтального скролла
четверг, 31 января 2008 г.
А вы знали, что...
... что для элементов дизайна можно создавать папки? Об этом очень подробно описал Alan Lepofsky в своем блоге. Вещь насколько интересная, настолько и бестолковая в текущей её реализации
среда, 30 января 2008 г.
Все презентации с Lotusphere 2008
На форуме Интертраста добрый человек A Medvedev выложил ссылку на все (предположительно) презентации с Lotusphere 2008. К сожалению, т.к. я нахожусь не дома, я не могу скачать и проверить корректность файла
А вы знали, что...
Недавно я столкнулся с проблемой - у меня была функция, которая создавала документ в другой базе данных и возвращала его... Точнее должна была возвращать, но ничего не возвращала. Я бешено сидел и пытался понять, почему так происходит. Оказалось, что если в Sub'e, который вызывает данную функцию, нет объекта базы, в которой функция создает документ, то будет возвращено Nothing.
Причину этого явления очень доходчиво объяснил Akupaka в этом сообщении:
Поэтому в функцию, которая создает документ в какой-либо базе данных, имеет смысл передавать объект той самой базы, в которой необходимо создать документ
Причину этого явления очень доходчиво объяснил Akupaka в этом сообщении:
это связанно с тем, что лотус убивая объект БД чистит память под объектами, полученными из этой БД
Поэтому в функцию, которая создает документ в какой-либо базе данных, имеет смысл передавать объект той самой базы, в которой необходимо создать документ
понедельник, 28 января 2008 г.
Все презентации с Lotusphere 2008 появились в "свободном" доступе
На сайте LS08 online выложены все 177 презентации с Lotusphere2008... Одна проблема - к этому сайту имеют доступ только те, кто был на аккредитован на Lotusphere. Вот такая политика у IBM'a =(
Обращение к объекту класса
Предположим, что вам нужно использовать один и тот же объект класса между разными сабами. Допустим, это ядро какого-либо движка. Как его передавать от одного Sub'a другому? Насколько мне известно, существует всего два метода - объявить переменную глобальной либо передавать через параметр. Каждый из методов имеет своим преимущества и свои недостатки. Глобальные перемменные лучше вообще никогда не использовать, а через параметр передавать не очень-то удобно.
Дискуссия, начатая мною, по построению некоторого дерева Sub'ов переросла в некий мастер класс по ООП от Yakov'а (да простят меня программисты Java).
Одно из его предожений мне очень пришлось по вкусу - общаться с объектом класса только при помощи вспомогательной функции:
Быстренький агент, написанный мною, показал, что 10 000 вызово этой функции занимает всего .015 сек (в тесте объект создается всего-лишь один раз). Таким образом не нужно в начале каждого Sub'a проверять на существование объекта класса. Общение с объектом класса происходит только при помощи функции getMyClass
Дискуссия, начатая мною, по построению некоторого дерева 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
Интересно, собирается ли 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
Очень интересная ссылка по интеграции LN с OpenOffice/MS Office
и небольшое приложение по интеграции с Symphony
суббота, 12 января 2008 г.
Как скрыть библиотеку?
Млин, что только люди не откопают? Задача - скрыть библиотеку от заказчика, но не скрывать остальные элементы дизайна. Как это сделать?
Решени - найти документ библиотеки и в поле "$ScriptLib" написать какую-нибудь ерунду =)
Кстати, не делайте так на боевом шаблоне =)
Решени - найти документ библиотеки и в поле "$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
Подписаться на:
Сообщения (Atom)