• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Lotus Notes And Domino 8

30.06.2006
141
5
BIT
0
RAJ,

Простым анализом:

1. Берем список всех полей в базе
2. Находим нужное нам поле SomeValue
3. Поле SomeValue одно в базе?
3.1 Да, поле одно — сравниваем тип поля с тем что в коде, если не совпадает — отображаем ошибку
3.1 Нет, таких полей несколько
4. Совпадают ли типы у этих полей (т.е. в двух разных формах SomeValue — текст)
4.1 Да, они одинакового типа — сравниваем с тем что в коде, если не совпадает — отображаем ошибку
4.2 Нет, они разных типов — отображаем сообщение о возможной ошибке (мол смотри не напутай, поле то у тебя в одной форме как текст, а в другой как номер)

Только не надо отображение ошибок воспринимать как в Лотусе, посмотрите как тот же самый Эклипс сообщает об ошибках при работе с java-кодом.
 
R

RAJ

+ и пусть лотус сам приводит к нужным типам, зачем программера нагружать
 

puks

Lotus Team
03.02.2007
1 919
55
BIT
5
Для: Кирилл Шваб
О чем вы вообще говорите. Давайте "мухи отдельно, котлеты отдельно".

1) Notes - это система документооборота. Это тип систем с неструктурированными данными, в отличии от реляционных баз, где структура четко описывается. И в этих системах нет нормализации и обязательности следования структуры. Это системы для специфических задач, которые и называются документооборотом. Можно, конечно, накладывать ограничения, требования, связи и тп. Но это уже дело вкуса и требований конкретной задачи. Но в общем случае, см. выше...
2) Есть элементы дизайна и есть данные. Данные могут открываться с разными формами, что, кстати, часто используется. Что вы хотите, чтобы дизайнер проверял? То, чего может вообще не выводиться ни в какой в форме? Или может выводиться, но не в одной форме? Может в разных документах (формах) иметь разные типы поля? Может быть специальным полем, для backend операций? Вообще может быть новым полем и нигде еще не существует? ЭТО ДОКУМЕНТООБОРОТ!!! Со всеми плюсами и недостатками.

Вообще, мое мнение, что все упрощения работы разработчика с подсказкам и проверками и тп приводят к тому же результату, что и пользование калькулятором школьника, который не научился вручную делать операции. В образовании это называется "Microsoft education". За всей простотой click-click совершенно теряется понимание, аккуратность работы и знания, так как ответственность за проверку перекладывается на разработчика софта.
 
O

oshmianski

согласен с Кирилл Шваб, дизайнер у лотуса очень скудный и иногда глючный. 8-ка ничего интересного разработчикам не предложила, на мой взгляд. но работаем с тем, что имеем и иногда даже очень неплохо получается.

зы: выпадающий список свойств и методов мне и не нужен, он даже отвлекает. а вот от перекрестных ссылок на описание функций и процедур не отказался бы (как стандартных, так и написаных разработчиком) + интерактивные ссылки на описание метод и свойств из хелпа (естественно, только для стандартных).
и вообще, может откроем свою ветку - "чего мне не хватает в лотусе (дизайнере\клиенте\серваке)", подобно ? не уверен,что разработчики лотуса обратят на него внимание, а вот разработчикам различных add-on'ов будет полезно. опять же, имхо.
 
K

Kee_Keekkenen

Для: Кирилл Шваб
про нелепые примеры..

как известно поля это константы - по-моему это тривиально.. т.о. опечатки только в вашей голове..

а print в приведенном примере приводит данные к строковому виду и выводит.. ошибки - ваши выдумки..
 
30.06.2006
141
5
BIT
0
Ошибки естественно в голове, где же им еще быть, это никто и не отрицает.

Print приведен для примера. Поэтому написал, что примеры грубы, но главное смысл — отслеживание соответствии типов данных.

Не занудствуйте, почитайте чего-нить по эргономике. Человек не робот, будь ты супер мозгом, ты все равно иногда будешь допускать ошибки. Если среда, в которой ты работаешь, будет предотвращает максимальное кол-во ошибок, то их будет заведомо меньше.

Смысл в том, что текущую среду еще улучшать и улучшать, поскольку некоторые моменты задаются вручную и не контроллируются — соответствено при этом никто не застрахован от ошибок. Хотя вы все равно можете твердить свое и остаться при своих мнениях — ваше право.
 
K

