1. JavaScript / Говнокод #10051

    +172

    1. 1
    $(document.getElementById(containerid))

    beardeddev, 26 Апреля 2012

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

    +123

    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
    static bool HasSp1()
    {
    	try
    	{
    		WaitHandle h = new ManualResetEvent(true);
    		h.WaitOne(0);
    		return true;
    	}
    	catch
    	{
    		return false;
    	}
    }

    Проверка наличия Service Pack 1 к .NET Framework 3.5 (в продолжение предыдущего ГК). Да, есть другие варианты, но этот не выглядит хуже.

    Steve_Brown, 26 Апреля 2012

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

    +111

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    do
    {
        ...
    } while (!stopEvent.WaitOne(1000, false));
    // Вылетает с MissingMethodException, если не стоит SP1 к .NET Framework 3.5
    //} while (!stopEvent.WaitOne(1000));

    Как хорошо, что мощная и надежная технология .NET избавила нас от Dll Hell!

    Steve_Brown, 26 Апреля 2012

    Комментарии (21)
  4. JavaScript / Говнокод #10047

    +152

    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
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    var nav = null;
    
    function init_dev_steps(step) {
      this.step = step;
      this.steps_glass = ge('dev_steps_s');
      this.steps_glass_c = geByClass('content', this.steps_glass)[0];
      this.steps_wrap = ge('dev_steps_c');
      this.steps_content = geByClass('content', this.steps_wrap)[0];
      this.anim = Fx.Transitions.sineInOut;
    
      this.move = function(to_step) {
        if (to_step == (this.moving ? this.m_to : this.step)) return;
        var moving = true;
        if (!this.moving) {
          moving = false;
          this.m_height = this.steps_wrap.offsetHeight - 2;
          this.m_g = (this.step - 1) * 140;
          this.m_c = (1 - this.step) * 540;
          this.m_cur = this.step;
          this.tick = 0;
          var self = this;
          this.moving = setInterval(function() {
            self.m_time += 13;
            if (self.anim_h) {
              
              self.tick += 1;
              
              if (self.tick == 3) {
                if (self.m_time > self.h_time) {
                  self.m_height = self.m_to_height;
                } else {
                  self.m_height = self.anim(self.m_time, self.m_from_height, self.m_to_height - self.m_from_height, self.h_time);
                }
                self.steps_wrap.style.height = self.m_height + 'px';
                self.tick = 0;
              }
            
              if (self.m_time > self.h_time) {
                self.m_g = self.m_to_g;
                self.m_c = self.m_to_c;
                self.anim_h = false;
                self.anim_v = (self.m_to_height != self.m_height);
                self.m_time -= self.h_time;
              } else {
                self.m_g = self.anim(self.m_time, self.m_from_g, self.m_to_g - self.m_from_g, self.h_time);
                self.m_c = self.anim(self.m_time, self.m_from_c, self.m_to_c - self.m_from_c, self.h_time);
                if (self.diff) self.steps_glass.style.width = self.anim(self.m_time, self.from, self.diff, self.h_time)+'px';
              }
              self.steps_content.style.marginLeft = self.m_c + 'px';
    
              self.steps_glass.style.marginLeft = self.m_g + 'px';
              self.steps_glass_c.style.marginLeft = (-self.m_g - 2) + 'px';
    
              self.m_cur = Math.floor(self.m_g / 140) + 1;
    
            }
            if (!self.anim_h) {
              self.step = self.m_to;
              //hab.setHash('devstep' + this.step);
              location.hash = 'devstep' + self.step;
              self.steps_wrap.style.height = self.m_to_height + 'px';
              clearInterval(self.moving);
              self.moving = false;
              if (self.step == 3 && ge('inv_password')) focus('inv_password');
            }
          }, 13);
        }
    
    
    ...

    Govnisti_Diavol, 26 Апреля 2012

    Комментарии (0)
  5. Си / Говнокод #10046

    +142

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    if(selected == 3){
         if(count == 1){
              displayIntResult(0);
         }else{
              if(count == 1){
                   displayIntResult(0);
              }else{
               // код
              }
        }
         // код
    }

    Надо больше спать. Обнаружено после ночи кодинга

    denis90, 26 Апреля 2012

    Комментарии (1)
  6. VisualBasic / Говнокод #10045

    −92

    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
    61. 61
    62. 62
    63. 63
    64. 64
    Sub Ìàêðîñ1()
      Sheets("Îò÷åò_Âêë.1_15-98").Select
        For i = 0 To 25 Step 1
            Sheets(Sheets.Count).Select
            If i = 0 Then
                Range("A:A, B:B").Select
            ElseIf i = 1 Then
                Range("A:A, C:C").Select
            ElseIf i = 2 Then
                Range("A:A, D:D").Select
            ElseIf i = 3 Then
                Range("A:A, E:E").Select
            ElseIf i = 4 Then
                Range("A:A, F:F").Select
            ElseIf i = 5 Then
                Range("A:A, G:G").Select
            ElseIf i = 6 Then
                Range("A:A, H:H").Select
            ElseIf i = 7 Then
                Range("A:A, I:I").Select
            ElseIf i = 8 Then
                Range("A:A, J:J").Select
            ElseIf i = 9 Then
                Range("A:A, K:K").Select
            ElseIf i = 10 Then
                Range("A:A, L:L").Select
            ElseIf i = 11 Then
                Range("A:A, M:M").Select
            ElseIf i = 12 Then
                Range("A:A, N:N").Select
            ElseIf i = 13 Then
                Range("A:A, O:O").Select
            ElseIf i = 14 Then
                Range("A:A, P:P").Select
            ElseIf i = 15 Then
                Range("A:A, Q:Q").Select
            ElseIf i = 16 Then
                Range("A:A, R:R").Select
            ElseIf i = 17 Then
                Range("A:A, S:S").Select
            ElseIf i = 18 Then
                Range("A:A, T:T").Select
            ElseIf i = 19 Then
                Range("A:A, U:U").Select
            ElseIf i = 20 Then
                Range("A:A, V:V").Select
            ElseIf i = 21 Then
                Range("A:A, W:W").Select
            ElseIf i = 22 Then
                Range("A:A, X:X").Select
            ElseIf i = 23 Then
                Range("A:A, Y:Y").Select
            ElseIf i = 24 Then
                Range("A:A, Z:Z").Select
            ElseIf i = 25 Then
                Range("A:A, AA:AA").Select
            End If
            Selection.Copy
            Sheets.Add
            Sheets(Sheets.Count - 1).Select
            Columns("A:A").Select
            ActiveSheet.Paste
        Next i
    End Sub

    Макрос для копирования подряд расположенных столбцов на отдельные листы

    usstass, 25 Апреля 2012

    Комментарии (14)
  7. PHP / Говнокод #10041

    +89

    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
    function uIsCommentAllowed($id_all)
    	{
    		$db = 'i_all';
    		$this->db->select('comment');
    		$this->db->where('id_all',$id_all);
    		$query = $this->db->get($db);
    		if ($query->num_rows() == 0) return false;
    		else 
    		{
    			$row = $query->row();
    			if ($row->comment == 1) return true;
    			if ($row->comment == 1) return false;
    		}	
    		return false;
    	}

    Кто не видит где говно, показываю: if ($row->comment == 1) return true; if ($row->comment == 1) return false;
    Теперь главный вопрос - почему на при тестировании данная ошибка не проявляется, и все вообще работает верно?

    increazon, 25 Апреля 2012

    Комментарии (31)
  8. Куча / Говнокод #10040

    +99

    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
    import Text.Parsec
    import Control.Monad
    
    romanToArabic :: String -> Either ParseError Integer
    romanToArabic = parse (genParser (Nothing : Nothing : map Just romans)) "" where
    
        romans = [('M', 1000), ('D', 500), ('C', 100),
                  ('L', 50), ('X', 10), ('V', 5), ('I', 1)]
    
        genParser [_] = eof >> return 0
        genParser (ten : five : one : rest) = state1 where
    
            state1 = choice [on one state2, on five state3, next]
            state2 = choice [on (sub2 five one) next, on (sub2 ten one) next,
                             on one state5, next]
            state3 = choice [on one state4, next]
            state4 = choice [on one state5, next]
            state5 = choice [on one next, next]
            next = genParser (one : rest)
    
            on Nothing _ = fail ""
            on (Just (ch, val)) nextNode = char ch >> nextNode >>= return . (+val)
    
            sub2 = liftM2 $ \(ch1, val1) (ch2, val2) -> (ch1, val1-2*val2)

    Кучка в ответ на http://govnokod.ru/9995#comment136058

    > с другой стороны раз хаскель, то хотелось бы, например:
    > *Main> romanToArabic "LC"
    > Left (line 1, column 2):
    > unexpected 'C'
    > expecting "X", "IX", "IV", "V", "I" or end of input

    bormand, 25 Апреля 2012

    Комментарии (19)
  9. Python / Говнокод #10039

    −94

    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
    #*тут определение факториала*
    
    fac_missing_end = factorial(100)/1000000000000000000000000
    
    #there are 134 digits when you take off the zeroes at the end
    
    sum_of_digits = 0
    
    recent_digit = fac_missing_end%10
    new_fac = fac_missing_end/10
    sum_of_digits = sum_of_digits + recent_digit
    recent_digit = new_fac%10
    new_fac = new_fac/10
    sum_of_digits = sum_of_digits + recent_digit
    recent_digit = new_fac%10
    new_fac = new_fac/10
    sum_of_digits = sum_of_digits + recent_digit
    recent_digit = new_fac%10
    new_fac = new_fac/10
    sum_of_digits = sum_of_digits + recent_digit
    
    # еще пару десятков строк такого говна
    
    print sum_of_digits

    http://projecteuler.net/problem=20
    http://projecteuler.net/thread=20;page=8


    >This is ridiculous, but it worked instantaneously
    Первый шаг к решению проблемы — признать что у тебя есть проблема.

    TheHamstertamer, 25 Апреля 2012

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

    +93

    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
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    class Auth_Yadis_ParanoidHTTPFetcher extends Auth_Yadis_HTTPFetcher {
        function get($url, $extra_headers = null)
        {
        /* неcущественное пропущено */
                if (defined('CURLOPT_NOSIGNAL')) {
                    curl_setopt($c, CURLOPT_NOSIGNAL, true);
                }
    
                if (!$this->allowedURL($url)) {
                    Auth_OpenID::log("Fetching URL not allowed: %s",
                                     $url);
                    return null;
                }
    
                curl_setopt($c, CURLOPT_WRITEFUNCTION,
                            array($this, "_writeData"));
                curl_setopt($c, CURLOPT_HEADERFUNCTION,
                            array($this, "_writeHeader"));
    
                if ($extra_headers) {
                    curl_setopt($c, CURLOPT_HTTPHEADER, $extra_headers);
                }
    
                $cv = curl_version();
                if(is_array($cv)) {
                  $curl_user_agent = 'curl/'.$cv['version'];
                } else {
                  $curl_user_agent = $cv;
                }
                curl_setopt($c, CURLOPT_USERAGENT,
                            Auth_OpenID_USER_AGENT.' '.$curl_user_agent);
                curl_setopt($c, CURLOPT_TIMEOUT, $off);
                curl_setopt($c, CURLOPT_URL, $url);
    
                if (defined('Auth_OpenID_VERIFY_HOST')) {
                    // set SSL verification options only if Auth_OpenID_VERIFY_HOST
                    // is explicitly set, otherwise use system default.
                    if (Auth_OpenID_VERIFY_HOST) {
                        curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true);
                        curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2);
                        if (defined('Auth_OpenID_CAINFO')) {
                            curl_setopt($c, CURLOPT_CAINFO, Auth_OpenID_CAINFO);
                        }
                    } else {
                        curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
                    }
                }
    
                curl_exec($c);
        /* неинтересное пропущено */
        }
        
        function post($url, $body, $extra_headers = null)
        {
            if (!$this->canFetchURL($url)) {
                return null;
            }
    
            $this->reset();
    
            $c = curl_init();
    
            if (defined('CURLOPT_NOSIGNAL')) {
                curl_setopt($c, CURLOPT_NOSIGNAL, true);
            }
    
            curl_setopt($c, CURLOPT_POST, true);
            curl_setopt($c, CURLOPT_POSTFIELDS, $body);
            curl_setopt($c, CURLOPT_TIMEOUT, $this->timeout);
            curl_setopt($c, CURLOPT_URL, $url);
            curl_setopt($c, CURLOPT_WRITEFUNCTION,
                        array($this, "_writeData"));
    
            if (defined('Auth_OpenID_VERIFY_HOST')) {
                // set SSL verification options only if Auth_OpenID_VERIFY_HOST
                // is explicitly set, otherwise use system default.
                if (Auth_OpenID_VERIFY_HOST) {
                    curl_setopt($c, CURLOPT_SSL_VERIFYPEER, true);
                    curl_setopt($c, CURLOPT_SSL_VERIFYHOST, 2);
                    if (defined('Auth_OpenID_CAINFO')) {
                        curl_setopt($c, CURLOPT_CAINFO, Auth_OpenID_CAINFO);
                    }
                } else {
                    curl_setopt($c, CURLOPT_SSL_VERIFYPEER, false);
                }
            }
    
            curl_exec($c);
    /* to be continued */

    Фрагмент едва ли не самой популярной библиотеки OpenID, а именно клиентской части: http://janrain.com/openid-enabled/
    Всё бы было хорошо, но залогиниться, используя лайвджорналовский опенайдишник, не получается. По форумам поползли слухи, что ЖЖ не полностью поддерживает протокол OpenID (хотя протокол разработал Фицпатрик, один из создателей LiveJournal); что он метод POST не поддерживает, поэтому его нужно менять на GET; предлагались совершенно безумные хаки, которые на самом деле не работают...

    А ларчик просто открывался. Для поддержки ЖЖ достаточно в приведённый код добавить пару строк. Открыть спойлер или кто-нибудь угадает?

    inkanus-gray, 25 Апреля 2012

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