Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.08.15;
Скачать: CL | DM;

Вниз

Подробный и понятный комментарий!   Найти похожие ветки 

 
Денис   (2004-07-11 02:41) [0]

Приветствую Вас, пытливые умы интернета!
Все мы хорошо знаем, как сложно порой разбирать исходники столь важные для нас.
   
Даже при наличии комментариев, чаще всего авторы их не уделяют внимания нюансам, или считают их делом само собой разумеющимся.
И не раз приходилось заново всё самим раскомментировать в меру своих знаний.
Однако, это настоящее несчастье для новичков, а ещё более для тех, кому мало просто вставить код, и чтоб он работал!
Настоящий исследователь постоянно задаётся вопросами типа: А почему именно так? А можно ли сделать эдак?
Глядя на константу WS_EX_TOPMOST: А какие ещё бывают? И так далее...
В результате приходится сутками рыться в интернете и справочниках в поисках подробностей.
   
В связи с этим предлагаю в рамках данной темы создать общим усилием Базу Подробных Комментариев, которая нам позволит сохранить многие часы в поисках сути, а при необходимости выяснить детали у автора напрямую.
     
Предлагаю такую схему:
1.Источник исходника - сайт или справочник если прога не своя.
2.Описание программы - что она делает.
3.Собственно листинг, причём с прекрасным, подробным комментарием!

Помоему идея заслуживает внимания.
В качестве начинания даю первый код.
Взято со страницы http://www.delphisyte.ru/Articles/base/api_find_window_and_activate_it.html  и подробно раскомментировано мною лично.

      Как получить дескриптор(хендл) окна другого приложения и сделать его активным?

Использование фуекции Windows API FindWindow() - простейший способ нахождение окна, при условии, что известен его заголовок или имя оконного класса. Если Вам известна только часть заголовка окна (например "Netscape - " + "какой-то неизвестный URL"), Вам нужно использовать функцию EnumWindows() для получения всех окон, затем вызывать функцию GetWindowsText() и GetClassName для поиска нужного окна. Следующий пример находит первое окно, содержащее совпадающую часть заголовка окна и полностью совпадающее название оконного класса (если он задан) и делает это окно активным.
Читать следует с конца, т.к. описания всех функций расположены до их вызова.

type {объявляем свои типы}
  PFindWindowStruct = ^TFindWindowStruct;{указатель на тип TFindWindowStruct}
  TFindWindowStruct = record {тип TFindWindowStruct в себе содержит...}
    Caption : string;
    ClassName : string;
    WindowHandle : THandle;
  end;

function EnumWindowsProc(hWindow : hWnd;
                         lParam  : LongInt) : Bool
{$IFDEF Win32} stdcall; {$ELSE} ; export; {$ENDIF}
var
  lpBuffer : PChar;
  WindowCaptionFound : bool;
  ClassNameFound : bool;

begin
  GetMem(lpBuffer, 255);{выделяем 255 байт динамической памяти под указатель lpBuffer: Pointer}
  Result := True;{для продолжения перечисления окон функцией EnumWindows}
  WindowCaptionFound := False;{обнуляем перед поиском - ещё не найдено}
  ClassNameFound := False;{обнуляем перед поиском - ещё не найдено}

  try
    if GetWindowText(hWindow, lpBuffer, 255) > 0 {если текст заголовка не нулевой...}
   then
      if Pos(PFindWindowStruct(lParam).Caption, StrPas(lpBuffer)) > 0 {и если позиция
переданного заголовка("Netscape - ")в строке lpBuffer не нулевая, т.е. он в ней есть...}
       then WindowCaptionFound := true;{...заголовок найден!}

    if PFindWindowStruct(lParam).ClassName = "" then {если класс окна не указан(не важен)...}
      ClassNameFound := True {...то будем будем считать, что он найден}
     else { иначе(если указан)...}
        if GetClassName(hWindow, lpBuffer, 255) > 0 then {...если класс окна не нулевой...}
          if Pos(PFindWindowStruct(lParam).ClassName, StrPas(lpBuffer))> 0 {и если позиция
переданной строки класса в строке lpBuffer не нулевая, т.е. она в ней есть...}
then ClassNameFound := True;{...требуемый класс найден!}

    if (WindowCaptionFound and ClassNameFound) then begin {если и заголовок и  класс найдены...}
      PFindWindowStruct(lParam).WindowHandle := hWindow;{хендл окна - искомый результат,
                                                передаём в поле WindowHandle}
      Result := False; {для завершения перечисления окон функцией EnumWindows}
    end;

  finally
    FreeMem(lpBuffer, sizeof(lpBuffer^));{освобождаем область памяти размером указанным lpBuffer^ ,
                   выделенную ранее процедурой GetMem}
  end;
end;

function FindAWindow(Caption : string;
         ClassName : string) : THandle;{функция поиска должна вернуть хендл}
var
  WindowInfo : TFindWindowStruct;{присваиваем тип}

begin
  with WindowInfo do
begin {заполняем поля этого типа преданными FindAWindow параметрами}
    Caption := Caption; {"Netscape - "}
    ClassName := ClassName; {""}
    WindowHandle := 0; {обнуляем перед поиском}
    EnumWindows(@EnumWindowsProc, LongInt(@WindowInfo));{перечисляем все pодительские окна на экpане,
          передавая по очереди хендл каждого окна(hWindow)в функцию обратного вызова EnumWindowsProc
          пока не получим от неё Result := False }
    FindAWindow := WindowHandle; {хендл окна - искомый результат,
передан в поле WindowHandle функцией EnumWindowsProc}
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var
  TheWindowHandle : THandle;{хендл искомого окна - будет найден функцией FindAWindow}
begin
  TheWindowHandle := FindAWindow("Netscape - ", "");{FindAWindow функция поиска и её параметры}
  if TheWindowHandle = 0 then  {если не найдено...}
    ShowMessage("Окно не найдено!") {выводим сообщение}
    else  {иначе...}
    BringWindowToTop(TheWindowHandle);{...наверх и активизировать!}
end;

       Завалим толпою этого зверюгу - Delphi!


 
KilkennyCat ©   (2004-07-11 03:03) [1]

я че-то непонял... предлагается сделать Великую Универсальную Базу Комментариев На Все Случаи Жизни ?

глупости...

Я не буду писать комментарий здесь:
ShowMessage("Окно не найдено!") {выводим сообщение}
так как это глупо, как и во многих других местах примера.

И вообще, я в комментариях не разжевываю действия подобные:
 else { иначе(если указан)...}
так как мне это будет ясно и через сто лет. Я в комментариях пишу саму идею алгоритма, которая может и вылететь из памяти.


 
KilkennyCat ©   (2004-07-11 03:07) [2]

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

Новичкам же это в сто крат полезней. А подробная каша их ничему не научит.


 
Defunct ©   (2004-07-11 04:45) [3]

> Настоящий исследователь постоянно задаётся вопросами типа: А почему именно так? А можно ли сделать эдак?

Настоящий программист при виде чужой программы задается двумя вопросами:
- Почему так?
- Как можно сделать иначе?
(C) проф. О.В.Бузовский


 
Алекс А   (2004-07-11 05:52) [4]


> Денис   (11.07.04 02:41)  

> type {объявляем свои типы}

Слово type переводится как тип.


> ShowMessage("Окно не найдено!") {выводим сообщение}

Show Message можно перевести как выводим сообщение.

Вы не знаете этих английских слов и хотите перевести их на русский язык ? Если бы вы знали, то заметили бы, что названия функций сами по себе являются комментариями.

Ещё могу посоветовать статью http://delphi.vitpc.com/article/coderules.htm
Раздел Именование Методов.


 
TUser ©   (2004-07-11 08:35) [5]

Вот просто цитата:

Не надо делать слишком подробных комментариев, например

// Увеличиваем значение i
inc (i)


Кается, из ТП.


 
SergP ©   (2004-07-11 10:18) [6]

Прочитал и первый раз даже не понял что хочет автор сабжа. Бред какой-то. Пришлось еще раз перечитать...
Вобщем согласен со всеми отвечающими.

> 3.Собственно листинг, причём с прекрасным, подробным комментарием!


Это называется коментариями только потому что это текст заключенный в скобки {} . А на самом деле это не коментарии, это просто описание каждой строчки программы, и никому оно не нужно.

>   TFindWindowStruct = record {тип TFindWindowStruct в себе
> содержит...}


Думаю что такой коментарий только уменьшает читабельность кода.

И вообще в коментариях должно быть указано что делается в каком-то участке программы, в процедуре/функции, или делать так:

>  [1] KilkennyCat ©   (11.07.04 03:03)
> Я в комментариях пишу саму идею алгоритма, которая может
> и вылететь из памяти.


А описание работы каждого оператора не только не представляет никакой пользы читающему код, но и наоборот, усложняет его чтение.


 
Anatoly Podgoretsky ©   (2004-07-11 10:22) [7]

Осталось сделать последний шаг

I := 5; {присваиваем значение 5 переменной I}


 
Mim1 ©   (2004-07-11 11:33) [8]

Я какгда отдаю курсовую работу выпролненную для студентки, да еще блондинки всегда так коментирую, но думаю что и с комнетариями они не поймут.
Для себя же так коментировать - считаю садомазохизмом, зачем коментировать очевидные веши, зачастую в vcl программе вполне реально разобраться без еоментарриев. Если у вас назначена кнопка на удаление чего либо - то представте себе скорее всего обработчик события этой кнопки скорее всего это и делает :)
Есть конечно необьектные программы с жутко замороченной логикой с кучей вызовов процедур други из друга (в запущеном случае без процедур а с goto) в них разобраться сложнее, и не думаю что коментарий напротив showmessage мне поможет, зато
> И вообще в коментариях должно быть указано что делается
> в каком-то участке программы, в процедуре/функции

будет вполне уместно.


 
TUser ©   (2004-07-11 12:02) [9]

Такие комментарии очень напоминают Автосхему. Там тоже каждая строчка кода описывается.


 
GrayFace ©   (2004-07-11 14:17) [10]

Как же вы не заметили такой коментарий:
var
 WindowInfo : TFindWindowStruct;{присваиваем тип}

Или вот:
BringWindowToTop(TheWindowHandle);{...наверх и активизировать!}
Лично я, прочитав первый абзац, закрыл окно, хотя потом все-таки открыл опять.


 
KilkennyCat ©   (2004-07-11 14:57) [11]

Вообщем, если это делать - зверь-делфи точно сдохнет...


 
Igorek ©   (2004-07-11 19:32) [12]


> Приветствую Вас, пытливые умы интернета!

привет и тебе :-)))

> Однако, это настоящее несчастье для новичков

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

> Настоящий исследователь постоянно задаётся вопросами типа:
> А почему именно так? А можно ли сделать эдак?

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

> Defunct ©   (11.07.04 04:45) [3]
> Настоящий программист при виде чужой программы задается
> двумя вопросами:
> - Почему так?
> - Как можно сделать иначе?

Имхо не имеет ничего общего с настоящим программистом. Настоящий программист должен по-настоящему (безглючно/полностью/до полного понимания/ основательно):
- написать программу
- разобраться в чужом коде
- вникнуть в проблему
- разобраться с доками
Так что речь все же о настоящем исследователе. Как показывает опыт далеко не каждый программист, даже настоящий, таковым является.


 
Огромное Кулясищще ©   (2004-07-11 20:26) [13]

I := 5 {присваиваем значение 5 переменной I}; {не забываем закончить строку точкой с запятой} // напомню, что комментарий в Delphi может заключаться в фигруные скобки либо с круглые скобки со звёздочкой, например {ля-ля}, (*ля-ля*), либо располгаться на отдельной строки или полсе строки, обозначенный двумя слешами: //

{Delphi является зарегистрированной торговой маркой компании Borland (http://www.borland.com)}


 
Nous Mellon ©   (2004-07-11 20:31) [14]


>
>  [13] Огромное Кулясищще ©   (11.07.04 20:26)

:)
Кое-что забыл:
{ I - объявленная переменная } { Может быть различных типов } { Подробнее о типах в справке } { Справка вызывается по F1 } { Ну или из меню } { Это все еще комментарий } { Ну так, чтоб не забыть } { Напомню вы все еще в Делфи } { Напомнить чтро такое Делфи? } { Главное оставаться человеком.. }
{ И вообще если пофилосовствовать... }


 
Anatoly Podgoretsky ©   (2004-07-11 21:03) [15]

Огромное Кулясищще ©   (11.07.04 20:26) [13]
Ты почто точку с запятой перенес в конец, нарушение авторских прав, нехорошо.


 
KilkennyCat ©   (2004-07-11 21:57) [16]


> Nous Mellon ©   (11.07.04 20:31) [14]


Предупреждать надо, что смешно... чуть чаем не захлебнулся...:)

Надо еще заставить зарубежных коллег, чтоб свои комментарии они тоже на русском писали... а то какой смысл, если они напишут подробно, но опять на английском? И в конце концов, какого хрена мы терпим такое отношение Борланда к русскоязычным программерам? Где полностью руфисированная (включая язык) Делфи ?!


 
Lenor   (2004-07-11 22:13) [17]

>Где полностью руфисированная (включая язык) Делфи ?!

Как только ее выпустят, народ в массе перейдет на Си :)


 
KilkennyCat ©   (2004-07-11 22:14) [18]


> Igorek ©   (11.07.04 19:32) [12]
>
> Да, такой подробно комментированный код прекрасен именно
> в качестве самоучитеся (напр. по WinApi). Во-первых потому
> что новичек может не знать английского или знать, но названия
> функций не будут для него нести достаточной смысловой нагрузки.


Отсутствие достаточной смысловой нагрузки, по-моему равносильно "ни хрена не понимаю, шо за функция? Шо она делает, и почему она вообще?"

> Во-вторых как работает конкретная функция можно будет догадатсья
> по контексту, по логике кода.


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

> Только не надо забывать, что со временем надо учиться разбирать
> код и без комментариев.


Учиться лучше сразу.

> Так что с каждым следующим уроком
> колл. комментариев следует уменьшать, предварительно проверив
> знания новичка на том же коде (или еще лучше - на похожем),
> но без комментариев.
>


Я тут программку написал, можете скачать:
----------------------- для начинающих "блондинок" ----
Bloknot.pas (10 MB)
Bloknot.dpr
и т.д.
----------------------- для начинающих -----
Bloknot.zip (1 MB)
----------------------- для немного продвинутых ------
Bloknot.zip (450 KB)
----------------------- для средних -----------
Bloknot.zip (50 KB)
----------------------- для нормальных --------
а оно вам надо? (0 В)


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


Тут смайлик забыт. Явно забыт смайлик...

> > Defunct ©   (11.07.04 04:45) [3]
> > Настоящий программист при виде чужой программы задается
>
> > двумя вопросами:
> > - Почему так?
> > - Как можно сделать иначе?
>
> Имхо не имеет ничего общего с настоящим программистом. Настоящий
> программист должен по-настоящему (безглючно/полностью/до
> полного понимания/ основательно):
> - написать программу
> - разобраться в чужом коде
> - вникнуть в проблему
> - разобраться с доками
> Так что речь все же о настоящем исследователе. Как показывает
> опыт далеко не каждый программист, даже настоящий, таковым
> является.


Я надеюсь, Ваши исследования Windows уже завершены?

И небывает настоящих программистов! Есть просто программисты, а есть все остальные. Нельзя чуть-чуть опоздать на поезд.


 
Danilka ©   (2004-07-11 22:17) [19]

Lenor   (11.07.04 22:13) [17]
KilkennyCat ©   (11.07.04 22:14) [18]

Не спится? :))


> Где полностью руфисированная (включая язык) Делфи ?!

Хватит пирацкого извращения с переводом интерфейса, после которого какое-то время проскакивали такие веселые вопросы на форуме..


 
Nous Mellon ©   (2004-07-11 22:22) [20]


> Предупреждать надо, что смешно... чуть чаем не захлебнулся...:)

Вот уж не хотел греха на душу взять :)
> Где полностью руфисированная (включая язык) Делфи ?!

Боже упаси! :)
Видел я 1Совский язык вот уж тут действительно чаем захлебнешься..


 
Nous Mellon ©   (2004-07-11 22:23) [21]


> Не спится? :))

А что "Спокойной Ночи малыши" уже прошли?
:)


 
Danilka ©   (2004-07-11 22:31) [22]

Nous Mellon ©   (11.07.04 22:23) [21]
> А что "Спокойной Ночи малыши" уже прошли?

Незнаю, у меня телевизор пол-года уже не работает. :))


> Видел я 1Совский язык вот уж тут действительно чаем захлебнешься..

Хех, ты его только видел, а я сейчас прямо на нем пыряю. :))


 
KilkennyCat ©   (2004-07-11 22:35) [23]

А у меня нет телевизора :))


 
Nous Mellon ©   (2004-07-11 22:50) [24]


> Незнаю, у меня телевизор пол-года уже не работает. :))

Как же ты узнаешь когда спать пора? :)
> Хех, ты его только видел, а я сейчас прямо на нем пыряю.
> :))

Бедняга, прими мои соболезнования :)


 
Danilka ©   (2004-07-12 00:26) [25]

Nous Mellon ©   (11.07.04 22:50) [24]
> Как же ты узнаешь когда спать пора? :)

Дык, если заснул - значит уже пора. :))

> Бедняга, прими мои соболезнования :)

Ничего, я уже привык, к тому-же скоро отпуск.. :))


 
Денис   (2004-07-12 01:48) [26]

Не думал я, что на форуме Мастера DELPHI встречу такое количество БОЛТУНОВ ! ! ! ! !
Нет чтобы поддержать интересное начинание, развели бодягу умники!
Кто ещё предложит прокоментировать знак равно "=" ?


 
GrayFace ©   (2004-07-12 04:24) [27]

>И небывает настоящих программистов! Есть просто программисты, а есть все остальные. Нельзя чуть-чуть опоздать на поезд.
Если на работе ты числишся, как программист - значит ты проргаммист, а настоящий программист - это стиль жизни.
>Не думал я, что на форуме Мастера DELPHI встречу такое количество БОЛТУНОВ ! ! ! ! !
Перечитай свое сообщение до слов Настоящий исследователь..., и ты поймешь, кто из нас - Настоящий болтун!
>Кто ещё предложит прокоментировать знак равно "=" ?
Никто. Ты же уже предложил. Я предлагаю прокоментировать знак ковычки и знак "?".


 
TUser ©   (2004-07-12 06:56) [28]


> Где полностью руфисированная (включая язык) Делфи ?!

Я вмдел такой язык. В старой переводной книге по информатике, выпущенной во времена махрового социализма, там все перевели, даже язык. Примерно так
повторить
  начать

  кончить
до_тех_пор_пока_не


 
Aldor_   (2004-07-12 07:19) [29]

> Денис  
> Не думал я, что на форуме Мастера DELPHI встречу такое количество БОЛТУНОВ ! ! ! ! ! Нет чтобы поддержать интересное начинание, развели бодягу умники!

 Вам же еще на Королевстве ответили. Причем ТАКЖЕ! Так может следует не обижаться, а задуматься, почему на РАЗНЫХ сайтах ответили почти ОДНО И ТО ЖЕ?!  (С) стиль by ЮЗ


 
vecna ©   (2004-07-12 10:50) [30]

за такие коментарии (см первый пост) у меня на работе бы тебе все что можно бы поотрывали! =)
зачем писать одно и тоже на Delphi и по-русски ?
зачем тогда хелп ?
у 95% читателей кода есть понятие о 95% написанного кода безо всяких коментариев.
коментировать надо логику работы, а не описывать функции.


 
Григорьев Антон ©   (2004-07-12 11:06) [31]


> Денис   (12.07.04 01:48) [26]
> Не думал я, что на форуме Мастера DELPHI встречу такое количество
> БОЛТУНОВ ! ! ! ! !


Ба! Знакомые всё лица! Когда я прочитал этот пост, эти оскорбления на пустом месте, сразу подумал, что это тот же самый Денис, с которым я вот здесь пободался: http://www.delphikingdom.com/asp/answer.asp?IDAnswer=23431 Проверил - точно, тот же самый. Рекомендую никому в дискуссии с ним не вступать, потому что любой ответ, кроме "Денис, да ты гений! Такое придумал!" его не удовлетворит.


 
Nous Mellon ©   (2004-07-12 11:14) [32]


>  [26] Денис   (12.07.04 01:48)

LOL


 
KSergey ©   (2004-07-12 16:28) [33]

> Денис   (11.07.04 02:41)
> Даже при наличии комментариев, чаще всего авторы их не уделяют
> внимания нюансам, или считают их делом само собой разумеющимся.
> Настоящий исследователь постоянно задаётся вопросами типа:
> А почему именно так? А можно ли сделать эдак?

Вот вроде не плохие слва
Но все, что под ними - никак им не соответствует!!
Где нюансы? Где ответ на вопрос "а почему так"??!

Я уже не говорю, что комментарии часто не соответствуют истине!

Когда-то в книжке по ассемблеру вычитал умную вещь:

Пример бессмысленного коментария:

mov a, 5  ; записать в а 5

Как надо:

mov a, 5  ; установить начальное значение счетчика


Почему он бессмысленный понятно, надеюсь? Да потому, что то, что делает команда - это написано в книжке по языку, который человек, читающий программу, должен знать по определению. А вот зачем тут это впихнуто - вот это да, такой комментарий есть смысл писать.
Но только когда это не понятно!

Есть такой сайт firststep.ru. Там примерно так же прокомментированные программы, но там и цель - обучение! Да и смысл больше расписывают, а не поясняют что значит а = с. Почитайте, там сделано грамотно. Может поймете.
Может, если есть время - чем-то и поможете.


 
han_malign ©   (2004-07-12 17:36) [34]

>Я вмдел такой язык.
- Школьный Алгоритмический Язык - практически прямой перевод паскаля.

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


 
Igorek ©   (2004-07-12 18:06) [35]


> Рекомендую никому в дискуссии с ним не вступать, потому
> что любой ответ, кроме "Денис, да ты гений! Такое придумал!"
> его не удовлетворит.

Спасибо за рекоммендации.
Я рекоммендую критически относиться ко всякого рода "рекоммендациям", включая и это. :-)))


> Aldor_   (12.07.04 07:19) [29]
> Так может следует не обижаться, а задуматься, почему на
> РАЗНЫХ сайтах ответили почти ОДНО И ТО ЖЕ?!

Резонно. Вот вы задумались? Если да, то каков ваш ответ на вопрос "Почему"? Или тому кто говорит "ЗАДУМАЙТЕСЬ!!!" нельзя ответить также? Да, и кстати, почему вопрошающий должен задумываться над вопросом Почему на двух сайтах "развели бодягу умники"? Рекоммендую не задумываться. Также см. выше про рекоммендации.

---
И вообще:
- RTFM
- RTFC
- Google/Yandex все знает
- читать доки до просветления
- я через это уже прошел - вы тоже пройдете (может быть)
- подрастете - поймете, а не понимаете - молчите в тряпочку
- понимаете, но не уверены - тоже молчите
- понимаете, уверены - тоже молчите - вдруг вы не правы
- вот напишите свою ОС на уровне Windows - тогда и поговорим
- мне не надо писать свою ОС - я могу и так с вами говорить
...
Да, и почему собственно, вы так зациклились на собственной личности?

--------


> потому что любой ответ, кроме "Денис, да ты гений! Такое
> придумал!" его не удовлетворит

Серьезно? Вы уверены? Если нет - см. выше.

2 Денис
Ты удовлетворен ответом: "Денис - ты не гений, но Такое придумал!" ?
А таким ответом ты удовлетворен (чесно): "Денис, да ты гений! Такое придумал!"?

Как по мне то ответы "Ты гений и придумал такое гениальное" и "Ты тупица и придумал такое г." в контексте вопроса одинаковые.


 
Igorek ©   (2004-07-12 18:33) [36]

2 KilkennyCat ©   (11.07.04 22:14) [18]

> Отсутствие достаточной смысловой нагрузки, по-моему равносильно
> "ни хрена не понимаю, шо за функция? Шо она делает, и почему
> она вообще?"
А по-моему это равносильно отсутствию смысловой нагрузки вообще.

> > Во-вторых как работает конкретная функция можно будет
> догадатсья
> > по контексту, по логике кода.
> Ага. Особенно учитывая, ежели эта функция вызвалась, скажем
> так из длл, или апишная, и особенно учитывая недостаточную
> смысловую нагрузку.
Согласен.

> Учиться лучше сразу.
Всему?

> Я тут программку написал, можете скачать:
> ----------------------- для начинающих "блондинок" ----
> Bloknot.pas (10 MB)
> Bloknot.dpr
> и т.д.
> ----------------------- для начинающих -----
> Bloknot.zip (1 MB)
> ----------------------- для немного продвинутых ------
> Bloknot.zip (450 KB)
> ----------------------- для средних -----------
> Bloknot.zip (50 KB)
> ----------------------- для нормальных --------
> а оно вам надо? (0 В)
Это на каком языке программирования?

> Тут смайлик забыт. Явно забыт смайлик...
Он не забыт. Он не поставлен специально. Кому надо, тот дорисует в голове и смайлик и рога, копыта, павлиний хвост... - все что считает нужным для себя.

> Я надеюсь, Ваши исследования Windows уже завершены?
Нет, поскольку они и не начинались.

> И небывает настоящих программистов! Есть просто программисты,
> а есть все остальные. Нельзя чуть-чуть опоздать на поезд.
Ага. ("Есть деньги настоящые и есть ненастоящие" = False) = True.


 
Денис   (2004-07-13 03:37) [37]

Ну чтож, спасибо всем!
Рад, что вызвал такую оживлённую дискуссию, аж на нескольких сайтах(http://delphi.vitpc.com/asp/answer.asp?IDAnswer=23692).
Промывание мозгов весьма полезная штука - попробуйте сами не пожалеете!
Жаль отлько бедных новичков, многие из которых, возможно талантливей и трудолюбивее всех нас вместе взятых, которые так и не дождуться Базы Подробных Комментариев.
А что касается комментирования каждой функции, да именно на этом я продолжаю настаивать!
Каждую и подробным образом.
Сколько функций в WinApi?
Кто мне заявит, что знает их все?
Кто знает их сотню?
Вы знаете сотню?
А кто знаети их тысячу?
Ну а кто ещё больше?
И самое главное, кто мне объяснит - ЗАЧЕМ ДЕРЖАТЬ В ГОЛОВЕ ВЕСЬ ЭТОТ ХЛАМ?
Мозги наши несчастные, использовать как лавку старьёвщика...
Куда интереснее наити им более достойное(а не отстойное) применение.
Нужное в любом случае отфильтруется и запомниться.
   
А исходники - это учебный материал, кому то если он не нужен - прекрасно.
Я же говорю о тех кому он нужен(в том числе и мне), и должен быть предельно понятен.
P.S. Надеюсь на этой странице я ни кого не обидел?(http://www.delphikingdom.com/asp/answer.asp?IDAnswer=23431)


 
Денис   (2004-07-13 03:38) [38]

Удалено модератором


 
Денис   (2004-07-13 03:40) [39]

Ой, простите, это вышло случайно...
Это вовсе не повтор для даунов типа БАДЕН-БАДЕН, честно - честно.


 
KilkennyCat ©   (2004-07-13 03:44) [40]

Денис, да ты гений! Такое придумал!


 
Денис   (2004-07-13 03:50) [41]

мы что в прямом эфире?


 
KilkennyCat ©   (2004-07-13 03:55) [42]

Не знаю, у меня нет телевизора.


 
Денис   (2004-07-13 04:23) [43]

то касается русского DELPHI , твоя идея кажется, - вот создатель Паскаль - молодец!Взял и создал програмный язык на родном языке, на радость и удобство всем англоязычным.
А вам, видите ли, сама мысль об этом смешной кажется.
Конформизм, да и только.


 
KSergey ©   (2004-07-13 08:14) [44]

> [37] Денис   (13.07.04 03:37)

Я же указал адрес! Если есть возможность и желание - подмоги, хороший же сайт. Как раз для новичков. Зачем создавать опять все с нуля? Вполне можно влиться в готовый проект, углУбить и расширить. ;)


 
Sandman25 ©   (2004-07-13 10:45) [45]

[37] Денис   (13.07.04 03:37)

Противоречий не видите?

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

Тогда они просто обязаны выучить английский и изучить нужные им функции.

ЗАЧЕМ ДЕРЖАТЬ В ГОЛОВЕ ВЕСЬ ЭТОТ ХЛАМ?


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

Талантливый ученый (и программист в том числе) отличается не тем, что все помнит или хотя бы все читал, а тем, что знает и понимает общие принципы своей науки, а при необходимости умеет быстро и правильно пользоваться справочной информацией, загруженной в кратковременную память :)