K-Fire

На самом деле, Кирилл поднял интересную тему. В моей голове вчера вечером эта тема трансформировалась в такой вопрос:
Почему IBM до сих пор не сделала нормальный IDE для лотуса? Ресурсов у IBM немеряно, посадить 1000 индусов - не проблема. Но почему-то с момента покупки Lotus-а, никаких серьезных изменений в дизайнере просто не было сделано. Это неспроста ;)
Далее у меня возникло предположение: (естессно думать за боссов IBM Lotus трудно, но можно) - они позиционируют Лотус не как средство для разработки каких-либо кастомных приложений вообще.
Лотус позиционируется ТОЛЬКО как средство групповой работы.

<!--QuoteBegin-puks+21:08:2007, 15:57 -->
<span class="vbquote">(puks @ 21:08:2007, 15:57 )</span><!--QuoteEBegin-->Notes - это система документооборота
[snapback]75944" rel="nofollow" target="_blank[/snapback]​
[/quote]

А я вот сомневаюсь в этом! Давайте посмотрим на наш рынок систем док-оборота: На рынке с десяток основных игроков, из них документооборот на лотусе - всего у 2х (Интертраст, и забыл еще кто-то).
При том основная часть рынка - далеко не у них. Например ДЕЛО - самописная система на реляционке. Используют в массе мест и тендеры замечательно выигрывают у лотусовых решений.

Западный рынок я плохо знаю, но там я вообще не встречал серьезных игроков предлагающих док-оборот на лотусе. (Если кто имеет инфу, буду рад услышать)


Короче приглашаю к обсуждению темы: Как позиционируется на рынке Лотус (и почему так) ?
То что на лотусе мы пытаемся писать самые разные бизнес-приложения (даже иногда вообще не имеющие отношения к док-обороту и коллективной работе) - это издержки, предлагаю на такие примеры не ориентироваться.


P.S.
Только что вышедшая 8я версия Лотуса - замечательный пример. В дизайнер были добавлены какие-то рюшечки, фичи маленькие, целый новый (!) блок Composite Applications в котором почти ничего делать нельзя. Так новые версии не выпускаются ИМХО! Обращаю внимание - это новая major версия очень распространенного продукта. Версия, в которой для разработчика не добавилось практически ничего. То что нам в 8.5 обещают - это всё равно что сказать - покупайте бета-версию , а где-то через полгода мы выпустим релиз.
 
K

Kee_Keekkenen

глупо было бы надеяться, что IBM что-то делать будет в лотусе, он только его поддерживает.. у них масса приложений базирующихся на вебсфере.. недаром даром раздается лотус это еще один из способов продвинуть db2..
 
30.05.2006
1 345
12
BIT
0
RAJ,

Простым анализом:

1. Берем список всех полей в базе
2. Находим нужное нам поле SomeValue
3. Поле SomeValue одно в базе?
..
Глупости. Мозги заштампованы реляционками.
У Домины НЕреляционная база (если это можно назвать базой). В ней мета-данные НЕ отделены от данных. Соотв. списка всех полей и нет. Таковой можно исчислить как снимок состояния базы (не дизайна!) в конкретный момент времени. А через секунду - он уже другой.
Список полей упомянутых в дизайне базы? Тоже глупость: док-ты м.б. записаны кодом НЕ из данной базы...
С типом полей разобрались.

Теперь, почему не ругается на конструкции типа doc.Valeus(0)?
А это побочный эффект уступки ленивым программистам (т.н. расширенный синтаксис). Ведь в базе вполне может оказаться док-т с ПОЛЕМ "Valeus".
Вот почему я этот "расширенный синтаксис" ужасно не люблю (и почти не использую). Жаль, что его нельзя выключить (как options в 6-ке)
 
K

K-Fire

Ага, вот именно что это нельзя назвать базой :blink:
Если бы Лотус использовал реляционную схему БД я лично был бы очень очень рад.
 
