Конференция "Прочее" » Впервые в команде. Думал, прикалываетесь.
 
  • Юрий Зотов © (15.05.08 13:55) [60]
    В [42] небольшая погрешность в расчетах по первому варианту. Отчисления конторы за 4-х человек, стоимость аренды площади 4-х рабочих мест и амортизация 4-х компов - все это нужно еще и умножить на 1.5, потому что на суммарный код было потрачено 1.5 месяца, а не 1.

    Итого разница между двумя вариантами становится не просто немалой, а ОЧЕНЬ немалой.
  • Palladin © (15.05.08 13:58) [61]

    > а эта железка высотой в 3 этажа - вот это страшно!

    Судный День грядет! :)
  • Slym © (15.05.08 13:59) [62]
    Юрий Зотов ©   (15.05.08 13:55) [60]
    ОЧЕНЬ немалой

    кроме амортизации компов еще совт нужен... скока лиц на дельфи стоит? :)
  • Юрий Зотов © (15.05.08 14:01) [63]
    > Slym ©   (15.05.08 13:59) [62]

    Точно! Разница увеличилась еще на 2 лицензии (притом, не только на Delphi, а и на систему, да и вообще на ВЕСЬ используемый софт).
  • Alkid © (15.05.08 14:22) [64]

    > Ночной кошмар программиста

    Эх, не видели вы чего тут народ творит на С++... :(
    Причём творил дядька грамотный, головастый, который отреверсинджинирил кучу чужого, вскрыл разные структуры данных, интерфейсы и протоколы. Это талант.
    Но какой он писал код, мама родная!
  • Игорь Шевченко © (15.05.08 14:27) [65]
    Alkid ©   (15.05.08 14:22) [64]

    Чего я только не видел на своем веку :)
    "Кривое не может сделаться прямым". (Еккл.)
  • Style © (15.05.08 14:35) [66]

    > Эх, не видели вы чего тут народ творит на С++... :(


    Есть такая должность программист-обфускатор! )))))
  • MsGuns © (15.05.08 14:39) [67]
    >KSergey ©   (15.05.08 12:23) [50]

    >А почему авторитетом, а не з/п? Или авторитетом - более тонкое искуство при тех же >(или лучших?) результатах, а з/п - это грубо?

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

    А вообще полностью согласен с Юрием, утверждающим, что кадры - это отдельная песня. Я бы даже назвал это не песней, а целой "фонотекой" ;)
  • Поп Гапон (15.05.08 17:05) [68]

    > Игорь Шевченко ©   (15.05.08 12:58) [56]
    >
    > Romkin ©   (15.05.08 12:34) [54]
    >
    > Ночной кошмар программиста


    Ну вот это мой код первого "коммерческого" проекта. Просто в НИИ куда я пришел после института про стандарты, похоже, никто не подозревал и каждый писал как думал.


    unit Unit4;

    interface

    uses
     Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
     Buttons, StdCtrls, ExtCtrls, registry, Spin, VasMessageBox;

    type
     TForm4 = class(TForm)
       RadioGroup1: TRadioGroup;
       RadioButton1: TRadioButton;
       RadioButton2: TRadioButton;
       CheckBox2: TCheckBox;
       GroupBox1: TGroupBox;
       SpinEdit4: TSpinEdit;
       SpinEdit5: TSpinEdit;
       SpinEdit1: TSpinEdit;
       GroupBox2: TGroupBox;
       Label1: TLabel;
       SpinEdit2: TSpinEdit;
       CheckBox3: TCheckBox;
       Label2: TLabel;
       SpinEdit3: TSpinEdit;
       Label3: TLabel;
       Label4: TLabel;
       Label8: TLabel;
       Label9: TLabel;
       Label10: TLabel;
       VasMessageBox1: TVasMessageBox;
       Label5: TLabel;
       Label6: TLabel;
       Label7: TLabel;
       SpeedButton1: TButton;
       SpeedButton2: TButton;
       ComboBox1: TComboBox;
       Label11: TLabel;
       Label12: TLabel;
       procedure SpeedButton1Click(Sender: TObject);
       procedure OnCreate(Sender: TObject);
       procedure OnClose(Sender: TObject; var Action: TCloseAction);
       procedure SpeedButton2Click(Sender: TObject);
       procedure FormKeyDown(Sender: TObject; var Key: Word;
         Shift: TShiftState);
     private
       { Private declarations }
     public
       { Public declarations }
     end;

    var
     Form4: TForm4;

    implementation
    uses unit1;
    {$R *.DFM}

    procedure TForm4.SpeedButton1Click(Sender: TObject);
    var Registry: TRegistry;
    begin
    if (SpinEdit5.Value>SpinEdit4.Value) and
    (SpinEdit1.Value>SpinEdit5.Value) then
    begin
    Registry:=TRegistry.Create;
    Registry.RootKey:=HKEY_LOCAL_MACHINE;
    Registry.OpenKey('SOFTWARE\GART\CS',False);

    if CheckBox2.checked=true then
    Registry.WriteInteger('Default Minization',1)
    else
    Registry.WriteInteger('Default Minization',0);

    if RadioButton1.Checked=True then
    Registry.WriteInteger('Default Status',1);

    if RadioButton2.Checked=True then
    Registry.WriteInteger('Default Status',2);

    Registry.WriteInteger('Time Good',SpinEdit4.Value);
    Registry.WriteInteger('Time Normal',SpinEdit5.Value);
    Registry.WriteInteger('Time Answer',SpinEdit1.Value);

    Registry.WriteInteger('Packet Item',ComboBox1.ItemIndex);
    Registry.WriteInteger('Packet Size',StrToInt(ComboBox1.Text));

    Form1.NMPing1.PacketSize:=Registry.ReadInteger('Packet Size');

    if CheckBox3.checked=true then
    Registry.WriteInteger('Corupted Message',1)
    else
    Registry.WriteInteger('Corupted Message',0);

    Registry.WriteInteger('Time Automatic',SpinEdit2.Value);
    Registry.WriteInteger('Time Corupted',SpinEdit3.Value);

    timealarm:=Registry.ReadInteger('Time Corupted');
    CorrMess:=Registry.ReadInteger('Corupted Message');

    //качество прохождения запроса
    mainbedtime:=Registry.ReadInteger('Time Answer');
    maingoodtime:=Registry.ReadInteger('Time Good');
    mainnormaltime:=Registry.ReadInteger('Time Normal');

    Registry.Free;
    ///автоматический режим опроса
    Form1.AutoTimer.Interval:=SpinEdit2.Value*60*1000;

    if RadioButton1.Checked=True then
    begin
    Form1.SpeedButton4.Enabled:=true;
    Form1.AutoTimer.Enabled:=False;
    automode:=1;
    end;

    if RadioButton2.Checked=True then
    begin
    Form1.SpeedButton4.Enabled:=false;
    Form1.AutoTimer.Enabled:=True;
    automode:=2;
    end;

    Form1.Showstatus('Настройки змінені');
    Form4.Close;
    end

    else
    VasMessageBox1.Execute;

    end;

    procedure TForm4.OnCreate(Sender: TObject);
    var Registry: TRegistry;
    begin

    Registry:=TRegistry.Create;
    Registry.RootKey:=HKEY_LOCAL_MACHINE;
    Registry.OpenKey('SOFTWARE\GART\CS',False);

    if Registry.ReadInteger('Default Minization')<>0 then
    CheckBox2.checked:=true;

    if Registry.ReadInteger('Default Status')=1 then
    RadioButton1.Checked:=True;
    if Registry.ReadInteger('Default Status')=2 then
    RadioButton2.Checked:=True;

    SpinEdit4.Value:=Registry.ReadInteger('Time Good');
    SpinEdit5.Value:=Registry.ReadInteger('Time Normal');
    SpinEdit1.Value:=Registry.ReadInteger('Time Answer');
    ComboBox1.ItemIndex:=Registry.ReadInteger('Packet Item');

    if Registry.ReadInteger('Corupted Message')<>0 then
    CheckBox3.checked:=true;

    SpinEdit2.Value:=Registry.ReadInteger('Time Automatic');
    SpinEdit3.Value:=Registry.ReadInteger('Time Corupted');

    Registry.Free;

    Form4.ShowModal;
    end;

    procedure TForm4.OnClose(Sender: TObject; var Action: TCloseAction);
    begin
    systemloc:=0;
    Action:=caFree;
    end;

    procedure TForm4.SpeedButton2Click(Sender: TObject);
    begin
    Form4.Close;
    end;

    procedure TForm4.FormKeyDown(Sender: TObject; var Key: Word;
     Shift: TShiftState);
    begin
    if key=VK_ESCAPE then
    SpeedButton2Click(nil);
    end;

    end.

  • clickmaker © (15.05.08 17:07) [69]
    на днях очень долго медитировал на такой код:

    switch(forumAttribute)
    {
     case 18:
       iSrc = imgSrc[0];
       break;
     case 530:
       goto case 18;
  • Юрий © (15.05.08 17:26) [70]
    > [69] clickmaker ©   (15.05.08 17:07)

    Исправили бы, и не думали.

    switch(forumAttribute)
    {
    case 18:
    case 530:
      iSrc = imgSrc[0];
      break;
    ...

  • Юрий Зотов © (15.05.08 17:37) [71]
    case forumAttribute of
     18, 530:
        iSrc := imgSrc[0];
    end;

    Несколько элегантнее, не так ли?
    :о)
  • ketmar © (15.05.08 18:54) [72]
    >[64] Alkid © (2008-05-15 14:22:00)
    а, кстати. помнится, почитывал код хороших реверсверов для Z80. screaming fear. хотя и работал. это совсем другое мышление.

    >[71] Юрий Зотов © (2008-05-15 17:37:00)
    >Несколько элегантнее, не так ли?
    да. только в php/c всё-таки лучше.
    switch (ch) {
     case 'A': wasA = true;
     case 'B': printf("A or B\n"); break;
     default: printf("wtf?\n");
    }

    if (wasA) printf("AAAAAA!\n");


    пример безмозглый, конечно.

    ---
    Understanding is not required. Only obedience.
  • Kenny © (16.05.08 14:57) [73]
    У нас на днях был найден отжиг:

          if (ModularOrder.MANYTOONE_STATE == UnicmDefines.CATALOG_ORDER_STATE_FINISHED)



    Обе константы. Причем обе _текстовые_ константы! (Java)
  • TUser © (16.05.08 15:11) [74]

    > Kenny ©   (16.05.08 14:57) [73]
    >
    >

    А что такого? Завтра я поменяю константы и ок.
  • Kenny © (16.05.08 15:16) [75]
    > TUser ©

    Еще один :D
  • DiamondShark © (16.05.08 15:43) [76]

    > switch (ch) {
    >  case 'A': wasA = true;
    >  case 'B': printf("A or B\n"); break;
    >  default: printf("wtf?\n");
    > }

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

    Глядя на чужой код не всегда (чит.: практически никогда) можно определить, является ли отсутствие бряка между ветками случайной забывчивостью или фишкой. Приходится въезжать во весь код детально.
  • TUser © (16.05.08 15:49) [77]

    > Еще один :D
    >

    А зачем еще делают константы в программах?
  • han_malign © (16.05.08 16:04) [78]

    >> Еще один :D
    > А зачем еще делают константы в программах?

    - да уж всяко не для условной компиляции... Другое дело, что в Java это единственный доступный способ http://www.javapractices.com/topic/TopicAction.do?Id=64
  • Юрий Зотов © (16.05.08 16:08) [79]
    > TUser ©   (16.05.08 15:11) [74]

    Это Java. Там строка - это объект, а переменнаяи типа "строка" - это ссылка на объект. Поэтому условие
    if (строка1==строка2) ...


    проверяет равенство ссылок, а не тел строк. Ясно, что если обе строки - константы, то это условие не выполнится никогда.
 
Конференция "Прочее" » Впервые в команде. Думал, прикалываетесь.
Есть новые Нет новых   [134435   +8][b:0.001][p:0.003]