Поэтому незачем писать комментарии к каждой функции API. Кому понадобится работать с конкретной функцией, тот о ней почитает и разберется. А пока что Вы предлагаете переводить MSDN...


 
GrayFace ©   (2004-07-13 10:58) [46]

Кто знает их сотню?
Достаточно знать их 50-70 для того чтобы понимать 95% исходников. Половину этой цифры можно узнать, набрав в справке по Delphi "EnumWindows" и нажав "Group".(это то, что тебе сецчас надо делать) При этом параметры этих функций знать не обязательно - F1 - лучший друг программиста. Если вы знаете какое-то стихотворение наизусть, то подсчитайте кол-во слов в нем и сравните скажите, их болше 50? (а судя по вашим "Приветствую Вас, пытливые умы интернета!" вы знаете и не одно) Не пойми меня привратно: я не имел в виду, что такие реплики достойны стихотворения. Я хотел сказать, что это реплики человека, помешанного на литературе.

>Жаль отлько бедных новичков, многие из которых, возможно талантливей и трудолюбивее всех нас вместе взятых, которые так и не дождуться Базы Подробных Комментариев.

Единственное, что тебе надо жалеть - это свои глаза, которые наверняка болят после бессонной ночи. (13.07.04 04:23)


 
Паниковский ©   (2004-07-13 11:11) [47]

Денис  
"Веревка достаточной длины чтобы выстрелить себе в ногу" Голуб
вот эту книжку почитай
посмотри 1С Бухгалтерию как раз язык программирование на русском языке
может тебе стоит писать под бухгалтерию


 
Паниковский ©   (2004-07-13 11:12) [48]

http://infocity.kiev.ua/m.php?f=0&id=117
кстати ссылка на веревку


 
NAlexey ©   (2004-07-13 11:20) [49]

>GrayFace ©   (13.07.04 10:58) [46]
>Я хотел сказать, что это реплики человека, помешанного на литературе.
Ой ли? Высокопарный слог еще ниочем не говорит. Со мной в газельке ехал толи толкиенист толи еще кто нибудь пацифист. Ну может знаешь, у которых цветастой ленточкой длинные волосы на лбу перетянуты. Ну так вот когда ему надо было выйти, он обратился к водителю так:
"Любезный, не могли бы вы остановить свою повозку?". Он не выглядел человеком помешанным на литературе, и реплика его была неуместна, что было видно по лицам пассажиров сидящих в этой самой повозке.


 
KSergey ©   (2004-07-13 12:14) [50]

> NAlexey ©   (13.07.04 11:20)
> "Любезный, не могли бы вы остановить свою повозку?".

А назвать колымагой он ее не пробовал? А то бы точно в лоб плучил ;)


 
Гаврила ©   (2004-07-13 14:35) [51]


> Сколько функций в WinApi?
> Кто мне заявит, что знает их все?
> Кто знает их сотню?
> Вы знаете сотню?
> А кто знаети их тысячу?
> Ну а кто ещё больше?
> И самое главное, кто мне объяснит - ЗАЧЕМ ДЕРЖАТЬ В ГОЛОВЕ
> ВЕСЬ ЭТОТ ХЛАМ?


Хлам - это когда в коде такие комментарии
begin {начало}
I:=0;{Инициалдизация локальной переменной в 0. В дальнейшем эта переменная будет использована для организации цикла}
end;{конец}

а по API в голове держать ничего не нужно, все написано в справке


 
Amoeba ©   (2004-07-13 15:03) [52]


> Денис   (13.07.04 04:23) [43]

Родный язык содателя Pascal"я отнюдь не английский, а немецкий.


 
Юрий Зотов ©   (2004-07-13 15:31) [53]

Денис, а знаете - та самая база подробнейших комментариев по ВСЕМ функциям WinAPI уже давным-давно существует. Причем даже и с примерами. И с механизмами удобного поиска, просмотра, перехода по гиперссылкам и обратно. И даже регулярные обновления выпускаются.

Называется эта база - MSDN. Правда, примеры там на С. А сама база - на английском. Так что придется учить, хотя бы основы.

Понимаете, какая штука... вообще-то, если человек действительно хочет стать программистом, ему так или иначе что-то придется учить. Притом самому.


 
Денис   (2004-07-13 18:22) [54]

Нашёл наконец время - отвечаю всем.
Сейчас вы будете иметь удовольствие наблюдать, как ваши доводы рассыпаются в пух и прах.
Поехали:

я че-то непонял... предлагается сделать Великую Универсальную Базу Комментариев На Все Случаи Жизни ?
глупости...

Деиствительно глупости...Мне бы и в голову такое не пришло!
----------------
А подробная каша их ничему не научит.

"подробная каша" не оставит прорех  в понимании кода.
-----------------
type {объявляем свои типы}

Слово type переводится как тип.
...Show Message можно перевести как выводим сообщение.
 

Спасибо за информацию, только во фразе "объявляем свои типы" ключевым словом является не "тип", и даже не
"объявляем ", а то, что именно СВОИ типы, придуманные НАМИ , а не специалистами БОРЛАНД. Понятно?
Рад , что Вы знаете про ShowMessage, а кто то может и не знать. Думаю, что и Вы не родились с этим знанием.

-----------------
Это называется коментариями только потому что это текст заключенный в скобки {} . А на самом деле это не коментарии, это просто описание каждой строчки программы, и никому оно не нужно.

Золотые слова! Обязательно учту.
Только свой коментарий я писал не для Вас - человека знающего, а для тех кто впервые видит например TFindWindowStruct = record  - тип запись.
А "идея алгоритма" ни за что не станет понятной тем кто не знает смысла деталей.

------------------------
И вообще в коментариях должно быть указано что делается
> в каком-то участке программы, в процедуре/функции

Здрасте! Именно это у меня и указано.
---------------
Как же вы не заметили такой коментарий:
var
WindowInfo : TFindWindowStruct;{присваиваем тип}
 

Именно присваиваем тип - нами же выдуманный! См. выше.
------------------------------------
Вообщем, если это делать - зверь-делфи точно сдохнет...

Прекрасно! На очереди С++.
-------------------------------
Во-вторых как работает конкретная функция можно будет догадатсья по контексту...

if Pos(PFindWindowStruct(lParam).Caption, StrPas(lpBuffer)) > 0
      then...

Ну-ка догадатесь-ка "по контексту" что такое Pos.

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

По поводу всех экзерсисов насчёт русификации DELPHI, могу только повторить, что
теоретически идея програмного языка на русском не более смешна, чем на любом другом.
Просто уже это не имеет смысла делать - ежу понятно.

-------------------------
1)за такие коментарии (см первый пост) у меня на работе бы тебе все что можно бы поотрывали! =)
2)коментировать надо логику работы, а не описывать функции.

1)Боже мой, Вы из гестапо!!!
2)Логика работы - это поверхностный обзор если не понимать каждый пункт.

----------------------------
Ба! Знакомые всё лица!...тот же самый Денис, с которым я вот здесь пободался...
 
Я тоже рад этой неожиданной встрече.
Надеюсь у нас ещё будет возможность "пободаться"!

---------------------
Nous Mellon ©   (12.07.04 11:14) [32]
  LOL

?????
--------------------
Когда-то в книжке по ассемблеру вычитал умную вещь:

Пример бессмысленного коментария:
mov a, 5  ; записать в а 5
Как надо:
mov a, 5  ; установить начальное значение счетчика

Слишком урезанная цитата : то что это именно "начальное значение счетчика" нам здесь не известно.
--------------------------------
Я же указал адрес! Если есть возможность и желание - подмоги, хороший же сайт.

Да был я там!
Всё ещё впереди - не ровен час ещё что нибудь выдумаю.

------------------------------------
Тогда они просто обязаны выучить английский и изучить нужные им функции.

Гм...Это что новый указ такой вышел?

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

 
Ну слов нет!
А "общие принципы своей науки" он как узнает, родится с ними что ли? Именно общие принципы эффективно постигаются на примерах, а не при чтении MSDN и прочих справочников!


Поэтому незачем писать комментарии к каждой функции API. Кому понадобится работать с конкретной функцией, тот о ней почитает и разберется. А пока что Вы предлагаете переводить MSDN...

"...почитает и разберется"! Вот именно, а пример вроде моего избавит его от лишнего чтения и разбирательств, которые в виду сложности формулировок да ещё на английском не всегда проходят успешно.
--------------------
...Достаточно знать их(функций) 50-70 для того чтобы понимать 95% исходников.

Ой ли? Применительно к стихам: если Вы знаете 50-70 слов скажем на французском, то врядли вы поймёте хотя бы 10% французской литературы.
C"est justеment?
Mersi pour vous soin des mes yeux, je travaile par la nuit souvent.
(Спасибо за заботу о моих глазах, я часто работаю по ночам.)

--------------------------------
...а по API в голове держать ничего не нужно, все написано в справке

Вот ведь любители по справкам шариться! А ведь куда приятнее разбирать исходничек, а за ним второй, третий, и ни каких справок...
Справки хороши в поисках собственного алгоритма.

-------------------
Родный язык содателя Pascal"я отнюдь не английский, а немецкий.

Вот ведь в лужу сел!
Что же это получается - этот немец(или кто там австриец?) тоже родного языка стеснялся?
Конфуз однако...

----------------------
Денис, а знаете - та самая база подробнейших комментариев по ВСЕМ функциям WinAPI уже давным-давно существует.....и т.д. и т.п...

...Называется эта база - MSDN. Правда, примеры там на С. А сама база - на английском. Так что придется ...

Ну вот вернулись всё к тому же: MSDN , английский да ещё и С (что особенно приятно для новичков).
Да я сам эти С - примеры просматриваю, и ни чего удобного в этом не нахожу.

И вообще, товарищи, разве разобравшись в каком нибудь интересном примере, не доставляет удовольствия поделиться своим маленьким открытием со всем человечеством, от мала до велика!
И так что бы понял каждый, даже самый тупой, вроде меня.
А иначе какой смысл в проделанной умственной работе?
И какой смысл публиковать пример, объясняя его так, что он понятен лишь тем, кто в пояснениях, а может и в самом этом примере уже не нуждается?
Вам не жалко потерянного на пример времени? Вы многое поняли при этом?
Да всё это уже до вас давно кто то понял! И если бы не поленился детально объяснить - сохранил бы вам и время и выкуренные сигареты.
Вам не нравится моя манера пояснений - предложите свою!
Только не надо ссылаться на всякие MSDN , SDK, ЁКЛМН и ОПРСТ.


Вот типичная инфа из справочника по WINAPI:

function GetWindowLong(Wnd: HWnd; Index: Integer): Longint;

    Считывает инфоpмацию об окне или о значениях дополнительного байта окна.

    Паpаметpы:
    Wnd: Идентификатоp окна.
    Index: Смещение в байтах .

 Возвpащаемое значение: Инфоpмация, хаpактеpная для окна.

Это же ужас какой то!
Что считывает? Что возвращает? Какую то цифирку Longint?
Вы знаете? Если да, то думаю, что не из этой справки!
И это ещё на русском.

Какие ещё будут мнения?


 
Гаврила ©   (2004-07-13 18:29) [55]

В нормальной английской справке по API описание GetWindowLong исчерпыввающие. То что вы нашли - это не справка а фуфло


> Вот ведь любители по справкам шариться! А ведь куда приятнее
> разбирать исходничек


Посмотрел бы я на вас, если бы Борланд не включил в комплект поставки Delphi справку, а предложыл бы копаться по кодам, закомментированным подобным образом... вы бы взвыли моментально


 
Mystic ©   (2004-07-13 18:33) [56]

Пять секунд поиска и получаем:

GetWindowLong
The GetWindowLong function retrieves information about the specified window. The function also retrieves the 32-bit (long) value at the specified offset into the extra window memory.

If you are retrieving a pointer or a handle, this function has been superseded by the GetWindowLongPtr function. (Pointers and handles are 32 bits on 32-bit Windows and 64 bits on 64-bit Windows.) To write code that is compatible with both 32-bit and 64-bit versions of Windows, use GetWindowLongPtr.

LONG GetWindowLong(
 HWND hWnd,  // handle to window
 int nIndex  // offset of value to retrieve
);
Parameters
hWnd
[in] Handle to the window and, indirectly, the class to which the window belongs.
nIndex
[in] Specifies the zero-based offset to the value to be retrieved. Valid values are in the range zero through the number of bytes of extra window memory, minus four; for example, if you specified 12 or more bytes of extra memory, a value of 8 would be an index to the third 32-bit integer. To retrieve any other value, specify one of the following values. Value Action
GWL_EXSTYLE Retrieves the extended window styles. For more information, see CreateWindowEx.  
GWL_STYLE Retrieves the window styles.
GWL_WNDPROC Retrieves the address of the window procedure, or a handle representing the address of the window procedure. You must use the CallWindowProc function to call the window procedure.
GWL_HINSTANCE Retrieves a handle to the application instance.
GWL_HWNDPARENT Retrieves a handle to the parent window, if any.
GWL_ID Retrieves the identifier of the window.
GWL_USERDATA Retrieves the user data associated with the window. This data is intended for use by the application that created the window. Its value is initially zero.

The following values are also available when the hWnd parameter identifies a dialog box. Value Action
DWL_DLGPROC Retrieves the address of the dialog box procedure, or a handle representing the address of the dialog box procedure. You must use the CallWindowProc function to call the dialog box procedure.
DWL_MSGRESULT Retrieves the return value of a message processed in the dialog box procedure.
DWL_USER Retrieves extra information private to the application, such as handles or pointers.

Return Values
If the function succeeds, the return value is the requested 32-bit value.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

If SetWindowLong has not been called previously, GetWindowLong returns zero for values in the extra window or class memory.

Remarks
Reserve extra window memory by specifying a nonzero value in the cbWndExtra member of the WNDCLASSEX structure used with the RegisterClassEx function.

For an example, see Creating, Enumerating, and Sizing Child Windows.

Requirements
 Windows NT/2000 or later: Requires Windows NT 3.1 or later.
 Windows 95/98/Me: Requires Windows 95 or later.
 Header: Declared in Winuser.h; include Windows.h.
 Library: Use User32.lib.
 Unicode: Implemented as Unicode and ANSI versions on Windows NT/2000.

See Also
Window Classes Overview, Window Class Functions, CallWindowProc, GetWindowLongPtr, RegisterClassEx, SetParent, SetWindowLong, WNDCLASS


 
Юрий Зотов ©   (2004-07-13 18:46) [57]

Правильно, Денис! Так их всех! И не фиг учить всякие там английские, да еще и Си впридачу! И книжки тоже не фиг читать. И MSDN надо в помойку выбросить!

А вот это - просто шедевр:
Именно общие принципы эффективно постигаются на примерах, а не при чтении MSDN и прочих справочников!

Правильно! Так их всех! Уря!


 
Тимохов ©   (2004-07-13 18:52) [58]

"грустно - до чего же ламерство окрепло" (с) Igorek, 2004


 
Igorek ©   (2004-07-13 19:02) [59]


> Тимохов ©   (13.07.04 18:52) [58]

Спасибо, это будет моя фраза года!!! ЛОЛ


> Юрий Зотов ©   (13.07.04 18:46) [57]
> Правильно, Денис! Так их всех! И не фиг учить всякие там
> английские, да еще и Си впридачу! И книжки тоже не фиг читать.
> И MSDN надо в помойку выбросить!

Он такого не говорил вроде.
Кстати мой напарник знает английский не очень. Но программист неплохой. И логику высказываний часто понимает даже без знания конкретных переводов вонкретных слов.


> А вот это - просто шедевр:
> Именно общие принципы эффективно постигаются на примерах,
> а не при чтении MSDN и прочих справочников!

Толика истины есть в этом.


 
Григорьев Антон ©   (2004-07-13 19:15) [60]

Эх, такой ответ написал! А форум глюканул, всё пропало. Повторю, но короче.

1. Зарезервированное слово type может использоваться только для объявления своих типов, типы Борланда здесь ни при чём. Кто этого не понимает - идёт читать умные книжки, за компьютер ему садиться рано.

2. Кто не знает, что такое record, не знает, и что такое "тип запись", и подобный комментарий ему ничего не скажет. Вывод - сначала читаем умные книжки, потом садимся разбирать исходники. Всё равно написать такие комментарии, чтобы код понял даже тот, кто основ программирования не знает, не получится.

3. Оригинальная документация по Windows и по Delphi поставляется исключительно на английском. Объём документации такой, что пока её будут переводить, она устареет. Поэтому, хотите вы этого или нет, но программист должен знать английский на том уровне, чтобы читать MSDN.

4. Глупо требовать от физика-ядерщика, чтобы он писал свои статьи на уровне, понятном для уборщицы. Также глупо требовать от программиста, чтобы его код был понятен неподготовленным людям. При решении действительно сложных задач результат часто не можешь объяснить просто потому, что человек не понимает самой постановки задачи. Так что рассказывать о своих победах, конечно, можно и иногда даже нужно, но не стоит при этом ориентироваться на тех, кто не знает базовых вещей.

5. Про GetWindowLong я тоже писал, но Mystic меня опередил, не буду повторяться.


 
Style ©   (2004-07-13 20:07) [61]

Предлагаю всем ИТ отделам добавить новую должность в штат - Комментатор.

В обязанности которого входили бы не только написание ППК(Подробного и понятного комментария(С)), но и непосредственное участие в ежедневных докладах вышестоящему руководству организации о проделаной работе, в виде листинга достаточного объема с использованием ППК.

Плюс в ППК, можно было бы включать:

1)Требования о повышении заработной платы.
2)Служебные записки
3)Жалобы и предложения
4)Заявления и заявки!

Что значительно увеличило бы производительность программистов и снизило бы нагрузку с отдела кадров..

:0)


 
Igorek ©   (2004-07-13 20:39) [62]

А я предлагаю другую должность - РАСКОММЕНТАТОР.
Если комментарии:
есть - удалить
нужны  - переделать код что б не были нужны


 
Денис   (2004-07-13 20:40) [63]

Уважаемый Антон.
Вот Вам кусочек кода в котором после слова  type вовсе не идут объявления своих типов:

type

TForm1 = class(TForm) Edit1: TEdit;
Edit2: TEdit; Label1: TLabel;
Label2: TLabel; Label3: TLabel;
Label4: TLabel;
Button1: TButton;
Button2: TButton;
и т.д.


Но Ваши точные знания достоины восхищения, без шуток.

А комментарий "тип запись" именно и укажет какую тему следует человеку изучить.

Да за английский я обеими руками, товарищи!
Только для понимания инфы ,оперативно найденной Mystic, знания языка может оказаться мало.
Боюсь, что и в переводе то она будет тяжела.
А языки учить - это превосходно!

Кстати по части Комментатора: вот бы футбольные болельщики заявили , мол а на кой шиш он нужен? И так всё видно на экране!
А кто футбол не понимает - читать книжки...по хоккею!

Простите за упрямство, но ни одного разумного довода против я пока ещё не дождался.
В основном одно и тоже: это МНЕ понятно, это МНЕ не надо...
Рад в десятый раз за вас, господа, что вам не нужно пояснять такую простую програмку!
А если так же подробно(вплоть до ShowMessage) раскомментировать и сложную, то она будет понятна и любому новичку!
Может дело попросту в том , что боимся мы родимые, что нас так незаслуженно быстро догонит поколение новичков, а господа?


 
VMcL ©   (2004-07-13 21:00) [64]

>>Денис   (13.07.04 20:40) [63]

Вот Вам кусочек кода в котором после слова  type вовсе не идут объявления своих типов:

type

TForm1 = class(TForm) Edit1: TEdit;
Edit2: TEdit; Label1: TLabel;
Label2: TLabel; Label3: TLabel;
Label4: TLabel;
Button1: TButton;
Button2: TButton;
и т.д.


Да, верно. Здесь нет объявления своих типов. Здесь идет объявление одного типа, а именно своего нового типа TForm1.


 
nikkie ©   (2004-07-13 21:02) [65]

>...боимся мы родимые, что нас так незаслуженно быстро догонит...
нас не догонят... (c)ТаТу

Денис, не надоело клоунствовать здесь? ну найди себе новичков, которые будут заглядывать тебе в рот восхищенно, когда ты им будешь объяснять, что функция ShowMessage показывает сообщение.

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

а в реальном программировании требуются совсем другие комментарии, о чем тебе уже десять раз уже сказали.


 
Григорьев Антон ©   (2004-07-13 21:23) [66]


> Вот Вам кусочек кода в котором после слова  type вовсе не
> идут объявления своих типов:


Ошибаетесь. Это именно объявление своих типов. Просто эксперт сгенерировал кусок кода за вас. А смысл тот же.


> А комментарий "тип запись" именно и укажет какую тему следует
> человеку изучить.


Слово record справится с этим не хуже.

> А если так же подробно(вплоть до ShowMessage) раскомментировать
> и сложную, то она будет понятна и любому новичку!


Не будет. Для примера - напишите такой комментарий к вызову функции CoMarshalInterThreadInterfaceInStream, чтобы новичок, ничего не знающий о COM и о нитях вообще, мог понять, зачем в программе понадобился вызов этой функции. Объём такого комментария будет сравним с хорошей статьёй. Потому что нужно знать предметную область и понимать прежде всего постановку задачи, тогда и решение можно понять. А если человек не понимает, в чём проблема, то объяснять ему решение - задача неблагодарная. Большинство ключевых действий гораздо сложнее, чем ShowMessage, поэтому и написать разумный комментарий к ним не получится.


> В основном одно и тоже: это МНЕ понятно, это МНЕ не надо...


А вам не кажется, что в данном случае это гораздо более серьёзный аргумент, чем это выглядит на первый взгляд. Ведь никто из нас не родился с готовым знанием, что такое type или record. И мы помним об этом, потому что ходим на такие сайты и в меру своих сил помогаем новичкам. Кто-то только отвечает на вопросы, кто-то ещё и статьи пишет, но как-то пытаемся сделать то, что, по нашему мнению, поможет новичкам. И когда мы дружно говорим, что это не нужно (ведь вы не нашли ни одного единомышленника!), значит, что-то в нашем опыте подсказывает, что пользы от этого не будет. В Королевстве Delphi я вам уже написал, что не променял бы свой опыт постижения методом проб и ошибок на готовые работающие примеры с объяснением, как они работают. И объяснил, почему: процесс поиска ценен сам по себе, потому что он даёт опыт самостоятельного решения задач, опыт, который практически невозможно получить, начиная с задач сложных. И излишне подробный комментарий может создать у новичка иллюзию понимания, в то время как понимания-то и не будет.


> var
>   WindowInfo : TFindWindowStruct;{присваиваем тип}


А комментарии типа этого вообще вредны, потому что дезинформируют. Здесь мы не присваиваем тип, а обхявляем переменную заданного типа.

P.S. Прошу прощения у всех участников форума за то, что я здесь присвоил себе право говорить не только за себя, но и за всех сразу. Надеюсь, я не сказал ничего такого, что могло бы вызвать обиду.


 
Mystic ©   (2004-07-13 21:26) [67]

Представил исходник:

Value := GetWindowLong(Handle, 0);

{The GetWindowLong function retrieves information about the specified window. The function also retrieves the 32-bit (long) value at the specified offset into the extra window memory.

If you are retrieving a pointer or a handle, this function has been superseded by the GetWindowLongPtr function. (Pointers and handles are 32 bits on 32-bit Windows and 64 bits on 64-bit Windows.) To write code that is compatible with both 32-bit and 64-bit versions of Windows, use GetWindowLongPtr.

LONG GetWindowLong(
HWND hWnd,  // handle to window
int nIndex  // offset of value to retrieve
);
Parameters

.........................

Return Values
If the function succeeds, the return value is the requested 32-bit value.

If the function fails, the return value is zero. To get extended error information, call GetLastError.

If SetWindowLong has not been called previously, GetWindowLong returns zero for values in the extra window or class memory.

Remarks
Reserve extra window memory by specifying a nonzero value in the cbWndExtra member of the WNDCLASSEX structure used with the RegisterClassEx function.

For an example, see Creating, Enumerating, and Sizing Child Windows.

Requirements
Windows NT/2000 or later: Requires Windows NT 3.1 or later.
Windows 95/98/Me: Requires Windows 95 or later.
Header: Declared in Winuser.h; include Windows.h.
Library: Use User32.lib.
Unicode: Implemented as Unicode and ANSI versions on Windows NT/2000.

See Also
Window Classes Overview, Window Class Functions, CallWindowProc, GetWindowLongPtr, RegisterClassEx, SetParent, SetWindowLong, WNDCLASS}


SetWindowLong(Handle, 0, NewValue);

<it>{.......</it>


Боюсь, что и в переводе то она будет тяжела.

А ты попробуй ;) К тому же твои коментарии это в основном та же строка из помощи.

Понимаешь, если человек не знает, что секция type объявляет типы данных, определенных пользователей, то боюсь, что назначение функции GetWindowLong будет для него тайной за семью печатями. В том же MSDN перед примером идет две-три страницы описания того, что в примере делается (отдельным текстом, не коментарием), а только потом текст примера.


 
VMcL ©   (2004-07-13 21:32) [68]

Лично я с
  >>Григорьев Антон ©   (13.07.04 19:15) [60]
  >>Григорьев Антон ©   (13.07.04 21:23) [66]
согласен.


 
Mim1 ©   (2004-07-13 22:37) [69]

Чтото я не понял что от нас автор хочет?
Тварюгу завалить или еще что?


 
Style ©   (2004-07-13 22:46) [70]

>>Завалим толпою этого зверюгу - Delphi!

Что-то народ не совсем ту зверюгу толпой валит :)


 
Lenor   (2004-07-13 23:23) [71]

Да нас же всех посадят за жестокое обращение с животными!..


 
VMcL ©   (2004-07-14 00:16) [72]

>>Lenor  (13.07.04 23:23) [71]

А он первый на нас напал! Так что это самооборона.


 
KilkennyCat ©   (2004-07-14 02:26) [73]


> Денис   (13.07.04 20:40) [63]
> Может дело попросту в том , что боимся мы родимые, что нас
> так незаслуженно быстро догонит поколение новичков, а господа?


Мне кажется, что автор сей ветки не знает ничего :) и хочет нас заставить написать комментарии, чтоб "незаслуженно быстро догнать" :))

А лично я ни от кого не убегаю... Иду своей дорогою.


 
Юрий Зотов ©   (2004-07-14 06:11) [74]

> Может дело попросту в том , что боимся мы родимые, что нас так
> незаслуженно быстро догонит поколение новичков, а господа?

LOL.

Денис, Вы просто не представляете себе величину этого разрыва. Понимаете, человек, которому еще нужно рассказывать про "тип запись" уже не догонит меня ни-ко-гда.

