1. Objective C / Говнокод #13313

    −103

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    - (void)updateRating 
    {
        [NSObject cancelPreviousPerformRequestsWithTarget:self
                                                 selector:@selector(delayedUpdateRating)
                                                   object:nil];
        [self performSelector:@selector(delayedUpdateRating)
                   withObject:nil
                   afterDelay:0];
    }

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

    clockworkman, 05 Июля 2013

    Комментарии (11)
  2. Куча / Говнокод #13309

    +124

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    [% FOREACH i IN DYN_DATE_OPT %]
    <td class="number [% IF loop.count mod 2 != 0 %]odd[% END %] distri_td" [% distri_style %]>[% DYN_FILTER_COMMIFY( distr_row.lic.$i ) || 0 %]</td>
    [% UNLESS DYN_PARAMS.display_unprocent %]
    <td class="number right_b [% IF loop.count mod 2 != 0 %]odd[% END %] distri_td" [% distri_style %]>[% DYN_FILTER_PERCENT( distr_row.lic.$i, distr_row.commonper.$i ) %]</td>
    [% END %]
    <td class="number left_b [% IF loop.count mod 2 != 0 %]odd[% END %] distri_td" [% distri_style %]>[% DYN_FILTER_COMMIFY( distr_row.gsn_lic.$i ) || 0 %]</td>
    [% UNLESS DYN_PARAMS.display_unprocent %]
    <td class="number right_b [% IF loop.count mod 2 != 0 %]odd[% END %] distri_td" [% distri_style %]>[% DYN_FILTER_PERCENT( distr_row.gsn_lic.$i, distr_row.gsnper.$i ) %]</td>
    [% END %]
    <td class="number left_b [% IF loop.count mod 2 != 0 %]odd[% END %] distri_td" [% distri_style %]>[% DYN_FILTER_COMMIFY( distr_row.lic_ov.$i, 'red' ) || 0 %]</td>
    [% UNLESS DYN_PARAMS.display_unprocent %]
    <td class="number [% IF loop.count mod 2 != 0 %]odd[% END %] distri_td" [% distri_style %]>[% DYN_FILTER_PERCENT( distr_row.lic_ov.$i, distr_row.gsnper.$i ) %]</td>
    [% END %]
    [% END %]

    Template::Toolkit

    236 вот такого вот шаблона. Во всём сервисе их пачка, и все аналогичны.

    kainwinterheart, 05 Июля 2013

    Комментарии (10)
  3. C# / Говнокод #13308

    +137

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    // "Красная Шапочка, ты снова - девочка. Тимур и его команда" :-)
    
    // Почему-то в случае типа picture сюда передавалось вместо GUID-а заглушки такая вот строковая константа
    // так как надо было срочно делать, было сделано так. Потом было исправлено, но удалять эту строчку страшно.
    // Вдруг ещё работать перестанет.
    
    // TODO: Исключить из backup коллекцию colAbbreviation
    // Все объекты в ней бэкапятся внутри DataDeduplication.SaveAbbreviation
    // Или не надо? Лучше синица в руках, чем утка под кроватью... :-)
    // Ну-ка, ну-ка... Может, она раньше выполнялась, и об этом что-то известно?
    
    // Вызываем клиента в другом потоке, иначе - фигня-с...
    
    // Кажется "добрые люди" уже удалили этот классификатор...
    
    // Начать их переделывать - рухнет что-нить в другом месте, 
    // а низзя - скоро нужна рабочая версия... :-)
    
    // Таким вот финтом ушами(из-за бага) заставляем перейти фокус на последнюю строку :-)
    
    // к сожалению - Z-Order окон из WinForms недоступен - придется запоминать только активное окно
    //(можно конечно было прикрутиться к WinAPI - но не кошерно это :-) )
    
    // God mode :-)
    
    // Пытаемся получить "человеческий" sid для ADObject
    
    // Спасибо дата-провайдеру Oracle за счастливое детство и невозможность попользоваться
    // параметрами при сложном запросе с произвольным размещением параметров в запросе :-(
    
    // нехорошо так делать - но переписывать форму редактирования позиции пока не будем -
    // может что нибудь отъехать перед сдачей :-(
    
    /// <summary>
    /// Очень грязный хак - для того, чтобы хоть как-то заставить грид отобразить
    ///"+" для строк слева
    /// </summary>
    void DirtyHack()

    Продакшен-код. Комментарии

    dormendo, 05 Июля 2013

    Комментарии (25)
  4. Pascal / Говнокод #13306

    +138

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    25. 25
    26. 26
    27. 27
    28. 28
    29. 29
    30. 30
    31. 31
    32. 32
    33. 33
    34. 34
    35. 35
    36. 36
    37. 37
    38. 38
    39. 39
    40. 40
    41. 41
    42. 42
    43. 43
    44. 44
    45. 45
    46. 46
    47. 47
    48. 48
    49. 49
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    В этой статье я расскажу как сделать дополнительный поток в программе.
    
    Приступим.
    
    1. Создаём форму
    2. Кидаем на форму кнопку со вкладки Standart
    3. Кидаем на форму Memo со вкладки Standart
    
    Переходим в код и после
    
    private
        { Private declarations }
      public
        { Public declarations }
      end;
    
    Пишем следующие:
     
    TVANSThread=class(TThread) 
      Private
        Protected
          Procedure Execute; override;
      Public
        Constructor Create(CreateSuspended: boolean);
      end;
    
    
    Далее кликаем по строчке Constructor Create(CreateSuspended: boolean); и жмём сочентание клавиш Ctrl+Shift+C
    
    После чего должно появится следующие:
    
    
    constructor TVANSThread.Create(CreateSuspended: boolean);
    begin
    
    end;
    
    В эту процедуру вписываем следующею строчку:
    
    inherited Create(CreateSuspended);
    
    Прокрутим чуть ниже и увидим процедуру TVANSThread.Execute;
    Она выглядит так:
    
    procedure TVANSThread.Execute;
    begin
    
    end;
    
    В неё вписываем следующий код:
    
    for i:=0 to 10000 do Form1.Memo1.Lines.Add(IntToStr(i))
    
    И не забываем о переменных:
    
    var i:integer;
    
    Далее кликаем по кнопке и вписываем следующий код:
    
    TVANSThread.Create(false);

    Анальный урок.
    Автор - анальный учитель с сайта www.vans-soft.ru/

    Stertor, 04 Июля 2013

    Комментарии (330)
  5. Pascal / Говнокод #13305

    +132

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    20. 20
    21. 21
    22. 22
    23. 23
    24. 24
    procedure TNewThread.Execute;
    var Shellapi,  Account, Username, Password:string;
        Pars_1, Pars_2:integer;
    begin
    Form1.Caption:='E-mail spamer by klychev - Work!'; 
    while Work do
    begin
    Form1.ProgressBar1.Position:=Form1.ProgressBar1.Position+1;
    if Form1.Edit3.Text=Form1.Edit4.Text then
    begin
    Work:=False;
    Form1.Button1.Enabled:=True;
    Form1.Button2.Enabled:=False;
    Form1.Caption:='E-mail spamer by klychev - Finish!';
    end
    else
    begin
    Account:='.'+Form1.Memo1.Lines[strtoint(Form1.Edit1.Text)]+'.';
    Pars_1:=Pos('.',Account)+Length('.');
    for Pars_2:=Pars_1 to Length(Account) do
    if Account[Pars_2]=';' then Break;
    Username:=Copy(Account,Pars_1,Pars_2-Pars_1);
    Pars_1:=Pos(';',Account)+Length(';');
    for Pars_2:=Pars_1 to Length(Account) do

    Попытка посношаться, через открытое окно движущегося поезда.

    Stertor, 04 Июля 2013

    Комментарии (2)
  6. C# / Говнокод #13304

    +124

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    // System.Web.Security.FormsAuthentication
    /// <summary>Returns the redirect URL for the original request that caused the redirect to the login page.</summary>
    /// <returns>A string that contains the redirect URL.</returns>
    /// <param name="userName">The name of the authenticated user. </param>
    /// <param name="createPersistentCookie">This parameter is ignored.</param>
    public static string GetRedirectUrl(string userName, bool createPersistentCookie)
    {
    	if (userName == null)
    	{
    		return null;
    	}
    	return FormsAuthentication.GetReturnUrl(true);
    }

    http://msdn.microsoft.com/en-us/library/system.web.security.formsauthentication. getredirecturl.aspx
    Разработчики ASP.NET'а опять доставляют... И не лень было столько параметров делать, а потом ещё и описывать...

    TauSigma, 04 Июля 2013

    Комментарии (6)
  7. C# / Говнокод #13303

    +117

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    16. 16
    17. 17
    18. 18
    19. 19
    if (!authorized)
    {
        // No, "I'm a teapot" is not what we really want, but the BuildMaster security module will
        // replace it with a 401 (which we actually want)
        context.Response.StatusCode = 418;
        context.Response.Write("Not authorized");
        context.Response.AddHeader("WWW-Authenticate", "Basic realm=\"BuildMaster URL Trigger\"");
        context.ApplicationInstance.CompleteRequest();
        return;
    }
    
    ...
    
    context.EndRequest += (s,e) =>
    {
        HttpApplication app = (HttpApplication)s;
        if (app.Context.Response.StatusCode == 418)
            app.Context.Response.StatusCode = 401;
    }

    http://blog.inedo.com/2010/10/12/http-418-im-a-teapot-finally-a-%E2%80%9Clegitimate%E2%80%9D-use/

    Костыль для обхода "шибко умного" поведения ASP.NET Forms Authentication, который меняет код 401 на 302-перенаправление на форму логина. А разработчику нужен именно 401.

    someone, 04 Июля 2013

    Комментарии (4)
  8. C++ / Говнокод #13302

    +15

    1. 1
    2. 2
    3. 3
    typedef std::intptr_t difference_type;
    //...
    const difference_type index_relative_unsigned=std::abs(index_relative);

    LispGovno, 04 Июля 2013

    Комментарии (4)
  9. C# / Говнокод #13301

    +130

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    13. 13
    14. 14
    15. 15
    public object Clone()
    {
    	using (MemoryStream stream = new MemoryStream())
    	{
    		BinaryFormatter formatter = new BinaryFormatter();
    		formatter.Serialize(stream, this);
    		stream.Position = 0;
    		ColLink result = (ColLink)formatter.Deserialize(stream);
    		result.Id = IdentityManager.GetId();
    		result.GUID = Guid.NewGuid();
    		result.setEdited();
    		result.setCreated();
    		return result;
    	}
    }

    Клонирование

    dormendo, 04 Июля 2013

    Комментарии (18)
  10. C++ / Говнокод #13300

    +79

    1. 1
    cout << "Hello world!";

    Паражают люди каторые думают што с++ язык праграмиравания Если нихватаит мазгов чтобы изучить html и css то лучшы не пазортися и ни учит всякие говно-языки типа с++ jawa pyton и т.д. Ищо называют сибя прагармистами неудачники

    PragramistOtBoga, 04 Июля 2013

    Комментарии (21)