30.05.2006
1 345
12
BIT
0
Ага, вот именно что это нельзя назвать базой :(
Если бы Лотус использовал реляционную схему БД я лично был бы очень очень рад.
Юзай Делфу+Оракл и радуйся.

Доказывается как теорема (домашнее задание. Предлагаю по-шевелить мозгами, а не лязгать догмами): транзакции и репликация две вещи несовместные. Т.е. на уровне системы. Для отдельно взятого СУБД-приложения часто можно изготовить репликатор; для отдельно взятой базы LND иногда можно состряпать журнал транзакций.

Вот и решай, который из инструментов более адекватен для той или иной конкретной задачи (для централизованной обработки - безусловно СУБД, для распределенной - часто выигрывает LND).

И не надо отверткой забивать гвозди
 
K

K-Fire

Константин, не надо так распаляться :blink:

Дельфи - система неадекватная для создания бизнес-приложений, это по-моему давно уже все понимают. А другой связки Нечто+Оракл которая была бы похожа на Лотус я не знаю. Если вы знаете - поделитесь.

<!--QuoteBegin-Constantin A Chervonenko+23:08:2007, 12:14 -->
<span class="vbquote">(Constantin A Chervonenko @ 23:08:2007, 12:14 )</span><!--QuoteEBegin-->транзакции и репликация две вещи несовместные. Т.е. на уровне системы.
[snapback]76153" rel="nofollow" target="_blank[/snapback]​
[/quote]

Я на выходных пошевелю конечно мозгами, но насколько моих знаний хватает, ваше утверждение вообще то совсем неочевидно, и требует как минимум примера, когда эти 2 функции совместить нельзя.
 
30.06.2006
141
5
BIT
0
Константин,

после вашего сообщения почему-то вспомил следующую фразу: «Нежелание всегда найдет причину, желание — способ». Если бы все при решении задач размышляли с точки зрении «это невозможно», то мы бы сейчас жили в каменном веке (хотя и до него надо было развиваться и искать решения). Сумбурно, но, думаю, понятно о чем я.

У Домины НЕреляционная база (если это можно назвать базой). В ней мета-данные НЕ отделены от данных. Соотв. списка всех полей и нет. Таковой можно исчислить как снимок состояния базы (не дизайна!) в конкретный момент времени. А через секунду - он уже другой.
Список полей упомянутых в дизайне базы? Тоже глупость: док-ты м.б. записаны кодом НЕ из данной базы...
Понятно, что документы могут создаваться не только локально, но и из других баз. Однако, ничто не мешает получить список полей для определенного момента времени, проверить его и если не совпадают или вообще нет — отображать варнинг.

Теперь, почему не ругается на конструкции типа doc.Valeus(0)?
А это побочный эффект уступки ленивым программистам (т.н. расширенный синтаксис). Ведь в базе вполне может оказаться док-т с ПОЛЕМ "Valeus".
Ага, и при этом есть ли такое поле не проверяется. Отличный синтаксис!

Повторюсь в третий раз, это всего лишь примеры. Хотя и для этих примеров можно найти решение — было бы желание. Тут уже вопрос в другом — разумно ли это, т.е. стоит ли над этим работать и будет ли от этого польза.

Подвел для себя маленький итог затронутой темы. Ничего нового для себя не открыл, посмотрел несколько ответов — конструктивных мыслей не видел, везде глупость/ты дурак/так нельзя сделать. Всем спасибо.
 
30.05.2006
1 345
12
BIT
0
Дельфи - система неадекватная для создания бизнес-приложений. А другой связки Нечто+Оракл которая была бы похожа на Лотус я не знаю. Если вы знаете - поделитесь.
Не знаю. Ну, разве что Pick какой-нибудь
Я на выходных пошевелю конечно мозгами, но насколько моих знаний хватает, ваше утверждение вообще то совсем неочевидно, и требует как минимум примера, когда эти 2 функции совместить нельзя.
Конечно не очевидно. Потому и "домашнее задание". С примером не просто, т.к. в частных случаях (т.е в некоторых конкретных приложениях) эти ф-ции совмещаются. В общем (т.е. на уровне движка СУБД или LND) - нет.
Попробуйте для начала разобрать возможные проблемы транзакции в LND.
Со стороны СУБД найти/обосновать невозможность репликации сложнее...
 
30.05.2006
1 345
12
BIT
0
Ну... Да уж...
Вы дизайните ШАБЛОН. В каких базах надо искать док-ты с полями? Их (баз) м.б. и нет еще. Или есть - в др. доменах на др. серверах.

Вы-б еще от MS потребовали, что-б Publisher проверял целостность http-ссылок. Задачки одного порядка сложности и осмысленности
 
30.06.2006
141
5
BIT
0
<!--QuoteBegin-Constantin A Chervonenko+24:08:2007, 14:07 -->
<span class="vbquote">(Constantin A Chervonenko @ 24:08:2007, 14:07 )</span><!--QuoteEBegin-->Вы дизайните ШАБЛОН. В каких базах надо искать док-ты с полями? Их (баз) м.б. и нет еще. Или есть - в др. доменах на др. серверах.[/quote]
Ну и что, что шаблоны. Для новых приложений чаще всего создают формы, представления, экшены, затем пишут агентов. Т.е. к моменту написания агента уже есть формы с полями, по которым можно было бы проверять. А если полей нет (используются другие базы), то можно варнинги отображать.
 

puks

Lotus Team
03.02.2007
1 919
55
BIT
5
<!--QuoteBegin-Кирилл Шваб+24:08:2007, 06:18 -->
<span class="vbquote">(Кирилл Шваб @ 24:08:2007, 06:18 )</span><!--QuoteEBegin-->Т.е. к моменту написания агента уже есть формы с полями, по которым можно было бы проверять. А если полей нет (используются другие базы), то можно варнинги отображать.
[snapback]76283" rel="nofollow" target="_blank[/snapback]​
[/quote]
То есть в принципе тебя не смущает, что агент может работать с документом, который создавался без формы или иметь поля, созданные вне формы, или вообще проходиться по документам с разными формами? Главное, пройтись по всем документам (опять таки, непонятно какой базы: шаблона или рабочей) создать список всех возможных полей. А потом, после получения этой потрясающей функциональности, которая все равно не позволит избежать ошибок, жаловаться на то, что что-то медленно это все работает.

Еще раз посмотри то, что тебе написали. Форма - это еще не документ. Это всего лишь элемент дизайна, через который ты будешь смотреть на данные. А данные могут содержать поля, которых может не быть не только в этой форме, но и вообще во всех остальных элементах дизайна.
 
K

K-Fire

<!--QuoteBegin-puks+24:08:2007, 12:47 -->
<span class="vbquote">(puks @ 24:08:2007, 12:47 )</span><!--QuoteEBegin-->А данные могут содержать поля, которых может не быть не только в этой форме, но и вообще во всех остальных элементах дизайна.
[snapback]76287" rel="nofollow" target="_blank[/snapback]​
[/quote]

Вот такую вещь мы однозначно считаем "фичей" Лотуса. Хотя по большому счету это лень программиста, который завел какой-нить флаг в документе, а на форму поленился положить скрытое поле+комментарий. И потом кроме него уже никто не вспомнит что это за поле и зачем оно :)
Конечно есть случаи, когда заранее невозможно знать что за поля будут в документе, но, я считаю, такую архитектуру всегда можно редизайнить до случая когда все поля известны заранее.