Вернее, когда-нибудь, конечно, догонит, но только я этого уже не увижу. Столько не живут.

А раз так - чего ж мне его бояться-то?


 
Паниковский ©   (2004-07-14 07:06) [75]

Mystic
как то ветка была как увеличить обьем исходников
вот по мойму очень даже красивое решение!! ))

Денис  
Попробую угадать:
1 ты не давно начал програмиировать.
2 тебе что то сразу не понравилось ты решил это зделать по своему.

если выше перечисоенное так зделай такую штуку напиши игру!!!!
прикинь своя игра!


 
Паниковский ©   (2004-07-14 07:07) [76]

эту бы энергию и в мирных целях...


 
KSergey ©   (2004-07-14 08:59) [77]

> [76] Паниковский ©   (14.07.04 07:07)
> эту бы энергию и в мирных целях...

Вот и я про то же... уже и намекал ему, вроде корректно... Ан нет, не хочет...

> [54] Денис   (13.07.04 18:22)
> --------------------
> Когда-то в книжке по ассемблеру вычитал умную вещь:
>
> Пример бессмысленного коментария:
> mov a, 5  ; записать в а 5
> Как надо:
> mov a, 5  ; установить начальное значение счетчика
>
> Слишком урезанная цитата : то что это именно "начальное
> значение счетчика" нам здесь не известно.

Вообще-то цитата дословная, ничего не урезано.
Если вам не понятно... ну простите. Авторы не имели возможности (желания?) писать пространнее... Скажу больше, мне - понятно.


 
Style ©   (2004-07-14 09:19) [78]


> Слишком урезанная цитата : то что это именно "начальное
> значение счетчика" нам здесь не известно.


Да, просто не для больших умов написано :)


 
Nikolay M. ©   (2004-07-14 10:03) [79]

Имхо, автор - лентяй и демагог. Если это не провокация и не развод, конечно.
В следующем топике он предложит собраться всем программистам и написать Универсальную Базу Всевозможных Функций (с Подробнейшими Комментариями, конечно), из которых будет лепиться любая программа? :)


 
Anatoly Podgoretsky ©   (2004-07-14 11:21) [80]

> Как надо:
> mov a, 5  ; установить начальное значение счетчика

А надо не так, а

mov a, {Name}CounterStartValue

Для Паскаля

for I:= CounterStartValue to CounterEndValue do

и ни каких комментариев, ни здесь ни в других местах не понадобится.


 
Aldor_   (2004-07-14 12:35) [81]

Юрий Зотов ©   (14.07.04 06:11) [74]

<offtop>
Кстати, Юрий, на счет Этапа 6: мне право неудобно напоминать, но если нужна какая-либо поддержка, в том числе и моральная, всегда поможем чем сможем.
</offtop>


 
КаПиБаРа ©   (2004-07-14 12:50) [82]

Когда-то давно слышал что в пентагоне на 1 строчку программы приходится 200 строк комментария. Вот это программы там. Не программы а романы. Зачитаешься :)


 
PythoN   (2004-07-14 13:13) [83]

Всем здрасте!
На прочтение вышенаписанного у меня ушло н-ое кол-во времени, но я все таки до читал до последней фразы.
Мне хочеться сказать и свое слово.
Как я понял тут сложилась такая ситуация - "Денис" + небольшое кол-во людей, которые поддерживают его идею ( их мало) и все остальные.
Никто не пытаеться прийти к единому продуктивному решению, все кичятся своей ученостью и мастеровитостью. Стыдно господа, стыдно. Детский сад. ОДни : "МЫ вот ЭТО" Остальные : " Да мы! вообще !!! нам это не надо!!! мы круты!!!" ... спешу вас растроить - крутыми бывают тока яйца.
Вот такое впечатление создалось от вашей дисскусии. Я могу это утверждать как третья сторона. Но это мое субъективное мнение.

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

Другой вопрос, что комментариев вообще нет. Я понимаю что разобраться при желании можно во всем, но с комментарием все таки легче. Панамский славо богу ложками десертными не капали...

С уважением. PythoN.


 
Думкин ©   (2004-07-14 13:17) [84]

> [83] PythoN   (14.07.04 13:13)
> Как я понял тут сложилась такая ситуация - "Денис" + небольшое
> кол-во людей, которые поддерживают его идею ( их мало) и
> все остальные.
> Никто не пытаеться прийти к единому продуктивному решению,
> все кичятся своей ученостью и мастеровитостью. Стыдно господа,
> стыдно. Детский сад. ОДни : "МЫ вот ЭТО" Остальные : " Да
> мы! вообще !!! нам это не надо!!! мы круты!!!" ... спешу
> вас растроить - крутыми бывают тока яйца.

А теперь внимательно прочитай ветку по второму разу, потом свое и скажи последние фразу в зеркало. ИМХО.


 
Тимохов ©   (2004-07-14 13:27) [85]


>  крутыми бывают тока яйца.

и косогоры.


 
PythoN   (2004-07-14 13:56) [86]

> А теперь внимательно прочитай ветку по второму разу, потом свое и скажи последние фразу в зеркало. ИМХО.

А можно все таки по конкретнее свои мысли формулировать?
А не тайнственно - загадочно.
И еще пытаться меня устыдить в чем то - пустая трата времени.


 
Sandman25 ©   (2004-07-14 14:31) [87]

[83] PythoN   (14.07.04 13:13)

Ну Вы написали... "Я идею не понял, но не врубаюсь, почему она вам не понравилась и вы не попытались придти к компромиссу"...
Да потому что мы ее поняли! :)
Если кто-то знает, что он прав, причем прав на 100%, то ему нельзя идти на компромиссы, так как это будет против истины.


 
NailMan ©   (2004-07-14 15:01) [88]

Давайте и я выскажусь за и против:

Денис
В примере  c "Pos" все становится понятным если навести на Pos мыша, кликнуть и нажать CTRL+F1. Станет понятным и что делает эта функция и что надо в нее совать в качестве параметров. Также становится понятным что Pos - это сокращение от слова Position, а не Postscriptum какой-нить, так что интуитивно будет понятно что это нахождение позиции в чем-то. А вот в чем - это подскажет F1 или даже точнее CTRL+F1.

Hint: Новичек-"блондинка" должен знать как отче наш что главная клавиша на клавиатуре - это F1, а не левая кнопка мыши.

Коментарии:
В своих проектах(DShow-медиа-плеер и Direct3D9-игра) я коментирую в основном только в секциях Interface, тоесть объявления. делаю это я не для себя(свои прои я буду знать до конца программерской жизни), а для потенциальных напарников, которым нужно будет не то КАК получается результат выполения функции, а КАКОЙ результат получится и что для этого нужно подсунуть функции.

В заголовках это все прокоментированно. Кроме того в структурах указывается на кой хрен нам это поле/свойство и на кой другое.

Сам код практически не коментируется(разве что секции кода если функция/процедура большая).

Вобщем что я хочу сказать, описываю только то что необходимо для понимания процесса. Большую роль в написании понятной программы, для другого человека, к тому же еще с небольшими знаниями в программизме, играют информативные названия переменных и процедур/функций. Хороший тому пример тот же самый ShowMessage. Ну только полный даун-"блондинка"
не знающая ни слова по-англицки встретит затруднения с этой процедурой, точнее с ее назначением, к тому же и ленивый даун.

Коментаррий он на то и коментаррий чтобы прокоментировать какой-то непонятный кусок, но прокоментировать так чтобы не описывать какие-то действия дословно, а описать только мысль.

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

Вот взять к примеру меня:

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

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


> 2)Логика работы - это поверхностный обзор если не понимать
> каждый пункт.

Чё-чё?

Тоесть если я понимаю логику работы функции, то я лишь имею поверхностное представление о ее реализации?

ЗЫ:
Короче...идея имхо бредовая, хотя не лишена какого-то внутреннего смысла...

---
WBR, NailMan aka 2:5020/3337.13


 
Денис   (2004-07-14 19:15) [89]

В целом - убедительно, если опустить хамоватые замечания некоторых товарищей, которые эту убедительность пошатывают. Могу им только заметить, что коли тема моя так абсурдна, то держит вас здесь исключительно желание потрепаться. А значит клоунствуем мы тут совместно, и ты nikkie - не меньше меня.
Кстати клоун - тяжелая и уважаемая профессия, запиши если не знал.
       
Тут всерьёз повеяло профессионализмом. А я совершенно не собирался обращаться к профессионалам. То что я - любитель и новичок и так понятно, соответственно цели мои - любительские. И спорить с профессионалами я разумеется не буду.
Тем более, ни кого я не призывал комментировать чего либо и как либо.
Целью моего обращения был поиск людей которым возможно интересно было бы поделиться своими успехами и "открытиями".
А идея была в том , что множество новичков грызут науку програмирования с разных сторон, и объединившись могут обогатить друг друга, преумножить свои достижения.
Вы скажете - какой прок от их достижений?
А вот какой: пояснения профессионала и пояснения докопавшегося досути новичка имеют большую разницу.
Профессионал, объясняя что либо, часто упускает вещи которые не кажутся ему требующими объяснения, само собой разумеющимися. Поэтому обычно мало прочитать одну статью - лишь прочитав несколько, всё становится на свои места.
Новичок же, чьё открытие ещё свежо - не упустит ничего из мелочей, если конечно у него есть жажда докапываться до сути, а не просто код вставлять. Не обойдёт нюанс, потому что каждая мелочь ему стоила.
Но писать статьи ему конечно рано, а вот разобрав код, объяснить его другим - в самый раз.
А пример перед вами: разнесчастный type.
Для вас что TFindWindowStruct - тип , что TForm1 = class(TForm). Всё одно - свои типы.
А новичок полезет в справку с TFindWindowStruct, и может не найти там ни шиша(в отличие от TForm).
А почему? Правильно, потому что этот тип - запись, тип определяемый програмистом и может иметь какое угодно имя, в отличие от TForm.
Именно это я и вкладывал в понятие СВОИ, но вам профи этого уже не объяснишь.

Поэтому, раз тут ненароком собрались одни профессионалы, мне остаётся лишь сказать:"Обана! Ребята, извините я немножко ошибся дверью. Долго же мы базарили пока это выяснили!"


 
Тимохов ©   (2004-07-14 19:23) [90]

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

а что - идея.


 
Nous Mellon ©   (2004-07-14 19:25) [91]


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

Зачем друг другу? Бить надо Дмитрия О(не сильно, в воспитательных целях) ну и DiamondSharka(сильно в тех же целях)
:)


 
Тимохов ©   (2004-07-14 19:31) [92]


> Nous Mellon ©   (14.07.04 19:25) [91]

да пошутил я ...

в последнее время такая обиженность возникает при неприятии многих опохальнейшых идей и предложений.

Поэтому - тебе не нарвится автосхема, получи. А потом пивка...


 
Nous Mellon ©   (2004-07-14 19:37) [93]


> да пошутил я ...

да я тоже :)


 
Тимохов ©   (2004-07-14 19:42) [94]


> Nous Mellon ©   (14.07.04 19:37) [93]

да понял я.

Сколько не комментарь - ламер (если угодно, новичек) не поймет.


 
Юрий Зотов ©   (2004-07-14 19:52) [95]

> Денис   (14.07.04 19:15) [89]

> Поэтому обычно мало прочитать одну статью - лишь прочитав
> несколько, всё становится на свои места.

Вот в ЭТОМ Вы совершенно правы. Я бы даже сказал так "лишь прочитав несколько десятков книг всё только начинает потихоньку становиться на свои места".

Заметьте - несколько десятков, а не просто несколько.

И книг, а не статей. Серьезных и толстых. Уж точно не из серии "что-то там для чайников за 21 день".

И даже после этого - только начинает.

А без этого не помогут никакие комментарии. И никакого другого пути просто не существует.

Вот такие пироги.


 
Nous Mellon ©   (2004-07-14 19:53) [96]


> Сколько не комментарь - ламер (если угодно, новичек) не
> поймет.

по-моему ты смешиваешь два разных понятия? :)


 
Тимохов ©   (2004-07-14 19:59) [97]


> по-моему ты смешиваешь два разных понятия? :)

может быть :)
ламер - подкласс новичка - это воинствующий новичек


 
Anatoly Podgoretsky ©   (2004-07-14 20:02) [98]

Тимохов ©   (14.07.04 19:23) [90]
За автосхему это в другой ветке, благо она заведена и пока в пределах видимости.


 
Тимохов ©   (2004-07-14 20:04) [99]


> Anatoly Podgoretsky ©   (14.07.04 20:02) [98]

прошу прощения, виноват.
но это же уже имя нарицательное !!! :)))


 
Nous Mellon ©   (2004-07-14 20:09) [100]


> может быть :)
> ламер - подкласс новичка - это воинствующий новичек

Скорее это мертвый подкаласс новичка не имеющий своих более продвинутых поотомков  отличие от новичка талантливого, который постигая новое, становится объектом другого класса, класса потомка, с расширенными возможностями. И только самые талантливые постигают всю иерархию :)


 
Vlad ©   (2004-07-14 20:12) [101]


> Тимохов ©   (14.07.04 19:23) [90]
> а предлагаю иногда собираться и бить друг другу рожу приговаривая,
> а это тебе за автосхему, а это за универсальный комментатор.


А я предлагаю мордобои устраивать вот в этой ветке
http://delphimaster.net/view/14-1089777990/
Там будут собираться те, кто недобил друг другу морды в основных форумах по причине закрытия ветки :-)


 
Григорьев Антон ©   (2004-07-14 20:20) [102]

Так, я, кажется, что-то пропустил. Что такое автосхема?


 
kirasuki ©   (2004-07-14 20:34) [103]

Приветствую вас, уважаемые мастера. По-моему, предмет вашего обсуждения давно придуман, и называется он javadoc, doxygen (www.doxygen.org) и т.д. - автоматизированные средства построения документации. К сожалению, разработчики такого замечательного продукта как Delphi не удосужились включить подобную вещицу в исходный комплект поставки, тк видимо, заведующим отдела сопровождения программного обеспечения у них работала Эллочка Людоедка, либо просто по незнанию.


 
Думкин ©   (2004-07-15 06:50) [104]

> [102] Григорьев Антон ©   (14.07.04 20:20)

#ifdef offtop
Ты многое потерял. Суть вроде как такая:
1. Есть паскалевский код.
2. По нему строится блок-схема.
Но...вся прелесть не в этом а в том как это все работает и ...исходники и вечная претензия на новое и гениальное.
Еще было кодирование текста в картинки, правда обратно не раскодировывалось. После просмотра исходников - шок у всех на всю жизнь. Ну и т.д. ну и т.п.
Автор тут - с персональной веткой, можешь подробности взять у него.
#endif


 
Денис   (2004-07-19 08:18) [105]

Мне, признаться , тоже любопытно, что за Автосхема такая.
Если автор не против, где можно найти изложение идеи?


 
N170   (2004-07-19 08:33) [106]

Дайте ссылку для скачки.


 
Baron ©   (2004-07-19 10:49) [107]

Юрий Зотов ©  (14.07.04 06:11) [74]
>Денис, Вы просто не представляете себе величину этого разрыва.
>Понимаете, человек, которому еще нужно рассказывать про "тип
>запись" уже не догонит меня ни-ко-гда.
Я бы не стал так категорично. Хороший ученик, как правило, превосходит в последствии учителя. Так как к уже готовым знаниям учителя, прибавляются свои. Считаете ли вы себя не превзойденным?
//////

Насчет комментариев, думаю это излишне. Язык на то он и язык что бы его читать. Не будем же мы комментировать каждое написанное нами слово, выдержками из правописания русского языка. Тому, кто читать не умеет все ровно по понятным причинам будет непонятно.
По сабжу думаю автору лучше прокомментировать все в отдельном месте вне кода. И пусть распространяет свой код + комментарии в отдельном файле. ИМХО учить надо правила, а не примеры ошибок.

PS. Ох уж и утомительное чтиво здесь. Запарился все читать, так и не дочитал 3 поста. Пока читал, наверное, еще 10 напостили.


 
Юрий Зотов ©   (2004-07-19 15:14) [108]

> Baron ©   (19.07.04 10:49) [107]

Дома стоят 2 шкафа книг. Несколько сотен. И, в основнм,  вовсе не "для чайников". Плюс когда-то прочитанные книги из библиотек.

Чтобы начинающий человек  меня догнал, ему тоже придется их все прочитать и усвоить. А еще закрепить все прочитанное на практике. Сколько у него на это уйдет времени?

У меня ушло 35 лет. И у него уйдет примерно столько же (тем более, что ведь и я не стою на месте). А за это время я успешно перейду в мир иной
- так чко не суждено ему быть моим конкурентом. Поздно.

Вот в чем весь фокус.


 
Anatoly Podgoretsky ©   (2004-07-19 15:17) [109]

Юрий Зотов ©   (19.07.04 15:14) [108]
У него так не выйдет, для начала он не сможет найти тех книг, и плюс технологии так стремительно развиваются, что глазом видно как отстаешь.


 
Денис   (2004-07-19 19:57) [110]

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


 
Рыба ©   (2004-07-19 21:58) [111]

>Юрий Зотов ©  (19.07.04 15:14) [108]
>А за это время я успешно перейду в мир иной

Ну, это ещё как повезет...


 
Baron ©   (2004-07-19 22:45) [112]

Юрий Зотов ©  (19.07.04 15:14) [108]
Вы считаете, что текст более эффективное средство коммуникаций, чем общение человека с человеком?
Все знания, которые вы накопили за эти годы вы за более короткий промежуток времени сможете передать способному на то человеку. Учить н-н-амного легче в молодости. Не заметите, как вас обойдут молодые специалисты.
Что бы исключить массу ненужных вопросов скажу - что я не ставлю под сомнение вашу профессиональную компетенцию.


 
Денис   (2004-07-20 08:10) [113]


> Все знания, которые вы накопили за эти годы вы за более
> короткий промежуток времени сможете передать способному
> на то человеку.

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


 
Григорьев Антон ©   (2004-07-20 12:07) [114]


> Денис   (20.07.04 08:10) [113]
> Но почему то когда о подобном заходит речь, молодых учеников,
> страждущих получить знания из первых рук, обвиняют в ленности
> и паразитировании.


А вот передёргивать не надо. В лености и паразитировании обвиняют только тех учеников, которые хотят исключительно данным способом познания и ограничиться. А лично вас вообще обвиняют совсем в другом: несмотря на многочисленные советы тех, от кого вы якобы хотите научиться, вы продолжаете упорствовать в своих заблуждениях. И это вызывает сомнение в том, что вы вообще способны перенимать чужой опыт.


 
Юрий Зотов ©   (2004-07-20 14:51) [115]

> Baron ©   (19.07.04 22:45) [112]

> Вы считаете, что текст более эффективное средство
> коммуникаций, чем общение человека с человеком?

Речь идет не просто о коммуникации, а об обучении. А обучить можно только того, кто сам этого хочет и на это способен. А хотение и способность априори предполагают желание и умение самостоятельной работы с книгой (или иным источником). Роль же преподавателя - сначала дать базу (чтобы человек мог понимать написанное), а затем - контролировать усвоение материала и разъяснять непонятные места.

И все. Невозможно человека научить - можно лишь помочь ему научитьСЯ. Вот в этом "СЯ" и есть все дело.

И если человек работать самостоятельно не хочет или не может, то не помогут ему никакие преподаватели. А если хочет и может, то, в принципе, ему и преподаватели не нужны - он все равно своего добьется. Правда, без преподавателей он затратит гораздо больше труда и времени.

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

Что же касается "Не заметите, как вас обойдут молодые специалисты", то кто же против? Флаг им в руки. Только молодым специалистам это не грозит. Пока они будут "обходить", быть "молодыми" они вполне успешно перестанут. Что, кстати и наблюдается в реальности.

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


 
Суслик ©   (2004-07-20 15:06) [116]

Опытный человек, опытен во всем :)))
Особенно в сарказме!

>  Только молодым специалистам это не грозит. Пока они будут
> "обходить", быть "молодыми" они вполне успешно перестанут


Браво :))))))))


 
Sandman25 ©   (2004-07-20 15:11) [117]

[115] Юрий Зотов ©   (20.07.04 14:51)

Если позволите, я распечатаю Ваш постинг и отнесу одному молодому человеку, чтобы он правильно понимал мою роль в его обучении.


 
Empleado ©   (2004-07-20 16:14) [118]

Хех... Наверно стар я становлюсь ;) Из всего прочитанного меня задело только неправильное употребление французского языка в извратно отредактированном варианте (Денис (13.07.04 18:22) [54]).

А по теме хочу процитировать:

"Если б мишки
Были б пчелами,
То они бы ни по чем
Ни за что бы ни подумали
Так высОко строить дом..."

На фик не надо мишкам дом на дереве. О!


 
KSergey ©   (2004-07-20 16:42) [119]

> Единственный язык который без коментарриев сложно воспринимается(когда
> какой-то большой и сложный кусок программы) - это асм. Тут
> я всеми руками за подробный коментаррий, но таки не на каждой
> строчке, а на той, где действие неясно из контекста.

Немного ностальгии.
До сих пор лежит дома книжка с полностью дизасемблированным и откомментированным ПЗУ от "Спектрум".
Комментарии - сказка! Я иногда их просто для удовольствия читаю на ночь, как роман идут, чес. слово (кто видел - поймет).
Вот на чем надо учиться (в том числе и как комментарии писать)!


 
Огромное Кулясищще ©   (2004-07-20 17:36) [120]

Народ!

А что, никто не заметил?

by Denis:

> то касается русского DELPHI , твоя идея кажется, - вот создатель Паскаль - молодец!Взял и создал програмный язык на родном языке, на радость и удобство всем англоязычным.

Если бы так и было, то щас бы мы писали:

фюр i := 1 бис цу 10 махе

А может по-французски как-нибудь писали бы?


 
Григорьев Антон ©   (2004-07-20 18:06) [121]


> Огромное Кулясищще ©   (20.07.04 17:36) [120]
> Народ!
>
> А что, никто не заметил?


Заметили. См.
> Amoeba ©   (13.07.04 15:03) [52]


 
NailMan ©   (2004-07-20 18:10) [122]

Огромное Кулясищще ©

> А может по-французски как-нибудь писали бы?

pour i:=0 jusque a 10 faire

---
WBR, NailMan aka 2:5020/3337.13


 
Огромное Кулясищще ©   (2004-07-20 18:51) [123]

>Заметили. См.
> Amoeba ©   (13.07.04 15:03) [52]


Эх, чёрт. К рукокривию ещё и косоглазие прибавилось :)


 
Юрий Зотов ©   (2004-07-20 19:43) [124]

К вопросу о молодых специалистах... Я почти в ярости.

Блин! Блин!! И еще три блина!!! Сегодня обнаружилась совершенно непонятная трабла, которую надо СРОЧНО решить. А для этого требуется сосредоточиться, спокойно походить отладчиком и крепко подумать. А я не могу этого сделать, поскольку рядом сидит тот самый молодой специалист и каждые пять минут дергает. Потому что у него тоже срочная задача и тоже идут непонятные ему траблы. И у него уже тоже мозги креветкой.

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

И так прошел целый день. Блин!

А вы говорите - догонят... Да я был бы счастлив.


 
Суслик ©   (2004-07-20 19:46) [125]


> В итоге - отвлекся я на полминуты, а мысль потерял и надо
> все начинать сначала.

у меня отец такой же.
поэтому один всегда работает.

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


 
Anatoly Podgoretsky ©   (2004-07-20 20:18) [126]

Точно, ты же кандидатскую писать помогал :-)


 
Денис   (2004-07-20 20:27) [127]


> Григорьев Антон ©   (20.07.04 12:07) [114]
> А лично вас вообще обвиняют совсем в другом: несмотря на
> многочисленные советы тех, от кого вы якобы хотите научиться,
> вы продолжаете упорствовать в своих заблуждениях. И это
> вызывает сомнение в том, что вы вообще способны перенимать
> чужой опыт.

А вот здесь я с Вами полностью согласен.
Более того, я вообще не понимаю, что значит перенимать
чужой опыт
.
Опыт может быть только свой.
Чужой опыт своим быть не может.
Перенимать надо знания, информацию.
А самостоятельное обучение, чтение книг никто не оспаривает.
Но только у человека ищущего мысль идёт всегда дальше строчек, вопросы возникают постоянно, даже когда всё понятно, и своевременный ответ на эти подчас "смешные" вопросы может дать только общение человека с человеком.


 
Mim1 ©   (2004-07-20 21:55) [128]


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


Вот вот, и у меня такая же ситуация, только курировать работу этого неумехи приказало начальство, послать далеко этого "обучающегося по ходу", непрочитавшего ни одной книги нельзя. :(


>  [127] Денис   (20.07.04 20:27)


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


 
Денис   (2004-07-21 08:25) [129]


> Денис, да прыгените вы наконец с девятого этажа чтобы нароботать
> свой опыт.

Cудя по всему, Вам это пошло на пользу.


 
Dmitriy O. ©   (2004-07-21 08:55) [130]

Автосхема сделает не нужным подробный и понятный коментарий :))(шутка)

> Денис   (19.07.04 08:18) [105]

http://www.dmitriyo.narod.ru/
http://www.dmitriyo.front.ru/


 
ИдиотЪ   (2004-07-21 08:56) [131]

И вот я каждые пять минут отвлекаюсь, подхожу к нему - и каждый раз оказывается, что вопрос-то у него почти детский. В итоге - отвлекся я на полминуты, а мысль потерял и надо все начинать сначала.
Причем мотивируют всегда тем, что они целый день потратят, а чего нам, быстро ответили и свободны
Ничего, как говорится, что внуки отомстят детям, так следующие чайники отомстят, кхе ...


 
Dmitriy O. ©   (2004-07-21 08:57) [132]

Да кстати по сабжу. Помнится я тоже как то собирал команду кодеров для написании проги "Автокомминт" Были даже желающие :))


 
Kerk ©   (2004-07-21 09:01) [133]


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

Да нехрен плакаться. Сам виноват. Избаловал. Пошли его нах... Он отстанет.


 
Токинов Андрей   (2004-07-21 11:37) [134]

Добрый день.
Пришел с Королевства.
Уж и не знаю, плакать ли, смеяться ли...
Лучше встречал лишь обсуждение вопроса:
"По ошибке скачал из интернета ненужный файл,
как мне его вернуть обратно?"


 
Думкин ©   (2004-07-21 11:40) [135]

> [134] Токинов Андрей   (21.07.04 11:37)
> Добрый день.
> Пришел с Королевства.

Это очень важная информация?


 
Sandman25 ©   (2004-07-21 11:43) [136]

[135] Думкин ©   (21.07.04 11:40)
>Это очень важная информация?

Это очень важный вопрос? Вот поэтому и возникают периодически ветки о недоброжелательности...


 
Думкин ©   (2004-07-21 11:47) [137]

>  [136] Sandman25 ©   (21.07.04 11:43)

А это с какого боку? Мне интересно просто стало? Чего кипятишься?


 
ИдиотЪ   (2004-07-21 11:49) [138]

Думкин ©  
поддерживаю


 
Sandman25 ©   (2004-07-21 11:54) [139]

[137] Думкин ©   (21.07.04 11:47)

Интересно??? Считает ли он это важной информацией? А для написания "Добрый день" тоже нужно, чтобы это было важной информацией??? Видимо, каждый понимает в меру своей испорченности, и, не видя твоей мимки и не слыша твоей интонации, я воспринял все именно так, как я воспринял.
Ладно, проехали.


 
Юрий Зотов ©   (2004-07-21 12:32) [140]

> Kerk ©   (21.07.04 09:01) [133]

> Да нехрен плакаться. Сам виноват. Избаловал. Пошли его нах...
> Он отстанет.

