1. Лучший говнокод

    В номинации:
    За время:
  2. JavaScript / Говнокод #13088

    +155

    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
    --- a/src/Foo.js
    +++ b/src/Foo.js
    @@ -1,21 +1,61 @@
         var Foo = (function () {
             function Foo(productId, productSettings, overrides) {
                 var backup, loc = document.location, home;
    -            this._sdkSettings = Program.Utils.deepCopy(Take5.settings);
    +            this._sdkSettings = JSON.parse(JSON.stringify(TGH5.settings));
                 if(overrides) {
    -                this._sdkSettings = Program.Utils.copyProperties(overrides, this._sdkSettings);
    +                if('debug' in overrides) {
    +                    this._sdkSettings.debug = overrides.debug;
    +                }
    +                if('inDemoMode' in overrides) {
    +                    this._sdkSettings.inDemoMode = overrides.inDemoMode;
    +                }
    +                if('sdkHome' in overrides) {
    +                    this._sdkSettings.sdkHome = overrides.sdkHome;
    +                }
    +                if('eixtUrl' in overrides) {
    +                    this._sdkSettings.exitUrl = overrides.exitUrl;
    +                }
    +                if('ads' in overrides) {
    +                    if('preRoll' in overrides.ads) {
    +                        this._sdkSettings.ads.preRoll = overrides.ads.preRoll;
    +                    }
    +                    if('inGame' in overrides.ads) {
    +                        this._sdkSettings.ads.inGame = overrides.ads.inGame;
    +                    }
    +                    if('postRoll' in overrides.ads) {
    +                        this._sdkSettings.ads.postRoll = overrides.ads.postRoll;
    +                    }
    +                }
    +                if('reporting' in overrides) {
    +                    if(overrides.reporting instanceof Object) {
    +                        if('analyticsId' in overrides.reporting) {
    +                            this._sdkSettings.reporting.analyticsId = overrides.reporting.analyticsId;
    +                        }
    +                        if('site' in overrides.reporting) {
    +                            this._sdkSettings.reporting.site = overrides.reporting.site;
    +                        }
    +                        if('virtualPageRoot' in overrides.reporting) {
    +                            this._sdkSettings.reporting.virtualPageRoot = overrides.reporting.virtualPageRoot;
    +                        }
    +                        if('initParams' in overrides.reporting) {
    +                            this._sdkSettings.reporting.initParams = overrides.reporting.initParams;
    +                        }
    +                    } else {
    +                        this._sdkSettings.reporting = overrides.reporting;
    +                    }
    +                }
                 }

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

    wvxvw, 02 Июня 2013

    Комментарии (2)
  3. PHP / Говнокод #13043

    +153

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    $payout_rate = isset( $transfer['draft'] ) ? ( $transfer['payout_rate'] == '' ? 0 : $transfer['payout_rate'] ) : 1;
            if( isset( $this->_drafts[$transfer["agent"]][$transfer["id_project"]][$transfer["draft_date"]][$currencyId]["sum"] ) ) {
                $this->_drafts[$transfer["agent"]][$transfer["id_project"]][$transfer["draft_date"]][$currencyId]["quantity"] += $transfer["quantity"];
                $this->_drafts[$transfer["agent"]][$transfer["id_project"]][$transfer["draft_date"]][$currencyId]["sum"] += $transfer["perechisleno"] * $rate * $payout_rate;
                $this->_drafts[$transfer["agent"]][$transfer["id_project"]][$transfer["draft_date"]][$currencyId]["commission"] += $transfer["udergano"] * $rate * $payout_rate;
            }
            else {
                $this->_drafts[$transfer["agent"]][$transfer["id_project"]][$transfer["draft_date"]][$currencyId]["quantity"] = $transfer["quantity"];
                $this->_drafts[$transfer["agent"]][$transfer["id_project"]][$transfer["draft_date"]][$currencyId]["sum"] = $transfer["perechisleno"] * $rate * $payout_rate;
                $this->_drafts[$transfer["agent"]][$transfer["id_project"]][$transfer["draft_date"]][$currencyId]["commission"] = $transfer["udergano"] * $rate * $payout_rate;
            }

    тайный культ массивов

    dimkich, 24 Мая 2013

    Комментарии (2)
  4. PHP / Говнокод #13035

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    .td-basket .region>.td-list .td-a>p+div>p:first-child+p,
    .td-basket .region>.td-list>div>img+div>p+p>span,
    .td-basket .region>.td-list .td-a>p+div+div>p:first-child+p,
    .td-basket .region>.td-list h2
     {
       font-size: 16px;
    }

    Ниндзя-верстак

    dsxack, 22 Мая 2013

    Комментарии (2)
  5. Ruby / Говнокод #13029

    −85

    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
    def self.process(site, object = nil, &block)
        dont_unblock = false
        block_res = true
    
        site.lock!
        if site.assets_blocked?
          dont_unblock = true
          raise Asset::BlockedException
        end
        site.assets_blocked = true
        site.save!
    
        block_res = yield if block_given?
    
        return false unless block_res
        return object.save if object
    
        true
      ensure
        site.update_attribute(:assets_blocked, false) unless dont_unblock
      end
    
      # во всех местах, где с ассетами делалось хоть что-нибудь, копипастился такой кусок:
    
          result =
          begin
            @asset = @site.assets.new
            @asset.process do
              @asset.attached = params[:file]
              @asset.folder_path = params[:path]
            end
          rescue Asset::BlockedException
            render json: { errors: [I18n.t("layout.assets.errors.assets_blocked")] } and return
          end

    По мотивам http://govnokod.ru/13027: транзакции изобретены не нами, давайте сделаем их сами!

    whitequark, 21 Мая 2013

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

    +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
    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
    #include <stdio.h>
    #include <stdlib.h>
    #include <unistd.h>
    #include <sys/types.h>
    
    void usage(char *progname)
    {
        fprintf(stderr,"Usage: %s [-i <interval>]\n",progname);
        exit(1);
    }
    
    int main(int argc, char *argv[])
    {
        int arg;
        size_t alloc = 1000;
        uid_t userid = getuid();
    
        while ((arg = getopt(argc,argv,"")) != -1) {
            switch(arg) {
                default:
                    usage(argv[0]);
                    break;
            }
        }
    
        //const char *basecmd = "sudo turbostat -s -i 1 2>&1";
        char ghz[8];
        char *junkbuffer = malloc(sizeof(char)*1000);
        const char *basecmd = "turbostat -s -i 1 2>&1";
    
        seteuid(0);
        setuid(0);
        FILE *turboPipe = popen(basecmd,"r");
        seteuid(userid);
        setuid(userid);
    
        /* ignore first line */
        getline(&junkbuffer,&alloc,turboPipe);
        fscanf(turboPipe,"%*s %s %*s %*s %*s %*s %*s %*s %*s %*s %*s\n",ghz);
        free(junkbuffer);
    
        fprintf(stdout,"%s\n",ghz);
        pclose(turboPipe);
    
        return 0;
    }

    Установил новый Debian на ноут. Искал инфу по Intel TurboBoost.
    Наткунлся на это
    http://technicallyliving.blogspot.com/2012/06/intel-turboboost-and-linux.html

    Улыбнул вайл-свитч. Что мешало автору обойтись без свитча?

    denis90, 09 Мая 2013

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

    +135

    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
    public bool IsSupportServerVersion()
        {
          if (this._connMaster.State == ConnectionState.Closed)
            this._connMaster.Open();
          if (int.Parse(((object) this._connMaster.ServerVersion.Split(new char[1]
          {
            '.'
          })[0]).ToString()) >= 9)
          {
            if (int.Parse(((object) this._connMaster.ServerVersion.Split(new char[1]
            {
              '.'
            })[0]).ToString()) <= 10)
              return true;
          }
          return false;
        }

    Проверка версии MSSQL. На фоне того, что писателями заявлена работа с 2005, смотрится особенно хорошо.

    croacker, 08 Мая 2013

    Комментарии (2)
  8. Си / Говнокод #12961

    +135

    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
    /*
        * Now do an in-place copy.
        * Map (R) to (r) and (TM) to (tm).
        * The era of teletypes is long gone, and there's
        * -really- no need to shout.
        */
    while (*src != '\0') {
        if (src[0] == '(') {
            if (strncmp(src + 1, "R)", 2) == 0) {
                (void) strncpy(dst, "(r)", 3);
                src += 3;
                dst += 3;
                continue;
            }
            if (strncmp(src + 1, "TM)", 3) == 0) {
                (void) strncpy(dst, "(tm)", 4);
                src += 4;
                dst += 4;
                continue;
            }
        }
        *dst++ = *src++;
    }
    *dst = '\0';

    Не говнокод, но забавно.
    Инициализация процессоров (и сбор cpuid) в Solaris
    http://src.illumos.org/source/xref/illumos-gate/usr/src/uts/i86pc/os/cpuid.c#2488

    myaut, 03 Мая 2013

    Комментарии (2)
  9. PHP / Говнокод #12954

    +149

    1. 1
    2. 2
    jQuery('.navbar .nav li').eq(1).addClass('dropdown').children('a').addClass('dropdown-toggle');
    jQuery('.navbar .nav li').eq(2).append("<ul class='dropdown-menu unstyled'><li><a href='/production/xx/'>оборудование</a></li>

    Добавить новый пункт меню - не вопрос...

    oxser, 30 Апреля 2013

    Комментарии (2)
  10. Pascal / Говнокод #12945

    +78

    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
    {$ifdef Profile}
      {$define __TRACE__:= try Profile_TraceCall}
      {$define __END__:=finally Profile_LeaveCall; end;}
    {$else}
      {$define __TRACE__:= //}
      {$define __END__:=}
    {$endif}
    
    procedure Foo();
    begin
      __TRACE__('Foo');
      ...
      __END__
    end;

    FPC.

    runewalsh, 28 Апреля 2013

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

    +146

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    switch($k) {
    	default: { // Вот так поворот О_о, пацаны, я сам в шоке!
    		$ret->$k = $v;
    	}
    }

    снова мое.

    Serabas, 16 Апреля 2013

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