Sur В целом неплохо. Первое, что бросается в глаза - невозможность развернуть и растянуть окно, хотя кнопка для этого есть. Явно не хватает маски в фильтрах:all files *.*, при двойном пароле и выше, текст теряется в логарифмической зависимости от числа букв в пароле. То же самое, если вначале попытаться "расшифровать" текст. И последнее - компонент имеет пределы по объёму текста.
PS "Тестирование" было пятиминутным, объективность вышеперечисленного - спорная.
Diego писал(а): С goto вообще смехотворная ситуация. Здесь я солидарен с автором учебника Пироговым - нагородили до черта непойми-чего, а от JMPа никуда не ушли, разве что более длинно прыгать стали.:)
Важно не то, какую команду исполнит процессор когда программист напишет goto, if, switch, longjmp, break, throw, или call/cc. Важно то, как это выглядит на стадии дизайна программы.
А по поводу больших проектов..
Большие проекты разваливаются не из-за "кризиса программного обеспечения", а из-за плохого дизайна. И ООП - это в первую очередь подход к дизайну больших приложений. Я работал на проект где было больше десяти тысяч классов, и всё работало. На моей текущей работе, DDD (детальный дизайн) на прогу в около тыщи классов - книга в 700 страниц. И это работает и работает на удивление хорошо. А если нет желания тратить 80-90% времени и сил на дизайн вместо собственно программирования - то конечно, достаточно быстро наступит кризис.
--Cubbi
Sur Лев Сообщений: 283 Город: Челябинск 26.03.2006 08:31
Большие проекты разваливаются не из-за "кризиса программного обеспечения", а из-за плохого дизайна.
Верное замечание.Несомненно гораздо удобнее в самой программе делать всё возможное, чтобы не возникало вопросов "А это для чего?","А зачем?". Как следствие, увеличивается производительность. Но ведь "дизайн" можно делать не только на ЯП выс.уровня. ;)
Важно не то, какую команду исполнит процессор когда программист напишет goto, if, switch, longjmp, break, throw, или call/cc. Важно то, как это выглядит на стадии дизайна программы.
А кто подумает о тех, кто с деасмом лазает по готовому проекту, пытаясь разобраться в кодах, где четыре страницы можно заменить двумя коммандами? Компиляторы очень любят подобные манипуляции. Особенно для продуктов мелкомягких.
Sur
Пытался убрать кнопку.Безуспешно.
Странно. На чём ты пишешь? Пиши в личку, попробуем разобраться.
а зачем, чем тхт формат не устраивает?
Из соображений универсальности. Можно, конечно, набивать *.*, но это не выход. А если у юзверя какие-нибудь doc-файлы, или те же cpp,pas,asm и пр.?
А здесь попрошу написать поподробнее.
Взять текст, тыкнуть зашифровать с паролем, менять пароль, снова зашифровать, в обратной последовательности. Например, пароли abcdefgh и delete оставят процента 3 первоначального текста.
„Life es so short yet sweet.”
Sur Лев Сообщений: 283 Город: Челябинск 26.03.2006 11:05
Diego писал(а): Взять текст, тыкнуть зашифровать с паролем, менять пароль, снова зашифровать, в обратной последовательности. Например, пароли abcdefgh и delete оставят процента 3 первоначального текста.
Предполагается что так делать никто не будет.
Принял к сведению твои заметки, переделал.
Выкладываю версию 1.1
[Добавлено 26.03.2006 12:09:13]:
Diego, забыл сказать спасибо.
Выкладываю генератор поролей в стиле ТЛК.
Не пропустите!
1) Ограничение на размеры формы лишнее. Все-таки это текстовый редактор.
2) При сохранении нужно самому убирать расширение, иначе они плодятся.
3) А часы-то зачем?
4) Яркие надписи на кнопках это лишнее. Уж лучшее bitbutton'ы с рисунками, тем более, что 2 рисунка стандартные и без проблем беруться из Shell32.dll. А для остальных можно какой-нибудь замок использовать.
Что за шифровальщик используется, свой или сертифицированный?
2 Diego
тысячные уровни вложений
Кода? Я и 10 уровней вложения не помню, тем более существует рекомендация, что объем одной процедуры не должен превышать 50 строк.
А может ты представишь нам, что ты написал. Желательно с исходником, если, конечно, он не секретная информация.
2 Cubbi
Важно не то, какую команду исполнит процессор когда программист напишет goto, if, switch, longjmp, break, throw, или call/cc. Важно то, как это выглядит на стадии дизайна программы.
goto, конечно выглядит плохо, но при выходе из нескольких вложенных циклов, он довольно удобен. ;)
За что же ТЫ ненавидишь Симбу? Про SP вот и <a href="http://www.pridelands.ru/?p=texts&a=get&id=328" target="blank">вот<
Sur Лев Сообщений: 283 Город: Челябинск 26.03.2006 13:29
Beltar писал(а): 1) Ограничение на размеры формы лишнее. Все-таки это текстовый редактор.
Поверь, так лучше.
Beltar писал(а): При сохранении нужно самому убирать расширение, иначе они плодятся.
Что есть,то есть.
Beltar писал(а): А часы-то зачем?
Красивее
Beltar писал(а): Яркие надписи на кнопках это лишнее. Уж лучшее bitbutton'ы с рисунками, тем более, что 2 рисунка стандартные и без проблем беруться из Shell32.dll. А для остальных можно какой-нибудь замок использовать.
Если хочешь, могу специально для тебя сделать все кнопки нормальными.
Beltar писал(а): Что за шифровальщик используется, свой или сертифицированный?
Свой! И не сомневайся. Не забудь скачать версию 1.1
if SaveDialog.Execute then
begin
s:=SaveDialog.FileName;
ext:=ExtractFileExst(S);
s:=copy(s,1,length(s)-length(ext);
{вот тебе и имя файла без расширения, мелочь и кода всего ничего, но такие мелочи пользователя моментально выводят из себя}
end;
За что же ТЫ ненавидишь Симбу? Про SP вот и <a href="http://www.pridelands.ru/?p=texts&a=get&id=328" target="blank">вот<
Sur Лев Сообщений: 283 Город: Челябинск 26.03.2006 14:08
ГГыыы. Есть стандарты для приложений разной направленности. И если все редакторы позволяют разворачивать приложение, а твой нет - то это не верно идеологически.
Diego писал(а): Но ведь "дизайн" можно делать не только на ЯП выс.уровня.
Ты не понял, что тебе хотели сказать. В приложении есть дизайны:
- интерфейса
- исходного кода
- структуры программы/баз данных
И это 3 разных дизайна, которые в больших проектах ведут отдельные люди/группы/отделы.
Diego Злой саблезубый тигр Сообщений: 707 Город: 26.03.2006 17:44
Принял к сведению твои заметки, переделал.Выкладываю версию 1.1
Diego, забыл сказать спасибо.
Да пожалуйста. Тем более, что спасибо говорить ещё рано:
- Delphi, если не ошибаюсь. Тогда есть куча путей сделать нормальную развёртку изображения(если, конечно, SimpleForm). Один из них - Anchors у св-в компонентов. Меняй и смотри, что получиться при разворачивании/сворачивании.
- Кнопка развёртки - позор джунглям :) Почему бы не использовать Form.BorderStyle := ну например bsDialog. Заодно избавишься от курсора изменения размеров окна в правом нижнем углу.
- Да, поставь transparent=true, где пишется version 1.1 , имя перекрывается. Label, если не ошибаюсь.
Beltar Думаю, алгоритм простой. Используется банальный сдвиг на величину, определяемую в пароле какими-то вычислениями.
Набери 123456789, в пароле 0, получится abcdefghi :)
А может ты представишь нам, что ты написал. Желательно с исходником, если, конечно, он не секретная информация.
1.Я про асм. 2.А смысл?
Dimonius Я и сейчас не понимаю. В асме всё делается через код. Ну нельзя заниматься "дизайном"(почему нельзя пользоваться русским аналогом?) интерфейса без "дизайна" кода.
„Life es so short yet sweet.”
Dimonius леффка Сообщений: 10303 Город: Москва 26.03.2006 18:28
Diego писал(а): заниматься "дизайном"(почему нельзя пользоваться русским аналогом?) интерфейса без "дизайна" кода.
Берешь код ассемблера, создаешь 100 разных переменных у разных кусках памяти, всякие ненужные db и прочее. Поом весь код форматируешь в 1 строку... и пытаешься в этом разобраться
Кнопка развёртки - позор джунглям Почему бы не использовать Form.BorderStyle := ну например bsDialog.
bsDialog очень НЕ рекомендуется использовать для Main Form. много багов, из за тонкостей работы с окнами. Кнопка развертки убирается легко в BorderIcons - там просто надо bsMaximise поставить в False - кнопка останется, но станет не активной. Чтобы не было ресайза формы - BorderStyle:=bsSingle
Diego Злой саблезубый тигр Сообщений: 707 Город: 26.03.2006 19:02
А вот и алгоритм:
Строка из Memo разбивается на кучу сегментов длины пароля. Каждый посимвольно смещается(в положительную сторону) на ANSI-код из символа пароля,извеняюсь за тавтологию. Причём [исправлено] у пароля первый символ сдвигается в конец пароля, видимо, для "затруднения" декодирования со стороны пользователя.
Например, нужно получить символ ™, под номером 153. Выбираем символ, например A,65, производим нехитрые вычисления: 153-65=88, что соответствует X в ANSI. Теперь вводим A в Memo, X в пароль и получаем ™. Пароль не сдвигается, т.к. состоит всего из одного символа. :)
Надеюсь, автор программы не обидится за изложение сущности его работы.
2 Dimonius
Берешь код ассемблера, создаешь 100 разных переменных у разных кусках памяти, всякие ненужные db и прочее. Поом весь код форматируешь в 1 строку... и пытаешься в этом разобраться
Ну, во-первых, компилятор этого не допустит. Разве я говорю, что в этом легко будет разобраться? Поясни,пожалуйста,что ты этим хотел сказать.
Кнопка развертки убирается легко в BorderIcons - там просто надо bsMaximise поставить в False - кнопка останется, но станет не активной.
Подкинте пжалуйста идейку что-бы полезного написать на Дельфи в стиле ТЛК.
Сур, троян напиши. :)
Пытался убрать кнопку. Безуспешно.
У Винды странные принципы — или набор "свернуть - развернуть/восстановить - закрыть", или просто "закрыть", или "справка - закрыть". Четвертого не дано. :/
Предполагается, что пользователь не будет кодировать "Войну и мир" и тому подобные тексты.
Честно скажу, зря предполагается...
Жалко только, что если нет повторного использования кода, то от ООП толку немного.
Белтар, да и без него есть... Просто для мелких программ ОПП использовать слишком муторно, тут проиграешь больше, чем выиграешь.
Кода? Я и 10 уровней вложения не помню, тем более существует рекомендация, что объем одной процедуры не должен превышать 50 строк.
Да ну, на мыло такие "рекомендации". Буду я еще разбивать цельный метод по функциям из-за них. :/ А вот насчет уровней вложения — это да, удерживать себя надо. А то я один раз до пятнадцатого дошел... В общем, тот кусок кода я стер и написал заново. :)
Пробовал уж. В завалах в среднем один из пятидесяти заваливается не из-за рук. Действительно больших(тысячные уровни вложений, подключение VCL или необходимой Dll,это вообще отдельная песня) было не больше десятка пока. Но мне этого хватило, завала небыло ни одного, всё писалось последовательно с предобработкой.
Диего, что за уровни вложений? :blink:
И вообще, я тебе про огромные проекты, в которых сотня людей работает, говорю, а ты мне: "У меня не заваливалось".
С goto вообще смехотворная ситуация. Здесь я солидарен с автором учебника Пироговым - нагородили до черта непойми-чего, а от JMPа никуда не ушли, разве что более длинно прыгать стали.:)
Вижу, ты прирожденный астматик... Ну, что поделать. ^^ А вообще-то советую изучить и другие языки, более высокого уровня. Вдруг понравится. ;)
Спорить не буду. Но оч.много программистск.коллективов существует, там именно и только чистый асм, ну и сами коды, разница небольшая. Ещё больше одиночек.
Одиночки — они и в Африке одиночки... они погоды не делают. А эти програм-мистские кол-лективы какого рода софт создают?
PS Я не отрицаю "исторические факты". Просто всё это можно(и нужно бы)сделать по-нормальному, с максимальной оптимизацией.
Пардон за идиотский вопрос, но зачем? /:) Если программа запускается раз в неделю, работает десять минут и отрубается, зачем тратить месяц на оптимизацию, чтобы она все делала за две минуты?
А кто подумает о тех, кто с деасмом лазает по готовому проекту, пытаясь разобраться в с***** тупых кодах, где четыре страницы коего можно заменить двумя коммандами? Компиляторы очень любят подобные манипуляции. Особенно для продуктов мелкомягких.
А зачем разбирать? /:) Куда интереснее строить. ;)
Раз уже речь про сложность зашла... Какая твоя самая сложная и объемная программа?
Просто для мелких программ ОПП использовать слишком муторно, тут проиграешь больше, чем выиграешь.
Согласен, само описание всех этих полей и свойств, добивает, возможно, именно поэтому столько воплей о том какое ООП плохое.
А зачем разбирать?
Как зачем, чтобы украсть или сломать.
Если программа запускается раз в неделю, работает десять минут и отрубается, зачем тратить месяц на оптимизацию, чтобы она все делала за две минуты?
Ну это м\б полезно на этапе тестирования. :)
У Винды странные принципы — или набор "свернуть - развернуть/восстановить - закрыть", или просто "закрыть", или "справка - закрыть". Четвертого не дано.
Это почему не дано? Набор кнопок ведь множеством задается. Какую не нужно, ту и исключаешь.
Да ну, на мыло такие "рекомендации". Буду я еще разбивать цельный метод по функциям из-за них.
Цельный понятие относительное, отдельные операции можно выделить если не всегда, то почти всегда, и в Паскале, кстати, локальные процедуры есть.
троян напиши.
Вирус под названием "The Lion King" существует. Этого мало?
За что же ТЫ ненавидишь Симбу? Про SP вот и <a href="http://www.pridelands.ru/?p=texts&a=get&id=328" target="blank">вот<
Dimonius леффка Сообщений: 10303 Город: Москва 26.03.2006 21:17
Beltar писал(а): Набор кнопок ведь множеством задается. Какую не нужно, ту и исключаешь.
Вопрос в том, что отдельно "закрыть" убрать нельзя - исчехнут все кнопки (свернуть/развернуть/иконка приложения). Отдельно убрать "свернуть" или "развернуть" тоже нельзя - если хотя бы одна из них есть, то рисуются обе (да, вторая будет не активной, но на будет РИСОВАТЬСЯ). Если обе убраны - то остается только закрыть
Beltar Смотрю я на вас и думаю... Сообщений: 3251 Город: 26.03.2006 22:27
Воть.
Каталогизатор веб-страничек, ну и прочих файлов, спасибо Майкрософт.
По сути программа напоминает DelphiWorld и платный органайзер InfoAngel.
Интересно кому он м\б полезен.
Проблемы: Не исключаю Access violation'ов.
За что же ТЫ ненавидишь Симбу? Про SP вот и <a href="http://www.pridelands.ru/?p=texts&a=get&id=328" target="blank">вот<
Sur Лев Сообщений: 283 Город: Челябинск 27.03.2006 00:13
Я вообще стараюсь для www.pridelands.ru а ты мне предлагаешь трояна. Его тоже в стиле ТЛК писать? Вылазит симба и говорит: тебя только что хакнули. гыыы.
[Добавлено 27.03.2006 00:19:57]:
2 Dimonius , хотел спросить, а Майл Агент в стиле ТЛК не противозаконно?
Diego писал(а): А кто подумает о тех, кто с деасмом лазает по готовому проекту, пытаясь разобраться в с***** тупых кодах, где четыре страницы коего можно заменить двумя коммандами?
Кто подумает о хакерах? :)
Если замена этих четырёх страниц кода двумя командами CPU окупится (например за счёт увеличения доли рынка из-за ускорения работы относительно конкурентов), то конечно это сделают. И так и просходит. Другое дело что у микрософта любой продукт купят, как бы он не тормозил, а мелкие конторы часто не в состоянии платить зарплату специалисту-ассемблерщику - выигрыш в продажах его не окупит.
Beltar писал(а): goto, конечно выглядит плохо, но при выходе из нескольких вложенных циклов, он довольно удобен. ;)
Естественно. В языках, в которых break ограничем одним уровнем вложения, и отсутствуют высокоуровневые способы передачи управления.
Цельный понятие относительное, отдельные операции можно выделить если не всегда, то почти всегда, и в Паскале, кстати, локальные процедуры есть.
Белтар, во, кстати. В плюсах мне вложенных процедур сильно не хватает. :( Что говорить о рекурсиях, когда приходится передавать тьму аргументов вместо одного...
Вирус под названием "The Lion King" существует. Этого мало?
Мало. Мне всегда мало. f:>
Я вообще стараюсь для www.pridelands.ru а ты мне предлагаешь трояна.
Сур, можешь модерн-скин для WinAmp’a соорудить. Там и программирование понадобится. ^_~
хотел спросить, а Майл Агент в стиле ТЛК не противозаконно?