Это не плач. Он ушел домой, а я высказался здесь, чтобы сброситься. Потом попил кофейку, покурил, посидел пару часов, уже спокойно - и закрыл вопрос.

А послать - это самое  простое. Только кто будет кадры растить - Пушкин? Парень стоящий, есть смысл с ним повозиться.


 
Sandman25 ©   (2004-07-21 12:35) [141]

[140] Юрий Зотов ©   (21.07.04 12:32)

>Парень стоящий, есть смысл с ним повозиться.

Странно тогда, что вопросы детские. Он сам не умеет находить логичные ответы на простые вопросы???


 
Юрий Зотов ©   (2004-07-21 12:45) [142]

> Sandman25 ©   (21.07.04 12:35) [141]

ПОЧТИ детские. Для меня. А для него пока еще, видимо, не простые.

Дело, в общем-то даже не в самих вопросах. Главное, что он не задает один и тот же вопрос ДВАЖДЫ. Значит, схватывает суть с ходу - вот что ценно.


 
Sandman25 ©   (2004-07-21 12:50) [143]

[142] Юрий Зотов ©   (21.07.04 12:45)

Понятно. У парня хорошая память. Шучу.
Если человек понимает намеки, или даже не понимает, но начинает копать в нужном направлении и дальше может понять самостоятельно, тогда он действительно стоящий.


 
Johnmen ©   (2004-07-21 14:19) [144]

"Спросил у одного клиента, который задолбал слишком частыми и слишком тупыми
вопросами, не приходило ли ему в голову, прежде чем садиться за компьютер,
прочитать хотя бы несколько страничек какого-нибудь Левина или Фигурнова.
Он ответил без тени иронии в голосе:
- Нет. А зачем ?"


(c) Денис Яцутко
http://denisbooks.rema.ru/yatsutko/telegas/bidiot.log.html


 
Anatoly Podgoretsky ©   (2004-07-21 14:37) [145]

Юрий Зотов ©   (21.07.04 12:32) [140]
Юрий Лермонтов.
Действительно если парень понимает, схватывает на лету, то почему бы не портатить на него время, тем более, что это твое время будет потеряно если не подучишь, и с лихвой.


 
Nous Mellon ©   (2004-07-21 15:28) [146]


> Юрий Лермонтов

мдя


 
Johnmen ©   (2004-07-21 16:11) [147]

>Style ©   (13.07.04 20:07) [61]
>...написание ППК(Подробного и понятного комментария(С)),

Так благозвучней - ПиПКо.
Или - ПодиПоКом.
:)


 
Суслик ©   (2004-07-21 16:13) [148]

пипоняк

еще можно...

парям-таки шапокляк!


 
Денис   (2004-07-21 21:01) [149]

Юрию Зотову:
Юрий, а ведь по сути Вам и приходится заниматься со своими кадрами, тем что мы тут обсуждали(осуждали).
Тыкать в каждую строчку и пояснять: если так - идём сюда - делаем это.
Подробный устный комментарий в чистом виде.
На практике очевидно , что это самый действенный способ объяснить что либо даже самому тупому.
И при этом Вы не отрицаете , что Парень стоящий, и из него может что нибудь путное получится.
Правильно, поможет это ему или навредит - покажет время.
Но то, что это ему необходимо сейчас - факт.


 
jack128 ©   (2004-07-21 21:17) [150]


> Денис   (21.07.04 21:01)
только, что обсудили разницу между книгой и общением с человеком..


 
Юрий Зотов ©   (2004-07-21 21:26) [151]

> Денис   (21.07.04 21:01) [149]

> Тыкать в каждую строчку и пояснять:
> если так - идём сюда - делаем это.

Я объясняю принципы, а не строчки. Строчки человек, работающий профессиональным программистом, обязан понимать сам и уметь их писать - тоже сам. Обязан. Иначе ему не за что платить зарплату.

А уж оператор IF (как все остальные элементы языка) он обязан понимать абсолютно свободно. С закрытыми глазами и даже после произвольно большого количества водки.
:о)


 
GrayFace ©   (2004-07-21 22:45) [152]

>Единственный язык который без коментарриев сложно воспринимается(когда какой-то большой и сложный кусок программы) - это асм.
>Тут я всеми руками за подробный коментаррий, но таки не на каждой строчке, а на той, где действие неясно из контекста.
Еще ERM(язык карт WOG"а. В чем-то похож на асм) и Perl(как говорит отец).

Тимохов ©   (14.07.04 13:27) [85]
Че такое "косогоры"?

Юрий Зотов ©   (14.07.04 19:52) [95]
>У меня ушло 35 лет. И у него уйдет примерно столько же
35 лет назад программирование только зарождалось. Опыт, приобретенный тогда - это, скорее всего, принцыпы мышления, полезные привычки и т.д. Языки программирования, которые вы тогда изучали, и цели, которые преследовали(экономия оперативки и т.д.), наверняка, очень далики от современных. Поэтому, мы можем затратить на это не 35 лет, а гораздо меньше.

Денис
>if Pos(PFindWindowStruct(lParam).Caption, StrPas(lpBuffer)) > 0
>      then...
>Ну-ка догадатесь-ка "по контексту" что такое Pos.
Запросто. Этот контекст зовется "Context Help".

>>...Достаточно знать их(функций) 50-70 для того чтобы понимать >>95% исходников.
>Ой ли? Применительно к стихам: если Вы знаете 50-70 слов скажем на французском,
>то врядли вы поймёте хотя бы 10% французской литературы.
Вот об этом я и говорю. И процент франзузской литературы с таким словарным запасом не понять, а в WinAPI можно 95%... ну 80% уж точно.

>Могу им только заметить, что коли тема моя так абсурдна, то держит вас здесь исключительно желание потрепаться.
>А значит клоунствуем мы тут совместно, и ты nikkie - не меньше меня.
И этого ни кто не отрицает.

>А почему? Правильно, потому что этот тип - запись, тип определяемый програмистом
>и может иметь какое угодно имя, в отличие от TForm.        
Нет. Наследник TForm может тоже иметь любое имя. Достаточно изменить Name с Form1 на че-то другое. А если ты имел в виду саму TForm, то она здесь вовсе не объявляется.

>[127]
>ответ на эти подчас "смешные" вопросы может дать только общение человека с человеком.
Абсолютно правильно! Надо просто обмениваться исходниками - это идея не плохая - а комментировать каждую строчку, только если возникнут вопросы. Вот только WinAPI и изучение основ - вещи несовместимые. Либо нужно обмениваться почти не комментированными исходниками WinAPI, либо сильно(если уж так хочется) откомментированными исходниками по всем темам. А лучше всего обмениваться советами. Вот мои:
1) Как я уже говорил, изучение WinAPI лучше всего начинать с окон - а точнее, с поиска, например, "EnumWindows", а потом переходить в "Group" и смотреть, что есть что.
2) Посмотри FAQ по сочитаниям клавиш в Delphi, особенно Ctrl+Space, Ctrl+Enter/Click, Ctrl+Shift+Up/Down, еще может пригодиться Ctrl+J.
3) Порешать олимпиадные задачи
4) Поизучать указатели - полезная штука.
5) Смотреть исхотники модулей Deplhi. Там много интересного.

PS:{#IFDEF Offtopic} А как ты относишься к литературе?


 
Денис   (2004-07-22 09:29) [153]


> Юрий Зотов ©   (21.07.04 21:26) [151]
> Я объясняю принципы, а не строчки.


Неужели эти принципы надо объяснять каждые полминуты?...
А принцип работы отдельно взятой функции, той же EnumWindows, - это по Вашему не принцип? И не достоин объяснения?
Просто каждому свой уровень, вот и всё, а я речь веду вовсе не о профессиональных программистах. которым платят зарплату.
И потом, - разумеется я утрирую, и не об операторах речь.
Речь о том, что "смешные" вопросы возникают у всех. И так было и будет всегда, пока Человек учится чему либо.
И отвечать на них всё-равно придётся, что бы там не говорили о правильных и неправильных методах обучения.


 
Григорьев Антон ©   (2004-07-22 11:44) [154]


> Денис   (22.07.04 09:29) [153]
> Неужели эти принципы надо объяснять каждые полминуты?...


Нет, не надо. Надо объяснить один раз. И если человек с первого раза не понял, сделать непрятные для него выводы.

А вообще, вы упорно не хотите понять, что комментарий "Объявляем типы" рядом со словом type ничего общего с объяснением принципов не имеет.


 
VMcL ©   (2004-07-22 11:45) [155]

>>Денис  (22.07.04 09:29) [153]

>А принцип работы отдельно взятой функции, той же EnumWindows, - это по Вашему не принцип? И не достоин объяснения?

Достоин. Именно поэтому он описан в справке по ф. EnumWindows().


 
Юрий Зотов ©   (2004-07-22 14:52) [156]

> GrayFace ©   (21.07.04 22:45) [152]

> 35 лет назад программирование только зарождалось.

Вы довольно сильно заблуждаетесь. Зарождалось оно гораздо раньше. О машине Бэббиджа и Аде Лавлейс что-нибудь слышали? Когда появились первая ЭВМ и первый компилятор - знаете?

> Опыт, приобретенный тогда - это, скорее всего, принцыпы
> мышления, полезные привычки и т.д.

А еще твердое знание и понимание всяких там двоичных фокусов и особенностей floating-point, умение программировать в кодах и на ассемблере. Только не говорите, что сейчас это все стало иначе. И не говорите, что сейчас это уже никому не нужно.

> Языки программирования, которые вы тогда изучали, и цели,
> которые преследовали(экономия оперативки и т.д.), наверняка,
> очень далики от современных.

Здесь Вы снова довольно сильно заблуждаетесь. Вы знакомы с тогдашними ассемблерами, Алголом, Фортраном, PL/1? Судя по этому утверждению - вряд ли. Для сведения - Алгол, например, довольно близок к Паскалю (вероятно, Паскаль на основе Алгола и строился), а все ассемблеры, в основном, отличаются друг от друга привязкой к разному железу и системой команд, но очень мало отличаются самими командами и еще меньше - принципами написания программы. А многие современные языки (включая, кстати, и Си), появились как раз в 60х-70х годах. Когда была написана знаменитая "Big Blue C" Кернигана и Ритчи?

И с чего Вы решили, что тогда преследовались цели экономии памяти? При решении задачи всегда преследуется цель решить саму задачу. Конечно, если программа к тому же работает еще и быстро, и экономично, то это хорошо и говорит о классе программиста - но цель-то ведь совсем не в этом.

И еще - тогда "удельный вес" (скажем так) килобайта памяти был гораздо выше. Угадайте, сколько задач реально могло одновременно выполняться на ЕС ЭВМ с памятью всего лишь в 512 килобайт?

> Поэтому, мы можем затратить на это не 35 лет, а гораздо меньше.

Да, если Вы не будете изучать то, о чем сказано выше. А именно: "твердое знание и понимание всяких там двоичных фокусов и особенностей floating-point, умение программировать в кодах и на ассемблере". А еще - как писать программы, чтобы они работали быстро и экономично. И еще - как писать программы без ошибок.

Тогда получится действительно быстрее. В смысле - быстрее начать писать код. А вот догнать - вообще не получится. Потому что программист без всего этого, если уж говорить всерьез - вообще не программист. Это как автомеханик, который умеет крутить 10 конкретных гаек в нужную сторону на нужное число оборотов, но не понимает, что при этом происходит и не умеет крутить никаких других гаек вообще.

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

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

А то какой то странный разговор получается - мы можем, мы можем... А сами еще даже толком не представляют, о чем вообще идет речь. Не надо говорить, ребята - Вы сделайте.


 
Суслик ©   (2004-07-22 14:59) [157]


> если еще жив буду

super!


 
Григорьев Антон ©   (2004-07-22 15:05) [158]


> Юрий Зотов ©   (22.07.04 14:52) [156]



> вероятно, Паскаль на основе Алгола и строился


Точно-точно. Сначала Вирт с кем-то в соавторстве разработал новый диалект Алгола - Algol-W, а потом - новый язык Паскаль, ставший развитием этого диалекта.


 
GrayFace ©   (2004-07-22 16:53) [159]

Юрий Зотов [156]
>О машине Бэббиджа и Аде Лавлейс что-нибудь слышали?
Да.
>Когда появились первая ЭВМ и первый компилятор - знаете?
Нет.
>И, похоже, Вы полагаете, что программирование - это когда человек сидит за машиной и пишет код. А это вовсе не так.
Конечно не так. Программирование - это еще когда человек придумывает структуру программы, но не более того.
>И с чего Вы решили, что тогда преследовались цели экономии памяти?
Тогда - вряд ли, но, например, чтобы в ДОСе развернуть картинку, о памяти надо позаботиться.

Все эти двоичные хитрости изучаются очень быстро. Почти все время у меня уходит на создание программ. Если у вас львинная доля времени ушла на теорию, то вы - странный человек. Я не представляю, как можно больше любить изучение программирования, чем само программирование.
>численную математику, линейное программирование, теорию языков, восходящее и нисходящее проектирование и...
Я согласен, что у нас уйдет на изучение всего этого не меньше времени, но догонять вас во всем - это абсурд. Мы можем вас быстро догнать и обогнать в отдельной области, можем обойти в умении программировать(в красоте алгоритмов. Ведь это утрированно =время*талант).

>И давайте на этом закончим теоретические разговоры.
Да. Какой-то скучный спор получается, какое-то состязание в занудстве.


 
Юрий Зотов ©   (2004-07-22 17:38) [160]

> Если у вас львинная доля времени ушла на теорию, то вы -
> странный человек. Я не представляю, как можно больше любить
> изучение программирования, чем само программирование.

Напишите калькулятор. Просто калькулятор. Которому на входе задается строка, содержащая произвольное арифметическое выражение, а он его вычисляет. Должны поддерживается... ну, скажем, 4 действия арифметики, возведение в степень, скобки с любым уровнем вложенности и какие-нибудь функции (например, те же самые, что поддерживает библиотека Паскаля). Естественно, вычисляться должны любые корректные выражения (а если выражение содержит ошибку, то должна выдаваться ее точная диагностика - так же, как это делает компилятор).

Когда напишете - сравните, сколько времени у Вас ушло на кодинг и отладку, а сколько - на все остальное. И задумайтесь над двумя вопросами:
1. Смогли бы Вы вообще написать такую программу без теории?
2. А что же такое есть программирование?


 
GrayFace ©   (2004-07-22 19:26) [161]

1. Я имел в виду не ту теорию. Я имелл в виду теории программирования в целом:
>численную математику, линейное программирование, теорию языков, восходящее и нисходящее проектирование и... и...
2. Программирование - это кодинг и придумывание структуры программы, как я и говорил.


 
Огромное Кулясищще ©   (2004-07-22 19:33) [162]

>Вы довольно сильно заблуждаетесь. Зарождалось оно гораздо раньше. О машине Бэббиджа и Аде Лавлейс что-нибудь слышали? Когда появились первая ЭВМ и первый компилятор - знаете?

ИМХО ненужные знания.

>А еще твердое знание и понимание всяких там двоичных фокусов и особенностей floating-point, умение программировать в кодах и на ассемблере. Только не говорите, что сейчас это все стало иначе. И не говорите, что сейчас это уже никому не нужно.

Именно иначе. Сейчас можно повесить таймер, который будет проверять, находится ли мышка в определённом регионе - и можно забыть про всякие сообщения. И всё это будет работать, а вы - пользоваться, ничего не подозревая.

>Да, если Вы не будете изучать то, о чем сказано выше. А именно: "твердое знание и понимание всяких там двоичных фокусов и особенностей floating-point, умение программировать в кодах и на ассемблере".

Зачем же на ассемблере? Вы же потом не разберётесь. Программы сейчас такие большие, что один человек не потянет. Я если каждый в группе будет работать на асме - толку будет мало.

>А еще - как писать программы, чтобы они работали быстро и экономично. И еще - как писать программы без ошибок.

Быстро и экономично - гм, экономично нынче не в моде, всё равно весь объём сожрёт графика. А быстро - это само собой получается. Сейчас очередное затишье, но очень скоро у передовиков (не совсем уж передовиков, но, скажем, тех, кто собирались обновиться и обновились) будут уже процессоры с частотами 5 Гц. Если есть рабочее решение (хоть скачаное с нета), то его использование даст желаемый резултат.

Кроме того, программист нынче и дизайнер. Да! Всё изменилось! Нынче и дизайнер. Дизайн интерфейса и дизайном можно назвать комнонентобросание - дизайн какой-никакой архитекуры.

>И, похоже, Вы полагаете, что программирование - это когда человек сидит за машиной и пишет код.

Нет, это когда человек сидит за компьютером и кидает компоненты.

>А это вовсе не так. Программирование - это гораздо больше и гораздо глубже. Даже если Вы не будете изучать простейших основ кодирования (о которых говорилось выше), то Вы сэкономите всего лишь год-два. Не больше. А для дальнейшего "догоняния" нужно будет изучать численную математику, линейное программирование, теорию языков, восходящее и нисходящее проектирование и... и... и еще ОЧЕНЬ много всяких больших и сложных "и". На которые и уйдет львиная доля времени. А вот на этом Вы уже не сэкономите ни-че-го. А без этого "догнать" даже и не мечтайте - вообще никогда.

Это потом, на закате карьеры.


 
Григорьев Антон ©   (2004-07-22 19:36) [163]


> GrayFace ©   (22.07.04 19:26) [161]


А структуру программы на пустом месте придумывать будете? Ни в одной области знаний не бывает такого, что пришёл человек со стороны и вдруг придумал что-то такое, чего до него ни один специалист не мог придумать. Все, кто сделал что-то действительно интересное, всегда очень хорошо разбирались в том, что было сделано до них. Программирование - не исключение.


 
DiamondShark ©   (2004-07-22 19:47) [164]


> пришёл человек со стороны и вдруг придумал что-то такое

А зачем? Ведь "Если есть рабочее решение (хоть скачаное с нета), то его использование даст желаемый резултат."
Процессор-то на 5 Гц ;)


 
Думкин ©   (2004-07-22 19:50) [165]

> 159] GrayFace ©   (22.07.04 16:53)

В свое время, когда я к программированию вообще почти не имел отношения ко мне подошла женщина(ну глаза светились у меня,и светятся - фосфором?) и попросила написать программу. Одну. Простую? Сейчас глядючи - нет. Я написал - за 4 часа в ночи,за интерес. Но в этом мне помгло то чему я до этого учился несколько лет, я вспомнил ряд вещей, или знал?. Это было быстро. Зароботок - 10. Сейчас я знаю что я сотворил.
И в этом я полностью поддерживаю Юрия - то что в том - тому в этом обучать готовы годами, а там вроде секунды, но те же годы, только без выпендрежа. Но когда придет задача, то ты ее решишь быстро и качественно, а не быстро и с "а я ее потом править бесплатно буду". Не надо.


 
Юрий Зотов ©   (2004-07-22 19:55) [166]

> Огромное Кулясищще ©   (22.07.04 19:33) [162]

Если Вы все это говорите серьезно, то я даже и спорить не буду. А если шутите - то тем более.

> GrayFace ©   (22.07.04 19:26) [161]

> 1. Я имел в виду не ту теорию. Я имелл в виду теории
> программирования в целом:
>> численную математику, линейное программирование,
>> теорию языков, восходящее и нисходящее
>> проектирование и... и...

Ну так вот: да будет Вам известно, что задача написания такого калькулятора относится как раз к той самой теории языков. И если человек не знает хотя бы основ этой теории, то нормально он не напишет такую программу никогда. Потому что строчный калькулятор, который можно написать без теории, НОРМАЛЬНОЙ программой не будет - он будет убогой и глючной поделкой.

> 2. Программирование - это кодинг и придумывание структуры
> программы, как я и говорил.

А я Вам ответил - напишите калькулятор. Быть может, после этого Ваша уверенность и поколеблется. А сейчас мы пока что говорим на разных языках.

Напишите. Попробуйте.


 
Думкин ©   (2004-07-22 19:58) [167]

> [163] Григорьев Антон ©   (22.07.04 19:36)
> [164] DiamondShark ©   (22.07.04 19:47)
> > пришёл человек со стороны и вдруг придумал что-то такое

Да, меня отец в свое время убил этим.
Про бомбу, атомную. Чтобы создать сие познали ипрошлое в этом. А мне страшно стало, а я сумею? Жмуть. Вот стараюсь, а вижу что сложно, сложно, но ингтересно, а иначе бы давно нафиг.
Верно? А то вот я в белом, а вы все .... Не люблю такое. Не про вас, а про оппонентов.


 
Думкин ©   (2004-07-22 20:29) [168]

> [166] Юрий Зотов ©   (22.07.04 19:55)

Угу. Вот я и осознал себя как программиста когда как раз именно это и сделал. А именно, написал этот самый пресловутый строчный калькулятор. С переменными и элементарными функциями. Но сделал.
Потом я и пошел, и уволился с прежнего. Хотя и прежде этим болел, но это была последняя капля.


 
Огромное Кулясищще ©   (2004-07-22 21:02) [169]

>Юрий Зотов ©   (22.07.04 19:55) [166]

>Если Вы все это говорите серьезно, то я даже и спорить не буду. А если шутите - то тем более.

А что не так (серьёзно)? Завтра Вас назовут системщиком, хоть и будут не правы, но это же масса и вы против неё не попрёте. Программировать будут именно не зная всего того, что вы перечислили, а когда понадобится всё же с этим разобраться - вызовут вас. А потом, через ещё какое-то время, когда понадобится что-то новое, на существующем напишут это новое и будет повторение истории.


 
Vouck   (2004-07-22 21:29) [170]

>напишите калькулятор
Зачем? А может еще велосипед придумать? ИМХО, неправильный подход.


 
Sergey Masloff   (2004-07-22 21:54) [171]