В общем наше обсуждение идет к холи-вару, что лучше для лотуса, его "объектная" модель или реляционка ;) Хотя если бы БД лотуса работала хотя бы в 5 раз быстрее чем сейчас, я бы даже и не вспоминал о таких вещах.


P.S. Сегодня был случай: надо было модифицировать некоторый код в Java-библиотеке. У нас она писалась в Eclipse. Так вот человек используя стандартные рефакторинговые фишки Эклипса изменил кучу вызовов буквально за 5 минут. У меня просто слюнки текли, когда смотрел как это офигенно удобно и просто делается там, вспоминая, насколько геморно и долго это делалось бы в лотусовом дизайнере.
Так что если в 8.5 айбиэмовцы не сделают нормальный современный IDE под лотус, я специально поеду в штаты и всех их там зарЭжу :)
 

puks

Lotus Team
03.02.2007
1 919
55
BIT
5
Кто-нибудь сапгрейдил сервер с 7 до 8? Как полет?
 
30.05.2006
1 345
12
BIT
0
Вот такую вещь мы однозначно считаем "фичей" Лотуса. Хотя по большому счету это лень программиста, ...
Конечно есть случаи, когда заранее невозможно знать что за поля будут в документе, но, я считаю, такую архитектуру всегда можно редизайнить до случая когда все поля известны заранее.
Это означает, что ты предполагаешь обрабатывать ТОЛЬКО структурированную информацию. А как известно, более 90% информации в мире НЕструктурировано.
Еще: хорошо, если адекватная структура данных для некоей конкретной задачи достоверно определяется к тому моменту, как задача уже полностью решена. Чаще она устаканивается только к тому моменту, как обработаны все данные (потому что они структурируются именно в процессе обработки)
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!