Vouck   (22.07.04 21:29) [170]
>>напишите калькулятор
>Зачем? А может еще велосипед придумать? ИМХО, неправильный >подход.
Ну, велосипеды придумывают постоянно. Это я вам как кандидат в мастера спорта еще СССР говорю, примерно каждые 3 ну максимум 5 лет идет полное обновление технологий, мой велосипед (стоивший 2 тыс инвалютных рублей (тех что реально 60 коп. за доллар были)) по сравнению с современными моделями - это даже не телега по сравнению с космическим кораблем. Но это оффтоп.

 А калькулятор писать - чтобы освоить элементарные навыки программирования. Потому что компоненты и скачаный из интернета код это хорошо но когда вылезет в нем ошибка то если вы ее не найдете и не исправите (в предельно короткие сроки) то Вас могут ждать настолько серьезные неприятности что... Впрочем не будем о грустном.
 Просто реальный пример - коллега мне говорит что-то код неправильно работает. Говорю ну прогони в отладчике. Да мимо проскакивет. Я начинаю нервничать (своих дел по горло). Говорю поставь Use Debug DCU. А где это. Ну вобщем дошло до View CPU Window. И фразы готорая меня в предынфарктное состояние повергла - "ух ты, а это что - ассемблер?!" Похоже человек его увидел впервые. А все е^*%$*ная экономия на кадрах. Ну почему нельзя взять одного нормального человека вместо трех которые только тормозят все и отвлекают тех кто хоть что-то может :-(((
Извините за хоть и замаскированную ненормативную лексику но уже поперек горла стоит.


 
Огромное Кулясищще ©   (2004-07-22 22:26) [172]

>Зачем? А может еще велосипед придумать? ИМХО, неправильный подход.

Именно. Пока пишешь - время теряешь.


 
Белый Крыс ©   (2004-07-22 22:34) [173]

Г-н Огромное Кулясищще
А представте такую ситуацию.К вам перестали поступать новые, крутые компоненты, с новыми функциями. А почему, да потому что их НЕ КОМУ писать. Юрий Зотов, предположим, пишет те самые компоненты, и те самые среды разработки (Delphi, VC, CBuilder...), используя свои знания, те самые знания, про которые вы так говорите. Через некоторое время подобные люди закончатся, т.к. новые (да хоть ВЫ) считают, что это не их область, их область - "компонентокидание". Что тогда делать???
Более того, если вы так уверены в своей правоте, почему же ТОЛЬКО вы, в этом уверены? Еще кто-то? Таких мало.
Почему же в таком случае подавляющее число крупных программ создаются не вашим способом? Спросите у Кармака, использовал ли он для кваки GLScene. Ответ понятен. Почему?
PS
Вообще все это Огромное Кулясищще, Денис - голимый развод.


 
Nous Mellon ©   (2004-07-22 23:23) [174]


> Программировать будут именно не зная всего того, что вы
> перечислили, а когда понадобится всё же с этим разобраться
>

Именно. Только их не надо называть программистами. Найди менее высокое слово. А вот вызовут они Юрия Зотова - Программиста.

"А вы знаете что программистов в нашем городе двадцать человек?"
(с) Игорь Шевченко


 
Огромное Кулясищще ©   (2004-07-22 23:37) [175]

>А представте такую ситуацию.К вам перестали поступать новые, крутые компоненты, с новыми функциями. А почему, да потому что их НЕ КОМУ писать. Юрий Зотов, предположим, пишет те самые компоненты, и те самые среды разработки (Delphi, VC, CBuilder...), используя свои знания, те самые знания, про которые вы так говорите. Через некоторое время подобные люди закончатся, т.к. новые (да хоть ВЫ) считают, что это не их область, их область - "компонентокидание". Что тогда делать???

Давайте не так. Давай так:

1. Все отказываются от использования языка ассемблера раз и навсегда. Кому от этого плохо? Да, медленнее работает код, но ввиду развития технологии это совершенно незаметно. Функционально мы как-то проиграем. По-моему нет.

2. Программист больше не изучает, как организован floating-point или изучает лишь как очень узкую специальность, именно когда она требуется. Т.е. - программист в основное массе не изучает строение floating point типов да и fixed point тоже. Вопрос. Кто от этого проиграет? Вы не напишите из-за этого свою программу? Не думаю, ой как не думаю.

>Более того, если вы так уверены в своей правоте, почему же ТОЛЬКО вы, в этом уверены? Еще кто-то? Таких мало.

Допустим, я убил Д. Кеннеди и я знаю, что это сделал я. Но другие не знают и даже обвиняют другого. Так по вашему я должен считать, что это другой и убил?

Посомтрите на контингент посетителей. Те, кто помоложе - пока свою точку зрения не выражают. Те кто постарше - цепляются за своё место. Пока она ещё держатся, пока они ещё всё решают. Но придёт время, притом очень скоро. Старое уйдёт, а те, кто стал изучать новое наравне с теми старыми программистами, станут с ними совершенно вровень.

>Почему же в таком случае подавляющее число крупных программ создаются не вашим способом?

Каких же это таких программ? Где в Word нужно знания, которые я так пытаюсь забыть? Вы думаете, что не сделаете Word своими руками за 10 лет? Единственная сложность - это написать редактирующую часть, остальное - сплошные компоненты.

Или какую ещё программу? Графические редакторы - это знание графических принципов, математика, алгоритмы, это я с рук не списываю, но эти редакторы сделаны в высокоуровневой среде.

Какие ещё серьёзные программы? Разве что Delphi, разве что ОС. Но тогда, я говорю, этому надо посвящать жизнь.

>Спросите у Кармака, использовал ли он для кваки GLScene. Ответ понятен. Почему?

А спросите Кармака, почему он использовал DirectX 9.0 для Doom 3, а не писал свой ускоритель. Ответ понят. Почему?

Всё таки разные вещи - вывод графики с нуля (даже не с нуля, а с уровня примитивов) и построение принципов программирования с нуля.

>Вообще все это Огромное Кулясищще, Денис - голимый развод.

Идея Дениса меня не тронула, я это не поддерживаю. А когда Юрий Зотов ответственно заявляет: учите, дети, ассемблер - этого я не желаю воспринимать. Мне он не нужен. Променять циклы, переменные, красоту - на ассемблер сейчас я не хочу.


 
Огромное Кулясищще ©   (2004-07-22 23:42) [176]

>Именно. Только их не надо называть программистами. Найди менее высокое слово. А вот вызовут они Юрия Зотова - Программиста.

Да, я согласен, что они - ламеристы. Но их - много. И скоро их стандарт станет программистом, а ЮЗ увы, обидят.


 
KilkennyCat ©   (2004-07-22 23:46) [177]


> Белый Крыс ©   (22.07.04 22:34) [173]

Хе... все гораздо проще. Придет заказчик и скажет, напишешь прогу - дам денег. Только аванс не проси, и не используй компоненты без лицензий - потому как потом прога будет широкомасштабно продаваться. Вот жопа и настанет. А так, конечно, пошел на рынок, купил пару компактов, наставил кучу компонент, накидал на форму - вот, смотрите, какой я программер... И пофиг, что я Бэббиджа не знаю, не нужно мне это...
А ведь этот спор неоднократно доказывался практикой... И не только в программисткой области. Я работал телемастером - тоже самое. Новички мне говорили, нафига ты знаешь и помнишь теорию ламповых телевизоров? Их уже нет! Нафига ты изучаешь электронику? Есть же пособие телемастера с таблицей неисправностей!
А потом в моду вошли ламповые усилители...
Единственный минус для меня - экономический. Потому как за изучением мало времени для коммерчества. Скороспелые кидатели компонент и шаблонные телемастера успевают перехватить клиентуру. У меня чаще всего получается, что я 3-4-ый мастер, приходящий к клиенту. Соответсвенно, клиент уже и не доверяет, и заплатить много не в состоянии - подрястрясли первые горе-программисты-телемастера. но есть и плюс: когда я все-таки выполняю заказ, клиент обеспечивает мне наилучшую рекламу.

так что, любители компонент, учите теорию, английский и машину Поста (я не писал калькулятор, я делал мП в графике, прикольно!)


 
Огромное Кулясищще ©   (2004-07-22 23:54) [178]

>KilkennyCat ©   (22.07.04 23:46) [177]

Только аванс не проси, и не используй компоненты без лицензий - потому как потом прога будет широкомасштабно продаваться.

No one will ever know!


 
GrayFace ©   (2004-07-23 09:56) [179]

Григорьев Антон ©   (22.07.04 19:36) [163]

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

Огромное Кулясищще

>1. Все отказываются от использования языка ассемблера раз и навсегда. Кому от этого плохо?
>Да, медленнее работает код, но ввиду развития технологии это совершенно незаметно.
>Функционально мы как-то проиграем. По-моему нет.
Разница в скорости межну асмовским кодом и дельфевским кодом ничтожно мала. ИМХО, Асм сейчас нужен только для взлома прог и для всяких ОС, компилляторов. Но, например, если не использовать указатели, то разница будет заметна, независимо от развития технологии - программа в любом случае будет тормозить в n раз больше (n:real).
>Те, кто помоложе - пока свою точку зрения не выражают.
Выражаю.
>Пока она ещё держатся, пока они ещё всё решают. Но придёт время, притом очень скоро.
>Старое уйдёт, а те, кто стал изучать новое наравне с теми старыми программистами, станут с ними совершенно вровень.
Очень хорошо держаться и будут держаться. Например, мой отец, начинавший с М220, изучил Java, когда она еще не была популярна, хорошо разбирается в ООП, осваивает C#. Старшее поколение способно к развитию почти так же, как молодое. Все зависит от человека.

Юрий Зотов

На днях напишу калькулятор и покажу вам.


 
Григорьев Антон ©   (2004-07-23 11:13) [180]


> Огромное Кулясищще ©   (22.07.04 23:37) [175]


> 1. Все отказываются от использования языка ассемблера раз
> и навсегда. Кому от этого плохо? Да, медленнее работает
> код, но ввиду развития технологии это совершенно незаметно.
> Функционально мы как-то проиграем. По-моему нет.


А тут разработчики Intel"а или ещё кто-то создают новый процессор с расширенным набором команд. Команды обеспечивают существенно более быстрое выполнение каких-то важных действий. Но на ассемблере мы не пишем, мы для этого слишком продвинутые, а компиляторы эти команды ещё не научились поддерживать. И тут Юрий Зотов и его единомышленники обойдут ламеров сразу на корпус.

> 2. Программист больше не изучает, как организован floating-point
> или изучает лишь как очень узкую специальность, именно когда
> она требуется. Т.е. - программист в основное массе не изучает
> строение floating point типов да и fixed point тоже. Вопрос.
> Кто от этого проиграет? Вы не напишите из-за этого свою
> программу? Не думаю, ой как не думаю


Вот и получается потом, что человек, столкнувшийся с элементарной проблемой при сравнении двух вещественных чисел, искренне считает, что это глюк компилятора. И на поиск обходного (обычно очень некрасивого) пути тратит кучу времени, вместо того, чтобы дальше писать программу.

> Посомтрите на контингент посетителей. Те, кто помоложе -
> пока свою точку зрения не выражают. Те кто постарше - цепляются
> за своё место. Пока она ещё держатся, пока они ещё всё решают.
> Но придёт время, притом очень скоро. Старое уйдёт, а те,
> кто стал изучать новое наравне с теми старыми программистами,
> станут с ними совершенно вровень.


Мне 27 лет. Я уже старый?


> Каких же это таких программ? Где в Word нужно знания, которые
> я так пытаюсь забыть? Вы думаете, что не сделаете Word своими
> руками за 10 лет? Единственная сложность - это написать
> редактирующую часть, остальное - сплошные компоненты.


У, как всё запущено... Да хотя бы проверка грамматики, тезарус - для их реализации нужно знать, как правильно реализовать сортировку и поиск по отсортированному массиву. Т.е. Кнута знать надо. И такого в Word"e наберётся ещё немало.

> А спросите Кармака, почему он использовал DirectX 9.0 для
> Doom 3, а не писал свой ускоритель. Ответ понят. Почему?
>
> Всё таки разные вещи - вывод графики с нуля (даже не с нуля,
> а с уровня примитивов) и построение принципов программирования
> с нуля.


А что значит "написать свой ускоритель"? Для каждой видеокарты? Так это нереально - разработчики видеокарт далеко не всегда делятся своими секретами. Да и что делать с видеокартами, которые появятся позже? Вот и приходится использовать открытый интерфейс, который поддерживается драйвером видеократы. Таких интерфейсов два: Direct3D и OpenGL. Из них Direct3D, кстати, более низкоуровневый.

А вообще, Direct3D - это ещё не 3D-движок. Если тупо пытаться выводить через Direct3D все объекты, которые присутствуют на сцене, то картинка, конечно, получится красивая, но FPS будет просто смешным. Значит - программное отсечение невидимых полигонов, а это опять - алгоритмы быстрой сортировки, выборки и т.п.

P.S. А вообще, Юрий прав: не хочется думать, что такие "аргументы" могут приводится всерьёз.


 
Белый Крыс ©   (2004-07-23 11:22) [181]

Что касается "тех, кто помоложе". Мне 16 лет. Моя общая позиция ясна.


 
Anatoly Podgoretsky ©   (2004-07-23 11:31) [182]

Разбули программиста на Коболе через 10000 лет и говорят, тут нам надо программу написать.


 
Юрий Зотов ©   (2004-07-23 11:36) [183]

> KilkennyCat ©   (22.07.04 23:46) [177]

> Есть же пособие телемастера с таблицей неисправностей!

Реальный случай. Был у человека ящик, 202 или 208 серии (точно уже не помню, но суть в том, что строчная развертка там на тиристоре). Полетела эта самая строчная развертка. Пришел мастер, стал разбираться и по неаккуратности коротнул управляющий электрод тиристора на его же анод. Тиристор тут же  прошило, причем весьма конкретно, а далее началось что-то типа Хиросимы. Вскрытие и анализ позволили предположить примерно такой сценарий.

Выбило схему защиты в блоке питания. За ней прошило регулирующий транзистор в 12-вольтовым стабилизаторе и вместо 12 вольт в схему поперло все 25. И началось массовое падение микросхем и транзисторов (оконечный усилитель в УНЧ аж обуглился). Длилось все это, пока не выбило сам блок питания. Короче - полный аут.

Мастер, конечно, виду не подал, сказал, что на месте разобраться не может и ящик надо сести в мастерскую. С тем и ушел. Ящик повезли в мастерскую. Там его, ясное дело, не приняли - сказали, что проще купить новый. Проще-то, оно, ясное дело, проще, но где деньги, Зин? Повезли в другую мастерскую, в третью, в пятую - с тем же результатом. И стоял этот ящик 6 лет - а за это время вполне успешно еще и высохли электролиты. То есть, и без того полный аут стал еще полнее.

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

И вот интересно мне - в какой таблице неисправностей описана ТАКАЯ "неисправность", как неисправность чуть ли не всех узлов телевизора ОДНОВРЕМЕННО?

Так что, полностью Вас поддерживаю - умение заменить транзистор по таблице неисправностей еще не делает человека телемастером. Так же, как и умение заменить плату в современных ящиках - потому что платы еще и настройки друг под друга требуют, а чтобы ее сделать, надо, как минимум, понимать, что тебе показывает прибор, почему он это показывает и как это настраивается.

Странно, но этот мир все более и более скатывается к ламерству. Программисты, не умеющие программировать. Антеннщики, не знающие слов "волновое сопротивление". Телемастера, не понимающие, что такое "сопряжение каскадов". Автомеханики, путающие детонацию с калильным зажиганием. И т.д.

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

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

> GrayFace ©   (23.07.04 09:56) [179]

> На днях напишу калькулятор и покажу вам.

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


 
Суслик ©   (2004-07-23 12:02) [184]


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

можно. У меня была книжка "Паскаль в картинках". Там для дурачков (картинки же - жучки, паучки, рожицы) расказано как сделать обратную польскую нотацию. Будете смеятся наш рабочий интерпретатор я начинал писать с этой книги... Уже пятый год работает. Жуткий язык. Но жить дает.

По поводу профи
---------------
Не понимаю я вашего гнева, Юрий, по поводу теле-авто-айти-ламеров. Имхо есть разные области деятельности. И раз они существуют, значит они востребованы.

Я бы вообще не говорил слова программист. Есть ощущение, что все этот термин понимают несколько субъективно. Я для себя уже заменил термин "программист" на "работник айти креатива". И в вашем понимании "программист" в моей классификации есть часть указанного работника. Но это не значит, что все должны быть имеено программистами (в вашем понимании). Зачастую с такими людьми сложно работать. И невозможно выполнять конкретные, приносящие деньги задания. Твоить? Да, конечно - пусть творят. И часто именно их творения дают повод жить другим, менее квалифицированным людям. Но именно меннее квалифицированные люди, используя творения квалифицированных (не особо углубляясь в детали) приносят доход. В моем понимании это ламеры. Пусть даже и на java пишут. Не важно. Но они имеют право на существование.

И вот скажите, кому нужны в фирме 30 Юриев Зотовых, знающий все и вся. Они же передерутся :))

ЗЫ. Зачастую глубокие знания не сопровождаются доходами. Не вижу здесь ничего удивительного. IT - в основном в современном мире это средство поддержки бизнеса. Я не говорю про космос, физику и т.д. Да эти области есть. Но поддержка бизнеса (erp кажется) это тот стимул, почему развивается IT. Т.к. именно в бизнесе деньги (как минимум в нашей стране). И именно квалифицированные ламерки (т.е. люди хорошо знающие узкую технологию и ничего более) решают задачи этого бизнеса. Да, для них надо эту технологию написать. Но почему надо требовать, чтобы они все знали чтолько же, сколько и автор? Зачем. Технология на то и есть, чтобы получить более дружественный интерфейс + функциональность, чем низлежащие уровни.


 
Суслик ©   (2004-07-23 12:06) [185]

Хочу добавить, что для меня:
1. исполнительный (т.е. делает, что говорят)
2. не особо вдумчивый  (т.е. ему достаточно предоставленной доки к технологии и более ничего)
3. работящий (т.е. усидчивый и успевающий сделать намечанное)
работник ценнее реальных профи.

Почему:
1. Есть возможность планировать и успевать дела. Профи зачастую склонны к затягиванию.
2. Деньги. Они стоят существенно меньше.


 
Григорьев Антон ©   (2004-07-23 12:15) [186]


> Суслик ©   (23.07.04 12:06) [185]


А потом такой исполнительный работник напишет что-то вроде закрытия сокета в то время как на нём ожидает получения данных другая нить и долго думает: "Вроде, всё работает, но корректно ли это?" Нет, уж лучше пусть будет профи, который про каждое своё действие заранее знает, что оно корректно.

P.S. Как говорится, ничего личного, просто вспомнилось :))


 
Суслик ©   (2004-07-23 12:20) [187]


> Вроде, всё работает, но корректно ли это

В приведенном тобой примере нельзя упрекнуть нас - не профи. Дока (вся какая есть) изучена. Доке мы не противоречим. В чем же не мы профи? :))) А профи, это тот кто сделет иначе - то, как в доке не сказано. Так что ли? Тогда это шаманство какое-то :))))


 
Суслик ©   (2004-07-23 12:26) [188]


> Григорьев Антон ©   (23.07.04 12:15) [186]

И вообще, малось не корректный пример. Сокета - достаточно низкоуровенуая штука. Я про это и не говорил. Под технологиями я имел в виду несколько иное.


 
Sandman25 ©   (2004-07-23 12:31) [189]

>квалифицированные ламерки (т.е. люди хорошо знающие узкую технологию и ничего более)

Странное определение. Все врачи поголовно - ламерки? Все физики - ламерки? Все биологи - ламерки? Почему же тогда от программистов требовать знания всего того, что изучено и придумано к настоящему времени?


 
Суслик ©   (2004-07-23 12:37) [190]


> Sandman25 ©   (23.07.04 12:31) [189]

странное возражение:
1. мы говорим про it, а не про остальные науки
2. по поводу требования знания я и не спорю. Не нужно знать все.


 
Sandman25 ©   (2004-07-23 12:38) [191]

[190] Суслик ©   (23.07.04 12:37)

Хорошо. Что принципиально отличает it от медицины?


 
Mur_r   (2004-07-23 12:40) [192]

ндя...  а ведь с чего все начиналось)))


 
Суслик ©   (2004-07-23 12:42) [193]


> Sandman25 ©   (23.07.04 12:38) [191]

не знаю...
а это сейчас важно?


 
Sandman25 ©   (2004-07-23 12:48) [194]

[193] Суслик ©   (23.07.04 12:42)

>не знаю...
а это сейчас важно?

После ответа "не знаю" уже не важно :)


 
Суслик ©   (2004-07-23 12:51) [195]


> После ответа "не знаю" уже не важно :)

ну ведь можно подумать :)))
я просто не задумывался.
ты же тоже не о всем на свете думаешь?


 
Anatoly Podgoretsky ©   (2004-07-23 12:57) [196]

А чего думать, трясти надо


 
Johnmen ©   (2004-07-23 13:00) [197]

...хватит трясти ! Уже столько всего нападало !...


 
DiamondShark ©   (2004-07-23 13:02) [198]


> Sandman25 ©   (23.07.04 12:38) [191]

Вообще-то, врач не должен быть узким специалистом.
Врач лечит не болезнь. Врач лечит организм.


 
Суслик ©   (2004-07-23 13:04) [199]

эка куда нас занесло :)))

вообще говоря мои посты были адресованы в основном Юрию. Очень интересно было бы услышать его комметарии.


 
Anatoly Podgoretsky ©   (2004-07-23 13:08) [200]

Johnmen ©   (23.07.04 13:00) [197]
Выделение ударения это понятный комментарий, даже не оставил мне место для домыслов :-)


 
calm ©   (2004-07-23 13:30) [201]

>>Если Вы все это говорите серьезно, то я даже и спорить не буду. А если шутите - то тем более.

2 Юрий Зотов:
Не спорьте с недалекими людьми. Если человек невнимает 3 постам, это совершенно бесполезно. Он верит в свои слова и чужие ему не нужны.
Было бы здорово, если бы вы написали статью на тему теле-авто-ламеров. Я думаю, нашлись бы люди, которые поняли бы мысль.

Теперь по теме.
Постоянно читаю литературу по специализациям, которыми на прямую не занимаюсь. И все чаще бывает, что приобретенные знания позволют мне быстрее и качественне выполнять задачи и принимать решения.
Я в лагере Юрия Зотова!


 
Суслик ©   (2004-07-23 13:34) [202]

Кто же спорит про полезность всестороннего образования.
Другой вопрос, что невозможно быть реально хорошо образованным во всех областях. Возможно, что это будет распыление сил.

Т.е. типа, что-где-когда: все знаю, но пользы это не приносит.

-----------
Скажу честно - я тоже в лагере Юрия. Тоже пытаюсь знать много и глубоко. Но нельзя считать, что если люди этого не делают, то они ламеры. имхо


 
Johnmen ©   (2004-07-23 13:34) [203]

>Anatoly Podgoretsky ©   (23.07.04 13:08) [200]

:^)


 
Юрий Зотов ©   (2004-07-23 13:48) [204]

> Суслик ©   (23.07.04 12:02) [184]

> Там для дурачков (картинки же - жучки, паучки, рожицы)
> расказано как сделать обратную польскую нотацию. Будете
> смеятся наш рабочий интерпретатор я начинал писать с этой
> книги... Уже пятый год работает. Жуткий язык. Но жить дает.

То есть, без теории языков дело все же не обошлось. Парсер писать все равно пришлось, а вместо написания транслирующей грамматики переложили необходимость знания ОПЗ на юзера - вот и вся разница.

> Не понимаю я вашего гнева, Юрий, по поводу теле-авто-айти-
> ламеров. Имхо есть разные области деятельности. И раз они
> существуют, значит они востребованы.

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

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

А дальше - его собственный выбор. Хочет оставаться юзером - нет проблем. Хочет переходить в профи - тоже нет проблем. Только не следовало бы ему говорить о том, как быстро и просто он может это сделать. Пусть сначала попробует - вот тогда, может быть, и поймет ЧТО и СКОЛЬКО ему для этого придется перепахать. И сколько ему на это потребуется труда и времени. А как только поймет - думаю, его самонадеянность си-и-ильно приуменьшится.

Вот, собственно, и вся моя позиция. Очень простая.


 
Sandman25 ©   (2004-07-23 14:16) [205]

[195] Суслик ©   (23.07.04 12:51)

Программисты и врачи знают и учат то, что им нужно в их узкой специализации. Если я работаю с БД, да еще и из-под Delphi, то мне нет необходимости знать, как работает команда grep в каком-нибудь Unix.
Но моя узкая специализация вряд ли делает меня "квалифицированным ламером". Другой пример - многие из мастеров не заходят в некоторые конференции типа Игры или Kol.

[198] DiamondShark ©   (23.07.04 13:02)

Это утопия, к сожалению. С требуемым объемом знаний и умений не справиться ни одному человеку. Как от Робинзона Крузо требовать создания машины для печатания дензнаков :)


 
Суслик ©   (2004-07-23 14:19) [206]


> Вот, собственно, и вся моя позиция. Очень простая.

Позиция изложена очень четко.
Я все понял. Со всем согласен.
Я наверное что-то пропустил в этих двух сотнях немаленьких постов.


 
calm ©   (2004-07-23 14:25) [207]


> Программисты и врачи знают и учат то, что им нужно в их
> узкой специализации.

Неверно! Первые 5 (если не ошибюсь) лет все врачи учат одно и тоже - ВСЕ. Начиная от пяток, заканчивая ушами (в переносном смысле :). И только после этого начинается спициализация.


 
Sandman25 ©   (2004-07-23 14:28) [208]

[207] calm ©   (23.07.04 14:25)

Я знаю. Только ведь речь идет об уровне знаний, необходимом чтобы быть профессионалом. Знание уравнения Шредингера не делает меня квантовым физиком. Вы же сами написали "начинается спициализация".


 
eukar   (2004-07-23 14:31) [209]

calm ©   (23.07.04 14:25) [207]

А у программистов (по образованию) вузовская программа сильно различается?
А дополнительно и врачи изучают то, что ИМ больше надо.
Кроме того, грубое разделение есть у врачей с самого начала. Есть стоматологический, лечебный и (кажется) терапевтический факультеты с разными программами и даже разными конкурсами при поступлении. Это фактически разные специальности.

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

Это было имхо.


 
Sandman25 ©   (2004-07-23 14:35) [210]

[209] eukar   (23.07.04 14:31)

Студента-программиста тоже не допустят на серьезное предприятие. В данном случае имеется в виду такое, последствия ошибки на котором будут сравнимы с последствиями ошибки врача.


 
eukar   (2004-07-23 14:53) [211]

Sandman25 ©   (23.07.04 14:35) [210]

Согласен. Поэтому я и говорил о неполноте аналогии, а не о ее отсутствии.
У программиста все же есть возможность в процессе обучения работать по специальности, пусть и не на серьезном предприятии. У студента-медика такой возможности почти нет (медсестра это все же не та работа, опираясь на опыт которой можно выбрать себе врачебную специальность по душе. Хотя небольшая возможность имеется). Во всяком случае, не было 5-7 лет назад, когда учились в меде хорошо знакомые люди (по их же словам).


 
Sandman25 ©   (2004-07-23 14:55) [212]

Короче. Учу родственника программировать. Ему приходится подучивать:
1) английский
2) математику
3) ассемблер (не понимал разницу между var и by value)
4) ООП
5) принципы работы Windows (сообщения, потоки, процессы)
6) принципы вывода графики (пока на уровне TCanvas, если понадобится перейдем на уровень объектов Windows)
И это только самое начало...


 
Огромное Кулясищще ©   (2004-07-23 15:36) [213]

>Вот и получается потом, что человек, столкнувшийся с элементарной проблемой при сравнении двух вещественных чисел, искренне считает, что это глюк компилятора. И на поиск обходного (обычно очень некрасивого) пути тратит кучу времени, вместо того, чтобы дальше писать программу.

А как же вы со своими знаниями всё же сравните?


 
Григорьев Антон ©   (2004-07-23 15:49) [214]


> Огромное Кулясищще ©   (23.07.04 15:36) [213]
> >Вот и получается потом, что человек, столкнувшийся с элементарной
> проблемой при сравнении двух вещественных чисел, искренне
> считает, что это глюк компилятора. И на поиск обходного
> (обычно очень некрасивого) пути тратит кучу времени, вместо
> того, чтобы дальше писать программу.
>
> А как же вы со своими знаниями всё же сравните?


А это уже от конкретной ситуации зависит. Может быть, заранее подумаю о том, как вообще избежать такого сравнения.


 
Огромное Кулясищще ©   (2004-07-23 16:15) [215]

>А это уже от конкретной ситуации зависит. Может быть, заранее подумаю о том, как вообще избежать такого сравнения.

Пока вы будете изучать строение floating-point, другой человек будет спокойно программировать, и встретившись (вероятность, конечно, малая, но есть) с ошибкой, в течение 1 дня при наличии форумов и собственных идей, решит проблему и будет знать её решение, а кто не встретится, то так и будет жить. Думаю, вы соглаистесь, что при моём подходе есть экономия времени.


 
Anatoly Podgoretsky ©   (2004-07-23 16:20) [216]

Огромное Кулясищще ©   (23.07.04 16:15) [215]
Ну да?
Как мне поинится решения таких проблем выливается далеко не в один день, даже если не трепаться, а итог один, вы ламеры и ничего не понимаете в запятой.


 
Суслик ©   (2004-07-23 16:22) [217]


> Огромное Кулясищще ©   (23.07.04 16:15) [215]

забейте, они же старики :)))))
у вас свой путь.
время покажет стоит ли с вами соглашаться.


 
Johnmen ©   (2004-07-23 16:26) [218]

>Суслик ©   (23.07.04 16:22) [217]
>время покажет стоит ли с вами соглашаться.

И старикам тоже покажет ? Успеет ?
:)


 
Суслик ©   (2004-07-23 16:27) [219]


> И старикам тоже покажет ? Успеет ?
> :)

Я думаю они из любопытства доживут до того момента, когда можно будет делать выводы :))))


 
Григорьев Антон ©   (2004-07-23 16:31) [220]


> Огромное Кулясищще ©   (23.07.04 16:15) [215]


Можно устроиться на какую-то работу или открыть своё дело и зарабатывать деньги своим трудом. А можно пойти по вагонам метро и попрошайничать. И второй вариант иногда приносит больше денег, чем первый. То же самое и с программированием. Можно надеяться на свои силы при решении задач, а можно на то, что, в случае чего, найдётся добрый человек на форуме, который подскажет. И, точно также, в некоторых случаях второй подход может дать выигрыш. Но есть ещё такое слово как самоуважение. Для меня оно не пустой звук. Если я называю себя программистом, то мне важно, чтобы я действительно умел программировать, а не только кидать компоненты на форму да вопросы по форумам развешивать.


 
Григорьев Антон ©   (2004-07-23 16:32) [221]


> Johnmen ©   (23.07.04 16:26) [218]
> >Суслик ©   (23.07.04 16:22) [217]
> >время покажет стоит ли с вами соглашаться.
>
> И старикам тоже покажет ? Успеет ?
> :)


Мне покажет, если что. Я ещё не старик :))


 
Огромное Кулясищще ©   (2004-07-23 16:38) [222]

2 Григорьев Антон:

Прежде всего хочу сказать, что в предыдущих постах я высказывался против ассеблера, против, как мне кажется, лишних знаний о строениях типов (но не их назначениях и способах использования). И ещё я оговорил: кому это надо, кому это именно в данный момент приспичило - тот пускай учит по специальной литературе, которая будет считаться архизаумной. И ещё - я за использование компонентов для оформления интерфейсов и реализации как-нибдуь протоколов (ведь протокол - он нато и протокол, чтобы быть таким всегда), загрузки и сохранения известных форматов. Итак...

> Огромное Кулясищще ©   (22.07.04 23:37) [175]

>А тут разработчики Intel"а или ещё кто-то создают новый процессор с расширенным набором команд. Команды обеспечивают существенно более быстрое выполнение каких-то важных действий. Но на ассемблере мы не пишем, мы для этого слишком продвинутые, а компиляторы эти команды ещё не научились поддерживать. И тут Юрий Зотов и его единомышленники обойдут ламеров сразу на корпус.

Тот же MMX ускоряет в 1,5 раза. Это не значит, что программа, использующая блендинг, реализованный на MMX, будет работать в 1,5 раза быстрее. Кроме того, формула блендинга как была, так и останется. Суть - не меняется. Скорость - скоро разницы не будет. Заметьте, что я не бастую против изучения принципов работы с цветами.

>Вот и получается потом, что человек, столкнувшийся с элементарной проблемой при сравнении двух вещественных чисел, искренне считает, что это глюк компилятора. И на поиск обходного (обычно очень некрасивого) пути тратит кучу времени, вместо того, чтобы дальше писать программу.

Я уже говорил - максимум сутки тратит и на всю жизнь. А вы на изучение тратите больше.

>Мне 27 лет. Я уже старый?

Непонятно тогда, почему ты со мной споришь.

>У, как всё запущено... Да хотя бы проверка грамматики, тезарус - для их реализации нужно знать, как правильно реализовать сортировку и поиск по отсортированному массиву. Т.е. Кнута знать надо. И такого в Word"e наберётся ещё немало.

Так, грамматика. Где ассемблер? Где плавающая запятая?
Чтобы реализовать грамматику - нужно знать эту грамматику, нужно иметь хороший словарь (Зализняк устарел да и ошибок в нём куча). Нужно это и умение работать именно с циклами, именно с классами, знать алгоритмы (я не против них, об этом я говорил в предыдущих постах). При проверки грамматики меньше всего надо думать о том, что ты работаешь в ОС (т.е. API не нужен).

Теперь такой ньанс. Говоришь, что нужна сортировка? Пожалуйста, простоейший способ - сранил и переставил. Никаких пузырьков или с середины. И я тебе отвечаю - какой бы ни был алгоритм сортировки, на компе с 5 Гц ты нажмёшь кнопку "Проверить" и уже в следующее мгновение у тебя всё проверит.

>А что значит "написать свой ускоритель"? Для каждой видеокарты? Так это нереально - разработчики видеокарт далеко не всегда делятся своими секретами. Да и что делать с видеокартами, которые появятся позже? Вот и приходится использовать открытый интерфейс, который поддерживается драйвером видеократы. Таких интерфейсов два: Direct3D и OpenGL. Из них Direct3D, кстати, более низкоуровневый.

Они молодцы, они экономят своё время. Они именно это и делают.

>А вообще, Direct3D - это ещё не 3D-движок. Если тупо пытаться выводить через Direct3D все объекты, которые присутствуют на сцене, то картинка, конечно, получится красивая, но FPS будет просто смешным. Значит - программное отсечение невидимых полигонов, а это опять - алгоритмы быстрой сортировки, выборки и т.п.

Да, так делали. Просчитывали, что видно из данной комнаты, остальное не рисовали. Но вы видели видеозапись Half-life 2 или Doom 3? Комнаты забыти, мир динамичен, разрушить можно всё. Такое бы в прежнее время не написали, потому что компы были слабые. Да и мои доводы в прежнее время были бы беспочвенны. Сейчас - иначе.

Эти игры нового поколения стремятся к реальности. Как можно делать что-то большее всегда начиная с основы. Зачем строить пирамиды, когда можно достроить?


 
eukar   (2004-07-23 16:41) [223]


> >Мне 27 лет. Я уже старый?
>
> Непонятно тогда, почему ты со мной споришь.


Может, не в возрасте дело, а в содержании постов?


 
Огромное Кулясищще ©   (2004-07-23 16:42) [224]

2 Anatoly Podgoretsky:

>Как мне поинится решения таких проблем выливается далеко не в один день, даже если не трепаться, а итог один, вы ламеры и ничего не понимаете в запятой.

Точно так же можно и про вас сказать, что вы ламеры, ничего не понимаете в передаче магнитного сигнала кристалику процессора. Ва сэто трогает?


 
Anatoly Podgoretsky ©   (2004-07-23 16:50) [225]

Меня не трогает, поскольку я знаю, что я знаю и что я не знаю. И я не буду тратить время на изучение не нужно, ограничусь основами, что бы потом при необходимости можно было изучить.


 
Суслик ©   (2004-07-23 16:57) [226]

Спор какой-то дурацкий:
1) редко кто-то признает свои ошибки и недостатки.
2) если лень читать ненужную в текущий момент литературу, но теоретически полезную в точки зрения образования - то это порок, лень.
3) если прочел много-много лишнего и в явном виде это не пригождается - то это (возможно) ошибка.

теперь см. 1) и по новой...
дашь еще постов 100-200...


 
Огромное Кулясищще ©   (2004-07-23 16:59) [227]

>Меня не трогает, поскольку я знаю, что я знаю и что я не знаю. И я не буду тратить время на изучение не нужно, ограничусь основами, что бы потом при необходимости можно было изучить.

Анатолий! Всё, что вы сказали - это истина. Да, я так и буду жить и учиться. Именно об этом я и говорил. Я же знаю, что есть ассемблер, что это низкоуровневый язык. Но он мне не нужен сейчас и, как я полагаю, не будет нужен при решении болшого количества задач - и я не буду его изучать. И пускай ЮЗ не советует.


 
Anatoly Podgoretsky ©   (2004-07-23 17:04) [228]

Просто объем знаний просто гигантский, даже общее представление только по технологиям очень много. Надо просто знать общие вещи и подробно изучать при необходимости. Это не относится к базовым знания, это просто обязательная необходимость. Правда и без знания основ трудно понять даже базисы.
Вот я изучал АДА и APL сейчас уже не помню, зато знаю для чего они, что могут решать и если потребуется то освою в кратчайшии сроки и также знание базисов остальных языков позволит выбрать нужный для решения и освоения, не тратя много времени на поиски. И еще более важно это при выборе технологии. Иначе будут большие потери времени или хуже.
Зато уж с чем работаешь надо знать очень уверено, что бы решения приходили на автомате, на основе шаблонов и знаний.


 
Огромное Кулясищще ©   (2004-07-23 17:07) [229]

2 Григорьев Антон:

Ещё такая тема. Вот смотрите. Вы по Кнуту применили быстрый алгоритм сортировки, который сортирует с середины. Я применил простой перебор и обмен местами при сравнении. Надеюсь, вы согласны, что не так много времени выйграли на сравнительно быстрой машине. Т.е. и у меня, и у вас, нормально работающая программа.

Теперь допустим понадобилось изменить алгоритм каким-либо образом, так, чтобы какая-то нестандартная ситуация обрабатывалась. Кто теперь исправит программу быстрее? Вы, у которого два цикла, куча сравнений и кода, или я - с одним циклом и одним сравнением? Через минуту я откомпилирую свою программу, через 5 - вы свою. И снова ваша программа лишь на пару миллисекунд будет быстрее. А за те 4 минуты разницы я успею сгонять в магазин за пивом.

Точно такая же ситация с 3d-играми. В ходе оптимизации до того заоптимизировались, что пришли в тупик - невозможно было малым кодом сделать так, что мир стал динамическим. Всё пришлось переписывать заново. В STALKER"к тени вновь генерируются рейтрейсингом - просто, красиво, но медленно.


 
Юрий Зотов ©   (2004-07-23 17:07) [230]

> Огромное Кулясищще ©   (23.07.04 16:15) [215]

> Думаю, вы согласитесь, что при моём подходе есть экономия
> времени.

Есть. Только это подход паразита, Вы не находите? Скажите, Вам нравится быть паразитом?

И еще - Вы бы уж хотя бы постеснялись спорить с темы самыми людьми, на которых и паразитируете. Да и невыгодно это Вам - вдруг они обидятся и перстанут писать статьи про floating-point? Что Вы тогда делать будете?

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

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


 
Огромное Кулясищще ©   (2004-07-23 17:10) [231]

>Просто объем знаний просто гигантский, даже общее представление только по технологиям очень много. Надо просто знать общие вещи и подробно изучать при необходимости. Это не относится к базовым знания, это просто обязательная необходимость. Правда и без знания основ трудно понять даже базисы.
Вот я изучал АДА и APL сейчас уже не помню, зато знаю для чего они, что могут решать и если потребуется то освою в кратчайшии сроки и также знание базисов остальных языков позволит выбрать нужный для решения и освоения, не тратя много времени на поиски. И еще более важно это при выборе технологии. Иначе будут большие потери времени или хуже.
Зато уж с чем работаешь надо знать очень уверено, что бы решения приходили на автомате, на основе шаблонов и знаний.


Я с вами согласен. Ваш подход - реальный.

Вот рассудите меня. Я знаю, что в книге Кнута да и не в ней есть разные алгоритмы сортировки. Но пока судьба не сталкивала с необходимостью быстрой сортировки больших массив. Но я знаю, что есть варианты, знаю, где искать, но не стремлюсь, так как у меня млао времени и книга очень дорогая. Скажите - я правильно поступаю?


 
Огромное Кулясищще ©   (2004-07-23 17:13) [232]

>Юрий Зотов © (23.07.04 17:07) [230]

Вы употребляете "знать" и "уметь" по отношению ко всему. Но вы не правы. С некоторого момента X (скажем, с ООП) эти программисты-паразиты знают ровно столько же.


 
ИдиотЪ   (2004-07-23 17:15) [233]

Огромное Кулясищще ©  
с чего бы это они знают столько ?
Те, на ком паразитируют, тоже на месте не стоят, тем более знают где искать, тропы протаптывают, а не сзади плетутся


 
Юрий Зотов ©   (2004-07-23 17:18) [234]

> Огромное Кулясищще ©   (23.07.04 17:13) [232]

> С некоторого момента X (скажем, с ООП) эти программисты-
> паразиты знают ровно столько же.

Гы! Загляните на тематические форумы. "Столько же"! Самому не смешно?


 
Anatoly Podgoretsky ©   (2004-07-23 17:19) [235]

Огромное Кулясищще ©   (23.07.04 17:10) [231]
Кнута я прочил, в бумажном варианте первые два том, до сих пор помню и не желею, хотя по тем задачам мог бы и не читать, зато он дал мне большой запас на будущее. Зато читать что либо про интефейс среды и описание компонент как правило не буду, для этого существует справка, где я буду просматривать только узкий кусок и где как правило достаточно прочитать про противопоказания и узкие места в комментарии если они есть.
Новый язык читаю концепцию, смотрю ключевые слова и смотрю примеры на предмет понял ли я его или нет или требуется дополнительное чтение.


 
VMcL ©   (2004-07-23 17:20) [236]

>>Огромное Кулясищще ©  (23.07.04 16:38) [222]

>а компе с 5 Гц ты нажмёшь кнопку "Проверить" и уже в следующее мгновение у тебя всё проверит.

1. Да уж, 5 Гц - это ультрасовременный компьютер :)

2. Мгновение, говоришь? А ну-ка запуздырь в тот же достаточно профессионально написанный MS Word текстовый документ объемом несколько мегабайт и понаблюдай "мгновение".

3. В данный момент самое узкое место не процессор, а: ОЗУ, HDD, шины данных и т. д. В то время, как процессор работает на частоте несколько ГГц, шина памяти ну от силы на ~0.5 ГГц.


 
Суслик ©   (2004-07-23 17:21) [237]


> Вот рассудите меня. Я знаю, что в книге Кнута да и не в
> ней есть разные алгоритмы сортировки. Но пока судьба не
> сталкивала с необходимостью быстрой сортировки больших массив.
> Но я знаю, что есть варианты, знаю, где искать, но не стремлюсь,
> так как у меня млао времени и книга очень дорогая. Скажите
> - я правильно поступаю?

правильно, потому как и я так поступаю. :))
и паразитом, заметьте себя не считаю. Знаете слово "кнут", все - найдете когда нужно будет.

Юрию
----
Паразит, паразиту рознь. Есть интерес, а есть дело. Недавно я спрашивал про runtime и designtime компоненты. Вы на меня потратили минут 5. Я все сделал. Все ок. Я вам очень благодарен. Но! Я не чую себя паразитом, т.к. эта тема мне совершенно не интересна. Ну просто совсем. Я не виноват:)) Нужно было сделать, с вашей помошью я сделал.

ОДним словом - паразит, это когда живешь таким образом постоянно. Если же один раз использовал чьи-то знания, так ведь это даже хорошо - говорит о прогрессе человечества! Не надо очередной раз изобретать велик.

А отделеление паразита от тонкой,ранимой,перспективной но пока туповатой личности и принятие решения отвечать/неотвечать - это уже ваша забота. Я, например, перестал всем подряд разбазаривать свои знанния. Т.е. не нравится общаться с паразитами - не общайтесь именно с ними :))


 
calm ©   (2004-07-23 17:24) [238]

Говоришь, что нужна сортировка? Пожалуйста, простоейший способ - сранил и переставил. Никаких пузырьков или с середины. И я тебе отвечаю - какой бы ни был алгоритм сортировки, на компе с 5 Гц ты нажмёшь кнопку "Проверить" и уже в следующее мгновение у тебя всё проверит.

Бред.
Все классно, когда у тебя локальная прога с одим юзерком. А когда серверная с 500 пользователями, тогда другой расклад.

Скажи, Кулясище, еще что глупо изучать анализ плана выполнения SQL-запросов к базе.
Я вот не изучал, не осознавал необходимости да время опять же...
Сделали intranet-сайт для служебного пользования. Со временем объемы инфы стали передаваться в порядки больше, чем по первости - данных больше стало и юзеров прибавилось. И понял я, что план запроса у меня хреновый. А чтобы был рациональнее, понадобилось изрядно поменять структуру БД и скрипты соответственно.
Вникаешь в случай из реальной жизни?
Так что занимаешься БД - знай ДОСКОНАЛЬНО.

Впрочем, все равно жизнь тебя научит.


 
VMcL ©   (2004-07-23 17:25) [239]

>>VMcL ©  (23.07.04 17:20) [236]

>ну от силы на ~0.5 ГГц.

Загнул. Даже 0.2 ГГц (если не учитывать AMD64).


 
Юрий Зотов ©   (2004-07-23 17:27) [240]

> ОДним словом - паразит, это когда живешь таким образом
> постоянно

Применительно к сабжу я бы сказал даже так: "Паразит - это образ жизни". И, учитывая, что под такой образ жизни еще и пытаются подвести базу, добавил бы: "А паразитизм - это мировоззрение".


 
Суслик ©   (2004-07-23 17:28) [241]


> calm ©   (23.07.04 17:24) [238]

Для оптимизации есть специальные люди.
Ты, прикладной программист, пишешь суть запроса.
Он, спец, оптимизирует строго формально.

Другой вопрос, когда ты, прикладной программист (в данном контекстве скорее ламер), запуздырил такую структруру, что он,спец, ничего не может сделать. Это особый разговор.

Но вот знать планы запросов для прикладного программиста считаю не надо. Мы так работаем успешно не первый год. Все равно так зинасиловать запрос как это делает на Санек я не смогу. Мне надо несколько лет, заметьте не на чтение доки (books online я все читал), а на эксперитменты. Зачем? Есть он. Зато он не знает много, чего знаю я, зато я знаю, что есть он. В общем - все в порядке вещей - конвейер. :))))


 
Суслик ©   (2004-07-23 17:29) [242]


> Юрий Зотов ©   (23.07.04 17:27) [240]

Ну вы согласны, что если иногда спрашиваешь Юрия Зотова о чем-то в чем тот хорошо разбирается, то это еще не паразитизм?


 
Юрий Зотов ©   (2004-07-23 17:33) [243]

> Суслик ©   (23.07.04 17:29) [242]

Дима, да бросьте Вы самоедством заниматься. Нет, естественно. Вы думаете, я никогда никому вопросов не задавал, что ли?


 
ИдиотЪ   (2004-07-23 17:36) [244]

Суслик ©  
хочешь сказать, админы должны потом репу чесать, а че за проблемы с базой
или мож прикрепить к каждому специалисту по специалисту-оптимизатору?


 
Sandman25 ©   (2004-07-23 17:38) [245]

[244] ИдиотЪ   (23.07.04 17:36)

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


 
Григорьев Антон ©   (2004-07-23 17:38) [246]


> Anatoly Podgoretsky ©   (23.07.04 17:04) [228]
> Просто объем знаний просто гигантский, даже общее представление
> только по технологиям очень много. Надо просто знать общие
> вещи и подробно изучать при необходимости. Это не относится
> к базовым знания, это просто обязательная необходимость.
> Правда и без знания основ трудно понять даже базисы.
> Вот я изучал АДА и APL сейчас уже не помню, зато знаю для
> чего они, что могут решать и если потребуется то освою в
> кратчайшии сроки и также знание базисов остальных языков
> позволит выбрать нужный для решения и освоения, не тратя
> много времени на поиски. И еще более важно это при выборе
> технологии. Иначе будут большие потери времени или хуже.
> Зато уж с чем работаешь надо знать очень уверено, что бы
> решения приходили на автомате, на основе шаблонов и знаний.


А по какому случаю вы изучали Аду? Просто меня в своё время заинтересовал этот язык, но я не нашёл никого, кто его реально использовал бы.

А по сути высказывания - совершенно согласен. После того как я стал не только изучать Delphi, но и читать книги, в которых обзорно рассматриваются самые разные языки программирования (включая ту же Аду и APL), я хорошо почувствовал, насколько шире я стал смотреть на практические задачи. Сам факт знания того, какая существует альтернатива тому, что я использую на практике, даёт какую-то гибкость мышления, позволяет не зацикливаться на существующих шаблонах. Это трудно выразить такими же ясными словами, как позицию "раз на практике не надо, то не буду тратить время". И я не знаю, как объяснить это тому, кто сам это ещё не почувствовал. Но сомневаться в полезности общетеоретической подготовки лично мне не приходится.


 
Суслик ©   (2004-07-23 17:39) [247]


> ИдиотЪ   (23.07.04 17:36) [244]

У нас есть набор программистов клиент+stored proc. Люди из этого набора (я например) обладают нормальными знаниями того и другого. Под нормальность понимается человеческое отношгение к серверу. Есть некий дядя (один), который чисто формально, не зная логики запроса (вернее все что он знает о запросе - это его код) он его оптимизирует. Часть перестраивая все на фиг.


 
Anatoly Podgoretsky ©   (2004-07-23 17:40) [248]

VMcL ©   (23.07.04 17:25) [239]
DDR 400*8=3200 + 3200 если есть второй канал памяти, но это только на чтение на запись 400*4
Это подтверждается тестами. Частота же типового процессора в 8 раз больше, вот где основной тормоз. Ситуацию могли бы спасти процессоры с гигантскими кешами 32 мб и более, или более широкие шины. Вот в выходом модели Prescott у Интела опять появилась возможно значительно ускорить работу, посколько ширина шины кэша 256 бит, вместо 128 у предыдущей модели, а это можно сделать с помощью 4 канальной памяти или разработки более широких модулей.


 
Суслик ©   (2004-07-23 17:41) [249]

Антон.

> даёт какую-то гибкость мышления, позволяет не зацикливаться
> на существующих шаблонах

А может оно иногда лишнее?

Часто замечал, что ту работу которую можешь сделать за час и забыть про нее на долгие годы (и продолжить делать то, что интересно в настоящий момент) делаешь день, зато гиииибко. Жуть.


 
Григорьев Антон ©   (2004-07-23 17:42) [250]


> Юрий Зотов ©   (23.07.04 17:27) [240]
> > ОДним словом - паразит, это когда живешь таким образом
> > постоянно
>
> Применительно к сабжу я бы сказал даже так: "Паразит - это
> образ жизни". И, учитывая, что под такой образ жизни еще
> и пытаются подвести базу, добавил бы: "А паразитизм - это
> мировоззрение".


Лёгкий оффтопик :))

Припомадясь и прикрасясь,
Эту гадость вливши в стих,
Хочет он марксистский базис
Под жакетку подвести.

(с) Маяковский.

Просто музыка навеяла...


 
Григорьев Антон ©   (2004-07-23 17:47) [251]


> Суслик ©   (23.07.04 17:41) [249]
> Антон.
>
> > даёт какую-то гибкость мышления, позволяет не зацикливаться
>
> > на существующих шаблонах
>
> А может оно иногда лишнее?
>
> Часто замечал, что ту работу которую можешь сделать за час
> и забыть про нее на долгие годы (и продолжить делать то,
> что интересно в настоящий момент) делаешь день, зато гиииибко.
> Жуть.


Интересно решать, конечно же, сложные задачи. А для сортировки массива из ста элементов я тоже не буду quicksort реализовывать, а возьму чего попроще. А вообще, я говорил не о гибкой реализации, а о гибком мышлении, позволяющием придумывать нестандартные решения. Разные это вещи.


 
Юрий Зотов ©   (2004-07-23 17:48) [252]

> VMcL ©   (23.07.04 17:20) [236]

> Мгновение, говоришь?

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


 
Anatoly Podgoretsky ©   (2004-07-23 17:50) [253]

Григорьев Антон ©   (23.07.04 17:38) [246]
Просто так, до того как стал профессональным программистом, для расширения кругозора, нельзя же иметь широкий, если знаешь только один язык, надо или знать другие или хотя бы иметь довольно широкое представление о других, достаточное, что бы понимать простой код.

Пример [248] демонстрирует, что вроде бы эти знания ни программисту, ни системному администратору вроде бы прямо не нужны, но зато эти знания позволяют мне выбрать машину и учитывать архитектуру даже при написании на языках высокого уровня, при выборе структуры данных, при написании вставок на ассемблере знание моделей процессора позволяет избежать использование не эффективных инструкций, которые выглядят привлекательно, а на самом деле очень медленные. В тоже время я не буду читать без особой нужды талмуд Интела по оптимизации, не те задачи и общих знаний хватит, что бы сделать процентов на 90-95 оптимальный выбор. А пока я этим не задумался, то удивлялся почему старый максимально оптимальный код, который очень хорошо работал на 86-486 плохо вел себя на пентиумах, особенно последних моделях. Кстати тоже самое сейчас происходит и на Прескот, то что хорошо работало на П3 стало плохо на Прескоте и наоборот.


 
Anatoly Podgoretsky ©   (2004-07-23 17:52) [254]

Григорьев Антон ©   (23.07.04 17:47) [251]
Поддерживаю мысль.


 
Суслик ©   (2004-07-23 17:54) [255]

В поддтверждение поста

> Юрий Зотов ©   (23.07.04 17:48) [252]


Когдя я был маленький лет 9-10, xt (или еще нет, не помню:))), басик - ну в общем совсем был начинающий. Один дядя (думаю примерно такого же возраста как Юрий, и такой же любитель педагогики) сказал - а вот посчитай сумму чисел от 1 до 10. Я сфорганил цикл. Он говорит, а до 100? Поменял константу. А до 10000? Опять поменял - опаньки - еле дождался конца:)))

А он говорит "А я быстрее" (как в мультике про кроликов и лиса). Задумался и говорит - столько-то. И точно!!! Он был прав.

Я неделю думал как такое может быть:)))


 
VMcL ©   (2004-07-23 17:58) [256]

>>Anatoly Podgoretsky ©  (23.07.04 17:40) [248]

Я очепятался. В том случае я имел в виду FSB.

>DDR 400*8=3200

Откуда взялось число 8?

P.S. AFAIK, все эти множители по типу 133 DDR -> 266 MHz явл. теретическими. На практике прирост в производительности памяти меньше, чем на половину. Хотя я могу и ошибаться. Давно на хардварные сайты не ходил.


 
Огромное Кулясищще ©   (2004-07-23 17:58) [257]

2 Юрий Зотов:

По повожу паразита. Скажем, если вопрос про проблему с числами с плавающей запятой возникнет, то ответ "Это не глюк, по-другому нельзя. Старайся обойти. Вот, как я сделал: заметл тут пэ на мэ и всё пашет" будет гораздо практичней, чем то, что вы себе представили. Никакого паразитизма. А статьи всегда будут, точне будут книги. Авторы получают за них деньги. Кстати, вот вам заработок.


 
Григорьев Антон ©   (2004-07-23 18:08) [258]


> Огромное Кулясищще ©   (23.07.04 17:58) [257]
> А статьи всегда будут, точне будут книги. Авторы получают
> за них деньги.


За свою статью "Неочевидные особенности вещественных чисел", равно как и за другие статьи, опубликованные на программистских сайтах, я ни копейки не получил. И за свои ответы в конференциях тоже. Думаю, подавляющее большинство авторов статей и ответов скажет о себе то же самое.


 
Юрий Зотов ©   (2004-07-23 18:36) [259]

> Огромное Кулясищще ©   (23.07.04 17:58) [257]

> Скажем, если вопрос про проблему с числами с плавающей запятой
> возникнет, то ответ "Это не глюк, по-другому нельзя. Старайся
> обойти. Вот, как я сделал: заметл тут пэ на мэ и всё пашет"
> будет гораздо практичней, чем то, что вы себе представили.

Нет. Не будет такой ответ практичнее. Хуже того - он может и совсем не помочь, и даже может ухудшить ситуацию. С floating-point не существует стандартных готовых рецептов на все случаи жизни. И то, что было хорошим в одном месте, запросто может оказаться плохим в другом. Я уже приводил пример, когда замена Double на Extended способна, как это ни странно, даже ухудшить точность расчета. И ничего Вы не сможете сделать с плохо обусловленной численно задачей, если не разбираетесь в этих вопросах по-настоящему, а не на уровне "друган пасаветывал заменить, в натуре, пэ на мэ, кароче".

Боюсь, Вы все же не прочли статью Антона до конца - там ведь есть заключение, в котором все это уже сказано. Поэтому приходиться повторять. Да и - неужто Вы полагаете, что Антон в статье изложил все проблемы численных расчетов? На такие проблемы толстенные книги существуют.

> А статьи всегда будут, точне будут книги. Авторы получают за
> них деньги.

ОК. Вот прямо сейчас найдите и скажите - в каком Интернет-магазине я могу купить книгу, в которой изложено все то, о чем писал Антон? (и, желательно, еще то, о чем он не написал).

Думаю, не найдете. Нет сейчас таких. Раньше были, а сейчас нет. По крупицам собирать надо. Вот давайте спросим у Антона - как он собирал информацию для статьи?

Так что не положат Вам на блюдечке волшебную книжку "про все". Не ждите. Лучше ждите, когда Антон все раскопает и напишет статью. Правда, вот тогда-то Вы автоматически и окажетесь в отстающих.

Что поделаешь - какое мировоззрение, таков и образ жизни.


 
KosilkA ©   (2004-07-23 19:01) [260]


> Глядя на константу WS_EX_TOPMOST: А какие ещё бывают? И
> так далее...
> В результате приходится сутками рыться в интернете и справочниках
> в поисках подробностей.

а не судьба нажать ctrl и кликнуть по этому самому WS_EX_TOPMOST? Думаю , есть некоторый шанс увидеть то ,какие еще бывают =))))

>        Завалим толпою этого зверюгу - Delphi!

правильно , даешь комментарий к каждой строчке =)) гы.. а на самом деле идея не стоит и выеденного яйса =))


 
Anatoly Podgoretsky ©   (2004-07-23 20:02) [261]

VMcL ©   (23.07.04 17:58) [256]
Ширина шины памяти 64 бита, ширина шины кэша 128 (Prescot 256)
отсюда 3200 = 400 * 8 и умножить на два если память двухканальная.


 
Черный дембель   (2004-07-23 20:56) [262]

И где только народ время находит читать и перечитывать форум и сколько времени на работу остается? :)
Вам всем хорошо © (Операция с новым годом)


 
GrayFace ©   (2004-07-23 21:15) [263]

> >Мне 27 лет. Я уже старый?
>
> Непонятно тогда, почему ты со мной споришь.
А мне 17 только что исполнилось (15 июля), но я так же спорил бы, если б не проговорили все это столько раз, что уже столько всего нападало !... Скажу вкратце.

>Точно такая же ситация с 3d-играми.
Их необходимо оптимизировать. Если оптимизация приводит к сложности изменения, то, имхо, руки кривые.

>Впрочем, все равно жизнь тебя научит.
Сомниваюсь. Если у человека нет желания сделать все красиво, то оно вряд ли появится.

Дайте ссылку на "Неочевидные особенности вещественных чисел", а то поиска в статьях я че-то не вижу.

Юрий Зотов
Вот. 3.5 часа. Только за безглючность не отвечаю - надо еще попроверять. Обработку ошибок не сделал, не ее легко будет прикрутить через exeption"ы.

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Button1: TButton;
   Edit2: TEdit;
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

type TOperator=function(v1,v2:extended):extended;
    POperator=^TOperator;
    TFunction=function(v:extended):extended;
    PFunction=^TFunction;

    TFunc=record
      f:PFunction;
      name:string;
    end;
    TOper=record
      f:POperator;
      name:string;
      prior:integer;
    end;

function Mul(v1,v2:extended):extended;
begin
 Result:=v1*v2;
end;

function Div1(v1,v2:extended):extended;
begin
 Result:=v1/v2;
end;

function Add(v1,v2:extended):extended;
begin
 Result:=v1+v2;
end;

function Dec(v1,v2:extended):extended;
begin
 Result:=v1-v2;
end;

function Sin1(v:extended):extended;
begin
 Result:=sin(v);
end;

const opers:array[0..3] of TOper=((f:@Add; name:"+"; Prior:10),(f:@dec; name:"-"; prior:10),(f:@Mul; name:"*"; prior:20),(f:@Div1; name:"/"; prior:20));
     funcs:array[0..0] of TFunc=((f:@sin1; name:"sin"));

var OpMul:TOper;

function IsDigit(c:char):byte;
begin
 if (c=".") or (c="e") or (c="E") or ((ord(c)>=$30) and (ord(c)<=$39))
 then result:=1 else if (c="-") or (c=" ") then Result:=2 else Result:=0;
end;

function DoString(From,Tom:PChar):string;
begin
 SetLength(Result,integer(tom)-integer(from)+1);
 CopyMemory(@Result[1],from,integer(tom)-integer(from)+1);
end;

function cmp(const s:string; p2:PChar):boolean;
var p1:PChar; i:integer;
begin
 p1:=PChar(s);
 Result:=true;
 while p1^<>#0 do
  if p1^<>p2^ then
 begin
   Result:=false;
   exit;
 end else
 begin
   inc(p1);
   inc(p2);
 end;
end;

function GetOper(var s:PChar; sep:Char; prior:integer; var done:byte; v1:extended):extended; forward;
{----------------------------------------------}

function GetValue(var s:PChar; sep:Char; prior:integer; var done:byte):extended;
var s1:string; i:integer; fu:TFunction; Len:integer; from,tom:PChar;
   dn:byte; step:integer;
begin
 try
   while s^=" " do inc(s);
   if s^="(" then
   begin
     inc(s);
     dn:=0;
     Result:=GetValue(s,")",-MaxInt,dn);
     exit;
   end;
   if s^="-" then
   begin
     inc(s);
     dn:=0;
     Result:=-GetValue(s,sep,MaxInt,dn);
     exit;
   end;
   len:=0;
   for i:=low(Funcs) to high(Funcs) do
   begin
     if (length(Funcs[i].name)>len) and (Funcs[i].name=s) then
     begin
       fu:=TFunction(Funcs[i].f);
       len:=length(Funcs[i].name);
     end;
   end;
   if len<>0 then
   begin
     dn:=0;
     Result:=fu(GetValue(s,sep,MaxInt,dn));
   end;
   from:=s;
   tom:=nil;
   step:=0;
   while true do
   begin
     if IsDigit(s^)=0 then break;
     if (s^="e") or (s^="E") then if step=0 then step:=1 else break;
     if (s^="-") then if step=1 then inc(step) else break;
     if IsDigit(s^)=1 then tom:=s;
     inc(s);
   end;
   if tom=nil then
   begin
     //raise
     exit;
   end;
   s1:=DoString(from,tom);
   Result:=StrToFloat(s1);
 finally
   dn:=0;
   while dn=0 do
   begin
     Result:=GetOper(s,sep,prior,dn,Result);
   end;
   if dn=2 then done:=2 else done:=0;
 end;
end;

function GetOper(var s:PChar; sep:Char; prior:integer; var done:byte; v1:extended):extended;
var i:integer; op:TOper; Len:integer;
begin
 while s^=" " do inc(s);
 len:=0;
 if (s^=sep) or (s^=#0) then
 begin
   inc(s);
   done:=2;
   Result:=v1;
   exit;
 end;
 for i:=low(opers) to high(opers) do
 begin
   if (length(Opers[i].name)>len) and cmp(Opers[i].name,s) then
   begin
     op:=Opers[i];
     len:=length(Opers[i].name);
   end;
 end;
 if Len=0 then op:=OpMul;
 if op.prior>=prior then
 begin
   if Len<>0 then inc(s);
   Result:=TOperator(op.f)(v1,GetValue(s,sep,op.prior,done))
 end else
 begin
   Result:=v1;
   done:=1;
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 OpMul:=opers[2];
end;

procedure TForm1.Button1Click(Sender: TObject);
var b:byte; p:PChar;
begin
 b:=0;
 p:=PChar(Edit1.text);
 Edit2.Text:=FloatToStr(GetValue(p,#0,-MaxInt,b));
end;

end.


 
}|{yk ©   (2004-07-23 21:47) [264]

Я бы за одни Edit2,Edit1 поубивал бы...
Лучше бы ты поток данных анализировал, или сложно ?


 
Огромное Кулясищще ©   (2004-07-23 22:09) [265]

>Их необходимо оптимизировать. Если оптимизация приводит к сложности изменения, то, имхо, руки кривые.

Пардон, пардон. Тень от объекта создавалась полигоном. По нынешним меркам - некрасиво, нединамично. Нужно рейтрейсингом -  так это всю тень заново писать, да ещё и старую удалять (выдирать). Поделили уровни на секторы. Отпала необходимость, но их же так просто не соединишь. А ведь это всё - оптимизация.


 
Денис   (2004-07-24 05:56) [266]


> Юрий Зотов ©   (23.07.04 17:27) [240]
>
> Применительно к сабжу я бы сказал даже так: "Паразит - это
> образ жизни". И, учитывая, что под такой образ жизни еще
> и пытаются подвести базу, добавил бы: "А паразитизм - это
> мировоззрение".

Не очень то Вы сильны в Биологии, знаток паразитизма!
Применительно к сабжу совершенно другое понятие - СИМБИОЗ.
Выглядеть может похоже, для пристрастного наблюдателя,
а разница - принципиальная.

А вообще, вас послушать, так нужно срочно форумы позакрывать, и статьи поотменять во имя полного искоренения Паразитизма из наших рядов!
Кстати, учебники пожечь и школы порушить - это уж само собой...
Разве кто учился не по чужим книгам?
Паразитиз, да и только!


 
Думкин ©   (2004-07-24 06:19) [267]

Насчет сортировки и отличия вдоли секунды.
Создается массив строк размером- ну хотя бы 100000. Безусловно не сортированный изначально. И сортируем их - пузырьком и быстрой.
Я думаю, все вопросы после рализации отпадают сами собой. Если вторая приемлемо будет работать на слабыхмашинах, то окончание первой можно ждать ну очень долго даже на хороших машинах.

> [246] Григорьев Антон ©   (23.07.04 17:38)
Ада - одна из рабочих лошадок Пентагона, детище однако.


 
GrayFace ©   (2004-07-24 09:42) [268]

>}|{yk ©   (23.07.04 21:47) [264]
>Я бы за одни Edit2,Edit1 поубивал бы...
>Лучше бы ты поток данных анализировал, или сложно ?
Зачем? Для счета выражений из файла? Вообще-то это писалось с целью быстро сделать алгоритм и выложить его.


 
Григорьев Антон ©   (2004-07-24 09:49) [269]


> GrayFace ©   (23.07.04 21:15) [263]
> Дайте ссылку на "Неочевидные особенности вещественных чисел",
> а то поиска в статьях я че-то не вижу.


Она вообще на другом сайте лежит :))
http://www.delphikingdom.com/asp/viewitem.asp?catalogid=374


> Вот. 3.5 часа.


А теперь, ради интереса, сравните с анализатором, построенным на базе той самой теории, о которой говорил Юрий:

http://www.delphikingdom.com/treasury/s003.htm#link7

Кстати, алгоритм, приведённый там, достаточно универсален. Его можно использовать не только для вычисления выражений, но и везде, где нужен синтаксический разбор выражения. Посмотрите, например, http://www.delphikingdom.com/asp/viewitem.asp?catalogid=718 - тот же самый алгоритм реализован в модуле ExprMake.

> Думкин ©   (24.07.04 06:19) [267]
> Ада - одна из рабочих лошадок Пентагона, детище однако.


Да, я в курсе. Но меня интересуют те области применения Ады, куда я мог бы дотянуться, а работа в Пентагоне мне не светит.


> Денис   (24.07.04 05:56) [266]


Просто обучение - это ещё не есть паразитизм. Паразитизм - это когда ученик не хочет предпринимать никаких усилий для того, чтобы получить знания, и считает, что учитель обязан вложить их в него. Очень хороший пример паразитизма можно увидеть на странице http://www.delphikingdom.com/asp/answer.asp?IDAnswer=23431 Там некий Денис Орлов :)) задаёт вопросы, а если ответы недостаточно разжёваны для того, чтобы он мог проглотить их без усилий, то начинает откровенно хамить отвечающим. Ещё он там требует, чтобы специально для него написали статью о таком простом и неинтересном предмете как WinSigth32. Сам же Денис при этом не проявляет никакого напряжения мозгов. Когда, например, он видит два числа: 40045 и 40045Dh, он считает, что это одно и то же число. Ему и в голову не приходит задуматься о том, зачем во втором случае нужны два лишних символа "Dh". И, несмотря на своё собственное хамство, этот Денис крайне болезненно реагирует на ответную грубость, не понимая, что он же её и спровоцировал своим эгоистичным поведением. Это - настоящий паразитизм, и никаким симбиозом там и не пахнет.


 
GrayFace ©   (2004-07-24 09:58) [270]

Денис
Вот, кстати, и првые сорсы в твоей теме(не считая самых первых), хоть и без комментариев.

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

Итого: Теперь мы валим толпой Юрия Зотова и Огромное Кулясищще(самая что ни на есть зверюга, судя по нику).


 
Nous Mellon ©   (2004-07-24 10:22) [271]


> http://www.delphikingdom.com/asp/answer.asp?IDAnswer=23431
> Там некий Денис Орлов :))

:O Ужас! Антон, тебе времени не жаль?
> Итого: Теперь мы валим толпой Юрия Зотова и Огромное Кулясищще(самая
> что ни на есть зверюга, судя по нику).

Это ты то собрался Зотова валить? Хех.... Мал еще...


 
Думкин ©   (2004-07-24 11:51) [272]

> [269] Григорьев Антон ©   (24.07.04 09:49)

Я понимаю. :-) У нас вроде тоже применялось, правда жестких примеров привести здесь не могу. Но поискать можно, но ... конечно вряд ли это естественное использование.

А вот к сортировке еще одно тут придумалось. Предистория:
у нас был создан комп с такой же архиттектурой как П-166 ММХ, но вот молния шарахнула и он стал выполнять 1 Гугол станд. операций в секунду. шустрявый такой получился.
Вот Поступило задание от узнавших:
"Мы долгими усилиями получили в рез. экспериментов такое число: 12345678912345678912,1234567". Это было рез. очень длительных вычислений. У вас такой комп!!!. Можете ли вы дать ответ на такой вопрос:
есть функция дающая результат в диапазонеке от 1 до 2. ее вызывают 10^20 раз и результаты складывают с исхдным(данным вам) числом, на каждой итерации. Код функции прилагается. Можете ли вы сообщить результат?"

Теперь как вы видите решение человека не знающего много из того что "новая молодежь" списала на свалку?

Это надуманный пример. Но пепроблема зачастую встречается в реальности. Можно дать, да и что есть реальность?

А вот еще к вопросу сортировки, а если функция сравнения дорога во времени. То как организовать поиск в данных, ну если приемлимо будет, не во время поиска? Про Кнута не зря говорят.


 
Думкин ©   (2004-07-24 12:02) [273]

Имеется в виду что исходное число изменяется на каждой итерации на получаемую вличину, и на следующей итерации выступает именно измененное.


 
Юрий Зотов ©   (2004-07-24 13:13) [274]

> GrayFace ©   (23.07.04 21:15) [263]

> Только за безглючность не отвечаю - надо еще попроверять.

ОК. Я попроверял. Привожу пару глюков, найденных не более, чем за пару минут. Компилировал программу в D7 под XP Pro. Проверка результатов производилась с помощью стандартного калькулятора Windows.

Глюк № 1а.
Выражение: (2+1)*5/7*2
Ваш результат: 1.07142857142857
Правильный результат: 4.2857142857142857142857142857143
Причина: видимо, не обеспечена правильная последовательность выполнения операций с одинаковым приоритетом (по крайней мере, умножения и деления: похоже, что у Вас сначала выполняется 7*2, а уж потом - деление).

Глюк № 1б.
Выражение: 2/(7 - 2)*2
Ваш результат: 0.2
Правильный результат: 0.8
Причина: вероятно, та же самая, что и в глюке 1а - сначала выполняется 5*2, а уж потом - деление.

Глюк № 2.
Выражение: sin(любое_число) или Sin(любое_число)
Ваш результат: Stack overflow
Правильный результат: синус этого числа
Причина: видимо, бесконечная рекурсия.

Итак, за пару минут была обнаружена пара ПРИНЦИПИАЛЬНЫХ глюков. Дальше я тестировать не стал - нет смысла. Потому что достаточно уже и этого - любой из этих двух глюков сводит всю Вашу работу к абсолютному нулю, поскольку пользоваться такой программой просто нельзя. Совсем нельзя. Сорри, но пока что Вы родили еще одну "автосхему".

Делаем вывод - за 3,5 часа калькулятор не написан (поскольку то, что написано, калькулятором НЕ является). Значит, к этим 3,5 часам требуется дополнительное время. Если хотите доказать мне, себе и другим, что все-таки МОЖНО написать НОРМАЛЬНО работающий строчный калькулятор БЕЗ привлечения теории языков - что ж, дорабатывайте программу и будем вести учет СУММАРНОГО затраченного времени.

Хотите - пробуйте. Только уверяю Вас, что это совершенно бесполезно. БЕЗ теории языков ни Вы, ни кто-либо другой не напишет НОРМАЛЬНО работающий строчный калькулятор ни за 3,5 часа, ни за 3,5 года, ни даже за 3,5 жизни. Потому что сделать это невозможно В ПРИНЦИПЕ - до тех пор, пока не будет привлечена теория, ВСЕГДА найдется выражение, которое такой калькулятор правильно распознать и вычислить не сможет.

А вот с теорией я напишу его примерно за пару дней. Причем он будет ГАРАНТИРОВАННО БЕЗГЛЮЧНО распознавать и вычислять ГАРАНТИРОВАННО ЛЮБОЕ выражение и выдавать ГАРАНТИРОВАННО ПОЛНУЮ и ГАРАНТИРОВАННО ТОЧНУЮ диагностику ошибок пользователя (слово "безглючно" здесь, естественно, означает "без ПРИНЦИПИАЛЬНЫХ глюков", а незначительные и устраняющиеся за пару минут мелкие ошибки кодинга, конечно, возможны в любой программе).

Почему я так смело и много раз пишу слово "ГАРАНТИРОВАННО"? Потому что знаю, что как раз теория все эти гарантии и обеспечит. Причем сама собой - мне даже не придется прилагать совершенно никаких дополнительных усилий.

Итак, есть 3 пути:

1. Можно потратить полжизни на написание программы БЕЗ теории, но все же ее НЕ написать.

2. Можно потратить несколько дней, недель или месяцев на изучение теории, а потом написать программу за пару дней (причем попутно научившись писать ЛЮБУЮ программу подобного класса - а таких совсем немало).

3. Теорию можно изучать "впрок" и без лишних затрат времени (в метро, в электричке и пр.), а потом, когда возникнет ЛЮБАЯ относящаяся к ней задача, СРАЗУ же решить ее за пару дней. Кстати, как раз вот этот путь я уже многие годы и использую.

Ну так что - Вы еще не убедились, хотите продолжить спор и будете пытаться доработать калькулятор? Или уже достаточно?


 
GrayFace ©   (2004-07-24 13:46) [275]

Вот. 5 минут правки + 5 минут - время, предположительно потраченное Вами на тестирование. Итого: 3 ч 45 мин (еще 5 минут - ошибра округления до 3,5 ч).

unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Button1: TButton;
   Edit2: TEdit;
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

type TOperator=function(v1,v2:extended):extended;
    POperator=^TOperator;
    TFunction=function(v:extended):extended;
    PFunction=^TFunction;

    TFunc=record
      f:PFunction;
      name:string;
    end;
    TOper=record
      f:POperator;
      name:string;
      prior:integer;
    end;

function Mul(v1,v2:extended):extended;
begin
 Result:=v1*v2;
end;

function Div1(v1,v2:extended):extended;
begin
 Result:=v1/v2;
end;

function Add(v1,v2:extended):extended;
begin
 Result:=v1+v2;
end;

function Dec(v1,v2:extended):extended;
begin
 Result:=v1-v2;
end;

function Sin1(v:extended):extended;
begin
 Result:=sin(v);
end;

const opers:array[0..3] of TOper=((f:@Add; name:"+"; Prior:10),(f:@dec; name:"-"; prior:10),(f:@Mul; name:"*"; prior:20),(f:@Div1; name:"/"; prior:20));
     funcs:array[0..0] of TFunc=((f:@sin1; name:"sin"));

var OpMul:TOper;

function IsDigit(c:char):byte;
begin
 if (c=".") or (c="e") or (c="E") or ((ord(c)>=$30) and (ord(c)<=$39))
 then result:=1 else if (c="-") or (c=" ") then Result:=2 else Result:=0;
end;

function DoString(From,Tom:PChar):string;
begin
 SetLength(Result,integer(tom)-integer(from)+1);
 CopyMemory(@Result[1],from,integer(tom)-integer(from)+1);
end;

function cmp(const s:string; p2:PChar):boolean;
var p1:PChar; i:integer;
begin
 p1:=PChar(s);
 Result:=true;
 while p1^<>#0 do
  if p1^<>p2^ then
 begin
   Result:=false;
   exit;
 end else
 begin
   inc(p1);
   inc(p2);
 end;
end;

function GetOper(var s:PChar; sep:Char; prior:integer; var done:byte; v1:extended):extended; forward;
{----------------------------------------------}

function GetValue(var s:PChar; sep:Char; prior:integer; var done:byte):extended;
var s1:string; i:integer; fu:TFunction; Len:integer; from,tom:PChar;
   dn:byte; step:integer;
begin
 try
   while s^=" " do inc(s);
   if s^="(" then
   begin
     inc(s);
     dn:=0;
     Result:=GetValue(s,")",-MaxInt,dn);
     exit;
   end;
   if s^="-" then
   begin
     inc(s);
     dn:=0;
     Result:=-GetValue(s,sep,MaxInt,dn);
     exit;
   end;
   len:=0;
   for i:=low(Funcs) to high(Funcs) do
   begin
     if (length(Funcs[i].name)>len) and (Funcs[i].name=s) then
     begin
       fu:=TFunction(Funcs[i].f);
       len:=length(Funcs[i].name);
     end;
   end;
   if len<>0 then
   begin
     dn:=0;
     Result:=fu(GetValue(s,sep,MaxInt,dn));
   end;
   from:=s;
   tom:=nil;
   step:=0;
   while true do
   begin
     if IsDigit(s^)=0 then break;
     if (s^="e") or (s^="E") then if step=0 then step:=1 else break;
     if (s^="-") then if step=1 then inc(step) else break;
     if IsDigit(s^)=1 then tom:=s;
     inc(s);
   end;
   if tom=nil then
   begin
     //raise
     exit;
   end;
   s1:=DoString(from,tom);
   Result:=StrToFloat(s1);
 finally
   dn:=0;
   while dn=0 do
   begin
     Result:=GetOper(s,sep,prior,dn,Result);
   end;
   if dn=2 then done:=2 else done:=0;
 end;
end;

function GetOper(var s:PChar; sep:Char; prior:integer; var done:byte; v1:extended):extended;
var i:integer; op:TOper; Len:integer;
begin
 while s^=" " do inc(s);
 len:=0;
 if (s^=sep) or (s^=#0) then
 begin
   inc(s);
   done:=2;
   Result:=v1;
   exit;
 end;
 for i:=low(opers) to high(opers) do
 begin
   if (length(Opers[i].name)>len) and cmp(Opers[i].name,s) then
   begin
     op:=Opers[i];
     len:=length(Opers[i].name);
   end;
 end;
 if Len=0 then op:=OpMul;
 if op.prior>prior then
 begin
   inc(s,Len);
   Result:=TOperator(op.f)(v1,GetValue(s,sep,op.prior,done))
 end else
 begin
   Result:=v1;
   done:=1;
 end;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
 OpMul:=opers[2];
end;

procedure TForm1.Button1Click(Sender: TObject);
var b:byte; p:PChar;
begin
 b:=0;
 p:=PChar(Edit1.text);
 Edit2.Text:=FloatToStr(GetValue(p,#0,-MaxInt,b));
end;

end.


 
GrayFace ©   (2004-07-24 13:56) [276]

ОЙ! Не смотрите это - оно совсем не верно.


 
GrayFace ©   (2004-07-24 14:05) [277]

ОЙ! ОЙ! И еще раз ОЙ! Это было верно!!!


 
Юрий Зотов ©   (2004-07-24 14:07) [278]

> GrayFace ©   (24.07.04 13:46) [275]

Выражение: sin(любое_число)
Результат: Invalid floating point operation

Выражение: (+7)/2*5-7
Результат: Invalid floating point operation

:о)


 
Anatoly Podgoretsky ©   (2004-07-24 14:19) [279]

И чего так и будешь до бесконечности кидать большие и кривые куски кода сюда?


 
GrayFace ©   (2004-07-24 14:38) [280]

Еще 10 мин. sin сделал, "+" - нет. Вот в чем проблема: при обращении сделал
 try
var b:byte; p:PChar; s:string;
begin
 b:=0;
 s:=Edit1.text;
 p:=PChar(s);
 Edit2.Text:=FloatToStr(GetValue(p,#0,-MaxInt,b));
 except
   on E: Exception do
   begin
     Edit1.SelStart:=integer(p)-integer(@s[1]);
     Edit1.SelLength:=0;
     Edit1.SetFocus;
     E.Message:=E.Message+" at offset "+IntToStr(Edit1.SelStart);
     raise;
   end;
 end;

Почему-то не работает: передаваемый по var параметр p не изменяется, Division by zero не ловится... В чем проблема?


 
}|{yk ©   (2004-07-24 14:44) [281]

Слушай, почитай умную книгу
Джулиан Бакнелл "Фундаментальные алгоритмы и структуры данных в Delphi"
Глава 10 "Конечные автоматы и регулярные выражения"
Тогда такой калькулятор быстро напишешь


 
GrayFace ©   (2004-07-24 14:50) [282]

У меня ее нет. Регулярные выражения мне уже не нужны для калькулятора. Почему Division by zero не ловится?


 
}|{yk ©   (2004-07-24 14:56) [283]

А конечные автоматы?


 
Юрий Зотов ©   (2004-07-24 15:00) [284]

> }|{yk ©   (24.07.04 14:44) [281]

Хороший совет, спору нет - но только это будет уже калькулятор именно с привлечением теории.

> GrayFace ©   (24.07.04 14:50) [282]

У меня ловится (выражение 1/0)

procedure TForm1.Button1Click(Sender: TObject);
var b:byte; p:PChar; s:string;
begin
try
  b:=0;
  s:=Edit1.text;
  p:=PChar(s);
  Edit2.Text:=FloatToStr(GetValue(p,#0,-MaxInt,b));
except
  on E: Exception do
  begin
    Edit1.SelStart:=integer(p)-integer(@s[1]);
    Edit1.SelLength:=0;
    Edit1.SetFocus;
    E.Message:=E.Message+" at offset "+IntToStr(Edit1.SelStart);
    raise;
  end;
end;
end;


 
GrayFace ©   (2004-07-24 15:00) [285]

Еще 10 мин. Итого 4:05.
unit Unit1;

interface

uses
 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
 Dialogs, StdCtrls;

type
 TForm1 = class(TForm)
   Edit1: TEdit;
   Button1: TButton;
   Edit2: TEdit;
   procedure FormCreate(Sender: TObject);
   procedure Button1Click(Sender: TObject);
 private
   { Private declarations }
 public
   { Public declarations }
 end;

var
 Form1: TForm1;

implementation

{$R *.dfm}

type TOperator=function(v1,v2:extended):extended;
    POperator=^TOperator;
    TFunction=function(v:extended):extended;
    PFunction=^TFunction;

    TFunc=record
      f:PFunction;
      name:string;
    end;
    TOper=record
      f:POperator;
      name:string;
      prior:integer;
    end;

function Mul(v1,v2:extended):extended;
begin
 Result:=v1*v2;
end;

function Div1(v1,v2:extended):extended;
begin
 Result:=v1/v2;
end;

function Add(v1,v2:extended):extended;
begin
 Result:=v1+v2;
end;

function Dec(v1,v2:extended):extended;
begin
 Result:=v1-v2;
end;

function Sin1(v:extended):extended;
begin
 Result:=sin(v);
end;

const opers:array[0..3] of TOper=((f:@Add; name:"+"; Prior:10),(f:@dec; name:"-"; prior:10),(f:@Mul; name:"*"; prior:20),(f:@Div1; name:"/"; prior:20));
     funcs:array[0..0] of TFunc=((f:@sin1; name:"sin"));

var OpMul:TOper;

function IsDigit(c:char):byte;
begin
 if (c=".") or (c=DecimalSeparator) or (c="e") or (c="E") or ((ord(c)>=$30) and (ord(c)<=$39))
 then result:=1 else if (c="-") or (c="+") then Result:=2 else Result:=0;
end;

function DoString(From,Tom:PChar):string;
var i:integer;
begin
 SetLength(Result,integer(tom)-integer(from)+1);
 for i:=1 to length(Result) do
 begin
   if from^="." then Result[i]:=DecimalSeparator
   else Result[i]:=from^;
   inc(from);
 end;
end;

function cmp(const s:string; p:PChar):boolean;
var s1:string; l:integer;
begin
 l:=length(s);
 SetLength(s1,l);
 CopyMemory(@s1[1],p,l);
 Result:=AnsiCompareText(s,s1)=0;
end;

function GetOper(var s:PChar; sep:Char; prior:integer; var done:byte; v1:extended):extended; forward;
{----------------------------------------------}

function GetValue(var s:PChar; sep:Char; prior:integer; var done:byte):extended;
var s1:string; i:integer; fu:TFunction; Len:integer; from,tom:PChar;
   dn:byte; step:integer;
begin
 try
   while s^=" " do inc(s);
   if s^="(" then
   begin
     inc(s);
     dn:=0;
     Result:=GetValue(s,")",-MaxInt,dn);
     exit;
   end;
   if s^="-" then
   begin
     inc(s);
     dn:=0;
     Result:=-GetValue(s,sep,MaxInt,dn);
     exit;
   end;
   len:=0;
   for i:=low(Funcs) to high(Funcs) do
   begin
     if (length(Funcs[i].name)>len) and cmp(Funcs[i].name,s) then
     begin
       fu:=TFunction(Funcs[i].f);
       len:=length(Funcs[i].name);
     end;
   end;
   if len<>0 then
   begin
     inc(s,len);
     dn:=0;
     Result:=fu(GetValue(s,sep,MaxInt,dn));
     exit;
   end;
   from:=s;
   tom:=nil;
   step:=0;
   while true do
   begin
     if IsDigit(s^)=0 then break;
     if (s^="e") or (s^="E") then if step<2 then step:=2 else break;
     if (s^="-") then if step=2 then inc(step) else break;
     if (s^="+") then if step=2 then inc(step) else if step=0
                                           then step:=1 else break;
     if IsDigit(s^)=1 then tom:=s;
     inc(s);
   end;
   if tom=nil then
   begin
     raise Exception.Create("Syntax Error.");
   end;
   s:=tom;
   inc(s);
   s1:=DoString(from,tom);
   Result:=StrToFloat(s1);
 finally
   dn:=0;
   while dn=0 do
   begin
     Result:=GetOper(s,sep,prior,dn,Result);
   end;
   if dn=2 then done:=2 else done:=0;
 end;
end;

function GetOper(var s:PChar; sep:Char; prior:integer; var done:byte; v1:extended):extended;
var i:integer; op:TOper; Len:integer;
begin
 while s^=" " do inc(s);
 len:=0;
 if (s^=sep) or (s^=#0) then
 begin
   if s^<>#0 then inc(s);
   done:=2;
   Result:=v1;
   exit;
 end;
 for i:=low(opers) to high(opers) do
 begin
   if (length(Opers[i].name)>len) and cmp(Opers[i].name,s) then
   begin
     op:=Opers[i];
     len:=length(Opers[i].name);
   end;
 end;
 if Len=0 then op:=OpMul;
 if op.prior>prior then
 begin
   inc(s,Len);
   Result:=TOperator(op.f)(v1,GetValue(s,sep,op.prior,done))
 end else
 begin
   Result:=v1;
   done:=1;
 end;
end;

{function Operate(var s:PChar; sep:char):extended;
var done:boolean;
begin
 result:=GetValue(s,sep);
 while true do
 begin
   Result:=GetOper(s,sep,Result,done);
 end;
end;
}
procedure TForm1.FormCreate(Sender: TObject);
begin
 OpMul:=opers[2];
end;

procedure TForm1.Button1Click(Sender: TObject);
var b:byte; p:PChar; s:string; i:integer;
begin
 b:=0;
 s:=Edit1.text;
 p:=PChar(s);
 try
   Edit2.Text:=FloatToStr(GetValue(p,#0,-MaxInt,b));
 except
   on E: Exception do
   begin
     i:=integer(p)-integer(@s[1]);
     s:=E.Message;
     Edit2.Text:=s;
     Edit1.SetFocus;
     Edit1.SelStart:=i;
     Edit1.SelLength:=0;
   end;
 end;
end;

end.


 
app ©   (2004-07-24 15:11) [286]

Все код в ветке больше не будет прниматься, заводи сайт и делай туда ссылку. Здоровье посетителей сайта превыше всего.


 
Mim1 ©   (2004-07-24 15:20) [287]


> Итого: 3 ч 45 мин (еще 5 минут - ошибра округления до 3,5
> ч).

Оригинальнос округляете :)


 
вразлет ©   (2004-07-24 15:21) [288]

Mim1 ©

калькулятором)


 
app ©   (2004-07-24 15:24) [289]

Да дополнительно прекращаем обсуждать "калькулятор" от GrayFace это не по теме ветки, будет удаляться, он враве создать свою ветку - мой супер калькулятора.


 
Юрий Зотов ©   (2004-07-24 15:39) [290]

> GrayFace ©   (24.07.04 15:00) [285]

Выражение: 2+2/3*6/3*3
Результат: Invalid floating point operation.
Потраченное время: не более пары минут.

:о)

P.S.
"До тех пор, пока не будет привлечена теория, ВСЕГДА найдется такое выражение, которое такой компилятор распознать и выполнить НЕ сможет".
(С) Юрий Зотов
:о)

P.P.S.
Пока что, как видите, мне удается найти такое выражение без малейших проблем. И это при том, что пока еще я совершенно не вникал в Ваш алгоритм и набираю выражения просто "с потолка". Естественно, по мере доработки программы это будет делать все сложнее и дольше - и вот тогда я проанализирую код, найду в нем слабое место и уже безо всякого подбора СРАЗУ напишу выражение, на котором программа все равно споткнется. И сколько бы Вы ее ни дорабатывали, так будет ВСЕГДА. Потому что - см. P.S. выше.
:о)

> app © (24.07.04 15:24) [289]

Не обсуждая принятое модератором решение, все же прошу этот постинг не удалять. По той причине, что он неразрывно связан с УЖЕ имеющимся в ЭТОЙ ветке постингом [285], а в другой ветке был бы относящимся непонятно к чему. Пусть будет другая ветка с обсуждением калькулятора (если будет), пусть в ЭТОЙ ветке данный постинг будет последним по калькулятору, но все же ЭТОМУ постингу, IMHO, место все же именно здесь, а не в другой ветке.


 
Anatoly Podgoretsky ©   (2004-07-24 15:45) [291]

Хорошо Юрий, но это последний постинг, посвященый этому калькулятору, который не будет удален.
Если GrayFace охота по обсуждать это, то пусть заведет отдельнуюю ветку. Право у него никто не отбирает, но здесь будем продолжать только обозначеную тему.
Если же GrayFace попробует далее обсуждать это здесь, то будет удален не только последний постинг но и все предыдущие не по темк, ветка будет жить, поскольку не виновата в том, что кто то рахзводит офтопик.


 
Palladin ©   (2004-07-24 15:46) [292]

баран не только смотрит на ворота, но и пытается на них что то писать
Подумай, напиши. А не напиши, послушай, исправь, послушай, перепиши, послушай, послан подальше...


 
app ©   (2004-07-24 15:48) [293]

Примечание, постинг [251] идет как официальный от имени модератора, забыл сменить ник.


 
app ©   (2004-07-24 15:48) [294]

291 опять поторопился


 
calm ©   (2004-07-24 17:01) [295]

Если оптимизация приводит к сложности изменения, то, имхо, руки кривые.

Хочешь сказать, что более рациональное должно быть более простым? Бред. Взять хотя бы ту же сортировку Шелла или Хоара...

Для оптимизации есть специальные люди.
Ты, прикладной программист, пишешь суть запроса.
Он, спец, оптимизирует строго формально.

Извините за котегоричность, но это ПОЛНЫЙ БРЕД.


 
Огромное Кулясищще ©   (2004-07-24 17:05) [296]

Удалено модератором
Примечание: В ветку про написания калькуляторов


 
Юрий Зотов ©   (2004-07-24 19:43) [297]

Кому интересно - ветка про калькулятор переехала сюда:
http://delphimaster.net/view/14-1089777990/

Господа присяжные заседатели! Заседание продолжается!
(С) Остап Бендер.


 
Суслик ©   (2004-07-25 09:54) [298]

жуть...
Юрий, вам то зачем это нужно доказывать?
Не пойму...


 
Юрий Зотов ©   (2004-07-25 11:56) [299]

> Суслик ©   (25.07.04 09:54) [298]

Вероятно, затем же, зачем тут тратят время и деньги, отвечая на вопросы...
:о)


 
Суслик ©   (2004-07-25 11:57) [300]


> Юрий Зотов ©   (25.07.04 11:56) [299]

СОгласен.
Но вы ничего не докажете :(((


 
Anatoly Podgoretsky ©   (2004-07-25 11:59) [301]

Ну это жизнь, кто то поймет.


 
Юрий Зотов ©   (2004-07-25 12:26) [302]

> Суслик ©   (25.07.04 11:57) [300]

Тем, кому вообще ничего нельзя доказать - да. Я к этому и не стремлюсь.

А тем, кому можно - вполне. Форум читают многие...

Иначе - зачем вообще все это?
:о)


 
Суслик ©   (2004-07-25 13:06) [303]


> Иначе - зачем вообще все это?

Это для того чтобы:
1) Учить того, кто хочет учиться
2) Учить того, кто слушает, что говорят старшие
3) Получать удовольствие от сознания того, что сделал умного еще умнее.


 
Юрий Зотов ©   (2004-07-25 14:27) [304]

> Суслик ©   (25.07.04 13:06) [303]

Дык... вот Вы сами на свой вопрос и ответили.
:о)


 
Master Paleva ©   (2004-07-25 21:59) [305]

Вообще, неплохо бы создать такую программу, которая сама бы комментировала код. Технически это, конечно, сделать несложно(в смысле кода). Можно сделать такую программу на основе FAQ. С помощью такой программы можно будет самому прокомментировать код.


 
Огромное Кулясищще ©   (2004-07-25 22:11) [306]

2 Юрий Зотов © (25.07.04 12:26) [302]:

А если вам докажут обратное? Вы готовы такое допустить и принять?


 
Cobalt ©   (2004-07-25 23:27) [307]

2 Огромное Кулясищще ©   (25.07.04 22:11) [306]

Что именно докажут?


 
Огромное Кулясищще ©   (2004-07-25 23:29) [308]

>Что именно докажут?

Читай ветку.


 
Денис   (2004-07-25 23:37) [309]

Григорьев Антон ©   (24.07.04 09:49) [269]
> Паразитизм - это когда ученик не хочет предпринимать никаких
> усилий для того, чтобы получить знания, и считает, что учитель
> обязан вложить их в него.

А сколько копий сломано на той же самой странице(http://www.delphikingdom.com/asp/answer.asp?IDAnswer=23431), тем же самым неким Антоном Григорьевым, о том, что "Программист нужен для того, чтобы решать те задачи, которые никто до него не решал, и задачи эти обычно достаточно сложные."

И Вы считаете, что учитель может научить этому?
Нет, Вы так не считаете.
А "вложить знания"?


> А обучить можно только того, кто сам этого хочет и на это
> способен. А хотение и способность априори предполагают желание
> и умение самостоятельной работы с книгой (или иным источником).
> Роль же преподавателя - сначала дать базу (чтобы человек
> мог понимать написанное), а затем - контролировать усвоение
> материала и разъяснять непонятные места.


Это уже Юрий Зотов.
Это гораздо ближе к теме.
А что значит "дать базу"?
И чем эта "база" может быть? Общей теорией, примерами, вариантами решений?
Всем чем угодно, это зависит от потребностей и способностей ученика. Лучший подход - индивидуальный.

Скромная, великая, необходимая и достаточная миссия учителя - как раз именно "вложить знания", наилучшим образом.
Было бы во что вкладывать.
Ученик же должен усваивать и анализировать эти знания.
И уже на их основе он сможет учиться правильно мыслить в контексте предмета, составлять и решать новые задачи.

P.S. Остальное же(Григорьев Антон © Денису  (24.07.04 09:49) [269]) очень похоже на истерику, с характерным для этого перегибом фактов. Как же я Вас достал, Антон...
Или Вы нездоровы?
В любом случае - прошу прощения.

P.S.S. Может стоит потребовать от школьников самостоятельного доказательства теорем Пифагора?
А что, пойдёт на пользу...


 
Anatoly Podgoretsky ©   (2004-07-25 23:47) [310]

Ты не преувеличиваешь свою значимость?


 
Baron ©   (2004-07-25 23:57) [311]

Все спорите? 310 постов. Вот уж точно подробный комментарий. Я грешным делом думал это уже другая тема. Но вы так и не ответили на вопрос - может ли ученик превзойти учителя? Или это только в японских фильмах...


 
Думкин ©   (2004-07-26 06:28) [312]

> [309] Денис   (25.07.04 23:37)
> P.S.S. Может стоит потребовать от школьников самостоятельного
> доказательства теорем Пифагора?
> А что, пойдёт на пользу...

Если он найдет доп. доказательства отличные от предложенных учителем - то это здорово. Во всяком случае история Гаусса по преданию начинается с того, что он посчитал сумму натуральных чисел от 1 до 100 способом, который не предполагал учитель.

> [311] Baron ©   (25.07.04 23:57)

Может. Но смотря в чем и смотря как. Что касается математики, то в определенном плане я обошел своего школьного учителя, но не в том в чем он работает, а уж из детского сада.
Если же речь о научном(профессиональном) руководителе, то это тоже случается и иногда при жизни учителя, только вот в чем и как? Очень часто потом приходит понимание того, что ты только начал понимать, то что тебе казалось уже понятым. Знания - это же не только набор формул и успешный поиск определенных решений. И неужели активно действующий учитель стоит на месте? А что в японских фильмах? Напомните деревенщине...


 
Думкин ©   (2004-07-26 06:40) [313]

> Если же речь о научном(профессиональном) руководителе, то
> это тоже случается и иногда при жизни учителя, только вот
> в чем и как

Да и что обходить? Иногда, подняться до одного уровня - это уже. Это не значит, что вы не получите результатов идущих дальше и расширяющих результаты учителя. Но результаты не всегда означают превосходство.


 
Юрий Зотов ©   (2004-07-26 12:15) [314]

> Огромное Кулясищще ©   (25.07.04 22:11) [306]

> Вы готовы такое допустить и принять?

Естественно. Дело за малым - доказать раньше, чем я успею благополучно помереть. Потому что вот в этом случае я уже не смогу "допустить и принять". Чисто физически.
:о)


 
Юрий Зотов ©   (2004-07-26 12:26) [315]

> Baron ©   (25.07.04 23:57) [311]

> Но вы так и не ответили на вопрос - может ли ученик превзойти
> учителя?

А разве ответ не очевиден и надо отвечать? Конечно, может.

Правда, есть нюанс. Довольно часто бывает так, что ученик ДУМАЕТ, что он УЖЕ догнал (или превзошел) своего учителя. Потому что у ученика уже есть неплохой уровень знаний (скажем, намного выше, чем у его друзей и знакомых), но этих знаний еще не хватает, чтобы он мог понять ДЕЙСТВИТЕЛЬНЫЙ уровень учителя.

И только спустя годы и приобретя еще намного большие знания, он станет способен это понять. И со стыдом подумать о том, как же он был глуп и самонадеян.

Увы, бывает такое. И даже довольно часто.
:о)


 
pasha_golub ©   (2004-07-26 12:39) [316]

Юрий Зотов ©   (26.07.04 12:26) [315]
Осознание учеником своей недальновидности - это великий дар, недоступный всем. Тут я с Вами согласен.


 
Григорьев Антон ©   (2004-07-26 12:50) [317]


> pasha_golub ©   (26.07.04 12:39) [316]
> Юрий Зотов ©   (26.07.04 12:26) [315]
> Осознание учеником своей недальновидности - это великий
> дар, недоступный всем.


Зачем же так пессимистично? Может, сформулировать помягче - доступный не всем?


 
pasha_golub ©   (2004-07-26 12:57) [318]

Григорьев Антон ©   (26.07.04 12:50) [317]
Именно так. :0) Спасибо, что подправил.


 
Игорь Шевченко ©   (2004-07-26 13:04) [319]

Денис   (25.07.04 23:37) [309]

А бабушки все падали и падали...(с)

Если не трудно, прочитай(те) пожалуйста:

http://ln.com.ua/~openxs/articles/smart-questions-ru.html


 
Baron ©   (2004-07-26 13:42) [320]

Юрий Зотов ©  (26.07.04 12:26) [315]
>Довольно часто бывает так, что ученик ДУМАЕТ, что он УЖЕ догнал
>(или превзошел) своего учителя.
Это точно. Чаще так и бывает.
//
Я вот тут подумал. А стоит ли вообще пытаться достигнуть заоблачных высот? По-моему достаточно знать столько, сколько нужно на сегодня. Ну не знаешь чего-то, а нужно, так подучи. Все одинаково хорошо знать невозможно. Если где-то прибудет, то где-то убудет. Нужно пытаться понять суть, тогда все сразу встает на свои места. «Зри в корень» как говорится.


 
Anatoly Podgoretsky ©   (2004-07-26 13:52) [321]

Baron ©   (26.07.04 13:42) [320]

Это и пытаются втолковать, как только тебе покажется что знаешь, ан нет горизонт ушел еще дальше.


 
Денис   (2004-07-26 23:14) [322]


> Anatoly Podgoretsky ©   (25.07.04 23:47) [310]
> Ты не преувеличиваешь свою значимость?

Пардон, а причём тут я вообще?


> Думкин ©   (26.07.04 06:28) [312]
> > [309] Денис   (25.07.04 23:37)
> > P.S.S. Может стоит потребовать от школьников самостоятельного  
> > доказательства теорем Пифагора?
> > А что, пойдёт на пользу...
>
> Если он найдет доп. доказательства отличные от предложенных
> учителем - то это здорово. Во всяком случае история Гаусса
> по преданию начинается с того, что он посчитал сумму натуральных
> чисел от 1 до 100 способом, который не предполагал учитель.

Разве ж я спорю, что это здорово.
Опять таки Гаусс - яркая индивидуальность. Для остальных требуются иные подходы, самые разнообразные.
Просто ни к чему обобщать способности и необходимости разных людей.

А гонка за учителем, это что, новый вид спорта такой?
Об чём рассуждение то?
Получить сумму знаний, которой владеет учитель, это не значит ни перегнать его, ни догнать , ни не догнать.
Гораздо важнее умение или талант эти знания использовать, что бы создавать что то новое, интересное. Изобретательность.
Тот же Гаусс нашёл быстрый способ сумирования чисел, обладая гораздо меньшим количеством знаний, чем его учитель.


 
GrayFace   (2004-07-27 10:18) [323]

Денис, возрадуйся!
VMcL: LOL = Laughing Out Loud - типа "катаюсь по полу от смеха".


 
Григорьев Антон ©   (2004-07-27 10:43) [324]


> Денис   (26.07.04 23:14) [322]


Денис, а вы прочитали статью http://ln.com.ua/~openxs/articles/smart-questions-ru.html которую вам Игорь Шевченко посоветовал?


 
Юрий Зотов ©   (2004-07-27 12:42) [325]

Сначала некий Денис заявляет:

> Денис   (13.07.04 20:40) [63]
> Может дело попросту в том , что боимся мы родимые, что нас так
> незаслуженно быстро догонит поколение новичков, а господа?


Потом тот же Денис говорит:

> Денис   (26.07.04 23:14) [322]
> А гонка за учителем, это что, новый вид спорта такой?


Коллеги, я в своем старческом маразме подзабыл... может, кто напомнит... что означает слово "словоблудие"? Это синоним "пустозвонства", или нет?


 
Игорь Шевченко ©   (2004-07-27 12:45) [326]


>  может, кто напомнит... что означает слово "словоблудие"?
> Это синоним "пустозвонства", или нет?


Это синоним словесного онанизма


 
Johnmen ©   (2004-07-27 12:50) [327]

>Юрий Зотов ©   (27.07.04 12:42) [325]
>Коллеги, я в своем старческом маразме подзабыл... может, кто
>напомнит... что означает слово "словоблудие"? Это
>синоним "пустозвонства", или нет?

"пустозвонство" - это когда много говорят ни о чем, раздавая пустые обещания,
"словоблудие" - это когда разводят философию, необоснованно придираясь к точному значению слов, передергивая, подменяя понятия.

Думаю так...


 
Skyle ©   (2004-07-27 12:59) [328]

Есть ветераны, есть новички, есть симбиоз, есть паразитизм.....

"Есть мы - написатели компонент, есть вы - компонентокидатели".

Ничего не напоминает?

Мы - Иные
 Мы служим вечным силам

...

Тяжело уже всё это читать...;-)
Хотя я и понимаю возмущение ветеранов.


 
Григорьев Антон ©   (2004-07-27 13:02) [329]


> Skyle ©   (27.07.04 12:59) [328]
> Есть ветераны, есть новички, есть симбиоз, есть паразитизм.....
>
> "Есть мы - написатели компонент, есть вы - компонентокидатели".


При чём здесь это? Я и сам очень люблю кидать компоненты на форму. Но согласиться с тем, что этим программирование и исчерпывается, никак не могу.


 
Anatoly Podgoretsky ©   (2004-07-27 13:05) [330]

Григорьев Антон ©   (27.07.04 10:43) [324]
Не царское это дело


 
Юрий Зотов ©   (2004-07-27 13:08) [331]

> Skyle ©   (27.07.04 12:59) [328]

Да нет никакого возмущения. Либо человек поймет со временем, либо не поймет - вот и вся суть. С чего возмущаться-то?


 
Skyle ©   (2004-07-27 13:11) [332]


> При чём здесь это? Я и сам очень люблю кидать компоненты
> на форму. Но согласиться с тем, что этим программирование
> и исчерпывается, никак не могу.

Хм... прошу прощения, а я об этом говорил?
По некоторым дошедшим до меня оценкам, рынок программистов на Delphi на 70% состоит из таких вот компонентокидателей, что влияет на конкуренцию и размер зарплаты в целом.

И это меня не радует. Слишком низкий порог вхождения - зло.


> Anatoly Podgoretsky ©   (27.07.04 13:05) [330]

:-)


 
Anatoly Podgoretsky ©   (2004-07-27 13:15) [333]

Skyle ©   (27.07.04 13:11) [332]
Рынок Бейсик программистов такого же класса и шире, а на зарплату вличет только положительно, конечно речь про те места где востребовано. Дело не в Дельфи, снижение стоимости труда из за штрейхбрекеров, которые за пару бытылок делают какую ни будь халтуру.


 
Skyle ©   (2004-07-27 13:23) [334]


> Anatoly Podgoretsky ©   (27.07.04 13:15) [333]

Насчёт рынка программистов на бейсике не могу сказать ничего конкретного так как не в курсе. В любом случае - начинающие думают, что та малость, что они знают (как не промахнуться
кампанентом по форме) даёт им полное право называться программистами. Низкоуровневые знания - удел интересующихся. Чем сильнее интересуешься, тем глубже залезешь. Поэтому

> Юрий Зотов ©   (27.07.04 13:08) [331]
>Либо человек поймет со временем,
> либо не поймет - вот и вся суть. С чего возмущаться-то?

это просто придётся пережить. И не пополнять собой их ряды. Только и всего...


 
Dmitriy O. ©   (2004-07-27 13:24) [335]

Рунок Java программистов влечет з.п. еще более положительно Ибо круто !


 
Anatoly Podgoretsky ©   (2004-07-27 13:32) [336]

Skyle ©   (27.07.04 13:23) [334]
Но цены они сбивают, потом не продать никакую серьезную работу, "А нам Вася сделает это за 100"


 
Думкин ©   (2004-07-27 13:37) [337]

> [336] Anatoly Podgoretsky ©   (27.07.04 13:32)

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


 
Johnmen ©   (2004-07-27 13:42) [338]

>Рунок Java программистов влечет з.п. еще более положительно Ибо круто !

Ага. Круче только яйца.


 
Skyle ©   (2004-07-27 13:42) [339]


> Anatoly Podgoretsky ©   (27.07.04 13:32) [336]

Об этом я изначально и говорил.

Ну а что можно сделать?
Учить? Да, предпочтительно, но не всегда возможно. По разным причинам.
Уйти? Даже не обсуждается.

Да и невозможно в общем постоянно наполнять рынок профессионалами ибо откуда они возьмутся, как не из заинтересованных новичков?


 
Anatoly Podgoretsky ©   (2004-07-27 13:51) [340]

Убивать в зародыше. Штрейхбрекеров всегда били камнями.


 
stone ©   (2004-07-27 13:57) [341]


> как только тебе покажется что знаешь, ан нет горизонт ушел
> еще дальше.

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


 
Денис   (2004-07-28 02:40) [342]


> Юрий Зотов ©   (27.07.04 12:42) [325]
> Сначала некий Денис заявляет:
>
> > Денис   (13.07.04 20:40) [63]
> > Может дело попросту в том , что боимся мы родимые, что
> нас так
> > незаслуженно быстро догонит поколение новичков, а господа?
>
> Потом тот же Денис говорит:
>
> > Денис   (26.07.04 23:14) [322]
> > А гонка за учителем, это что, новый вид спорта такой?
>
> Коллеги, я в своем старческом маразме подзабыл... может,
> кто напомнит... что означает слово "словоблудие"? Это синоним
> "пустозвонства", или нет?


Хоть я Вам и не коллега, но осмелюсь предположить, что "в своем старческом маразме" Вы упустили во второй фразе ключевое слово "учитель", о котором в первой не было и речи.


> Григорьев Антон ©   (27.07.04 10:43) [324]

> Денис, а вы прочитали статью http://ln.com.ua/~openxs/articles/smart-questions-ru.html
> которую вам Игорь Шевченко посоветовал?


Да. Там кстати есть раздел и для Вас - "Как правильно отвечать на вопросы".
Я пользу извлёк.
А Вы?


> Anatoly Podgoretsky ©   (27.07.04 13:05) [330]
> Григорьев Антон ©   (27.07.04 10:43) [324]
> Не царское это дело

Не судите по себе, Ваше Величество.


 
Baron ©   (2004-07-28 02:56) [343]

(342)
Подробней комментария не встречал(!)


 
Юрий Зотов ©   (2004-07-28 09:48) [344]

А... да... ключевое... даже суперключевое...

И все же полагаю, что КЛЮЧЕВЫМ здесь является совсем другое слово...
Гы.


 
Johnmen ©   (2004-07-28 09:57) [345]

пост № [342] - классический пример словоблудия, о котором спрашивал ЮЗ в п.№ [325].


 
Григорьев Антон ©   (2004-07-28 10:29) [346]


> Денис   (28.07.04 02:40) [342]
> > Григорьев Антон ©   (27.07.04 10:43) [324]
>
> > Денис, а вы прочитали статью http://ln.com.ua/~openxs/articles/smart-questions-ru.html
>
> > которую вам Игорь Шевченко посоветовал?
>
>
> Да. Там кстати есть раздел и для Вас - "Как правильно отвечать
> на вопросы".
> Я пользу извлёк.
> А Вы?


И какое же из тех правил я, как вы считаете, нарушил?


 
Денис   (2004-07-29 03:01) [347]


> Johnmen ©   (28.07.04 09:57) [345]
> пост № [342] - классический пример словоблудия, о котором
> спрашивал ЮЗ в п.№ [325].


Будете хамить - вот возьму и откомментирую чего-нибудь!!!
 Страшно?!


Григорьев Антон ©   (28.07.04 10:29) [346]
> И какое же из тех правил я, как вы считаете, нарушил?

О...
Вижу, что не извлекли.
Врядли стоит начинать обсуждение этого, так как Вы слишком убеждены в собственной безупречности.
А это наводит на некоторые грустные размышления.


 
Григорьев Антон ©   (2004-07-29 11:27) [348]


> Денис   (29.07.04 03:01) [347]
> Григорьев Антон ©   (28.07.04 10:29) [346]
> > И какое же из тех правил я, как вы считаете, нарушил?
>
> О...
> Вижу, что не извлекли.
> Врядли стоит начинать обсуждение этого, так как Вы слишком
> убеждены в собственной безупречности.
> А это наводит на некоторые грустные размышления.


Типичный приём всех болтунов: когда им задают конкретный вопрос, требующий конкретного ответа, они вместо этого начинают рассуждать на отвлечённые темы. Подозреваю, что больше всего вам не понравилось то, что я посоветовал вам учить матчасть, и вы сочли, что этим я нарушил правило про RTFM. Но не буду сейчас оправдываться, т.к. это только мои предположения, а на самом деле вам, может быть, не понравилось что-то совсем другое.


 
Игорь Шевченко ©   (2004-07-29 11:28) [349]

Денис   (29.07.04 03:01) [347]

Поверьте, свое ламерство выпячивать, ей-богу, не стоит.


 
Денис   (2004-07-30 02:50) [350]


> Типичный приём всех болтунов: когда им задают конкретный
> вопрос, требующий конкретного ответа, они вместо этого начинают
> рассуждать на отвлечённые темы.

  Да-да, Антон, именно это, если вы меня понимаете...


> Поверьте, свое ламерство выпячивать, ей-богу, не стоит.

Верю.
Поверьте, и вы мне, что не стоит выпячивать свою продвинутость.
 

А вообще , как я понимаю, тема исчерпана. И ни кому не интересно заниматься пререканиями друг с другом.
В том числе и мне.

END.



Страницы: 1 2 3 4 5 6 7 8 9 
вся ветка

Текущий архив: 2004.08.15;
Скачать: CL | DM;

Наверх




Память: 1.85 MB
Время: 0.054 c
1-1091520377
Ricko
2004-08-03 12:06
2004.08.15
Предупреждения


1-1091514916
Arte123
2004-08-03 10:35
2004.08.15
Как узнать количество child у конкретного TTreeNode в TTreeView?


14-1090951748
SuperHack
2004-07-27 22:09
2004.08.15
Sorry, а мне сказали ято можно bmp перевести в wav


4-1089046492
ИМХО
2004-07-05 20:54
2004.08.15
CLSID


14-1091127173
wl
2004-07-29 22:52
2004.08.15
Написание компилятора