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

    +4

    1. 1
    2. 2
    this.navigator = navigator.userAgent || navigator.vendor || window.opera;
    this.mobile = /(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od|ad)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(this.navigator) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(this.navigator.substr(0,4));

    substr(0,4), Карл

    makc3d, 20 Марта 2016

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

    +1

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    public function k($heh) {
    	return ($heh == "") ? rand() : $heh;
    }
    
    // ...
    $stars += count(array_intersect(
    	array($this->k($this->id_type), $this->k($this->id_type2), $this->k($this->id_type3)), 
    	array($this->k($that->id_type), $this->k($that->id_type2), $this->k($that->id_type3))
    ));
    // ...

    не учитываем пустые id_type

    Uhehesh, 18 Марта 2016

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

    −1

    1. 1
    http://freelansim.ru/tasks/139911?utm_source=toster&utm_medium=referral&utm_campaign=task&utm_content=block_freelansim

    Ну просто поржать.
    А так вообще печально.

    ЗЫ. Не давно на хабре читал про бакдор в wordpress е залившейся через обновление плагина.

    Vasiliy, 18 Марта 2016

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

    −97

    1. 1
    2. 2
    3. 3
    4. 4
    ОбластьШапкаУслуги.Параметры.ДатаДок  = Формат(Строка(Формат(НайтиДатуОт(Свойства),"ДФ=dd.MM.yyyy")), "ДФ=dd.MM.yyyy");
    
    
    .. + Строка(Формат(Дата(Договор.Основной.Найти(Идентификатор,"Идентификатор").Дата),"ДЛФ=Д"));

    Этот писатель не только умеет преобразовывать типы, но и использовать заветную комбинацию для быстрого написания кода (Ctrl+C -> Ctrl+V), потому что подобных творений было найдено более тысячи при глобальном поиске по конфигурации.

    CMblCL, 18 Марта 2016

    Комментарии (3)
  5. Куча / Говнокод #19653

    +4

    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
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    {- This code intentionally was made slightly cryptic -}
    {-# LANGUAGE GADTs, StandaloneDeriving, UnicodeSyntax, KindSignatures, FlexibleInstances, LambdaCase, CPP, BangPatterns #-}
    import System.Exit
    import Data.Functor
    import Control.Monad.IO.Class
    import Control.Monad.Trans.Cont
    import System.Random
    import System.Posix.Signals
    import System.Environment
    import Control.Concurrent.MVar
    
    instance Eq (Int → Int) where
      _ == _ = True -- It's a hack
    
    infixl 7 :.
    
    data T ∷ * where {J, Â, Â', S, K ∷ T; (:.) ∷ T → T → T; Ψ ∷ {σ ∷ String} → T
                     ;F ∷ (Int → Int) → T; N ∷ Int → T; Ø ∷ String → T}
    
    parse ∷ String → [T] → T
    parse ('f':'u':c) t = parse c (J:t)
    parse ('b':'a':'r':c) t = parse c (Â:t)
    parse ('~':c) (a:b:t) = parse c (b:.a:t)
    parse ('~':_) _ = error "Parse error: missing operand(s)"
    parse (_:c) t = parse c t
    parse [] (h:_) = h :. Ψ []
    parse [] [] = error "Parse error: empty program"
    
    s ∷ T → T
    s (J :. x) = (x :. S) :. K
    s (K :. x :. _) = x
    s (S :. x :. y :. z) = (x :. z) :. (y :. z)
    s (F f :. N i) = N $ f i
    s (F f :. F g) = F $ f . g
    s (Â' :. N i :. ψ @ (Ψ {})) = ψ {σ = toEnum i : σ ψ}
    s (Â :. n :. ψ @ (Ψ {})) = Â' :. (n :. F (+1) :. N 0) :. ψ
    -- Other cases
    s (a :. b) = (s a) :. (s b)
    s x = x
    
    eval ∷ (T → t) → (T → t) → T → t
    eval fp done t | t == t'   = done t
                   | otherwise = fp t'
        where t' = s t
    
    ψs a@Ψ{σ=s} = [(a, s)]
    ψs (a:.b) = ψs a ++ ψs b
    ψs _ = []
    
    r' ∷ T → [(T, String)]   -- Very inefficient; should be rewritten
    r' a | null t = [(a, s)] where ((_, s):t) = ψs a
    r' (a :. b) = r' a ++ r' b
    r' _ = []
    
    r ∷ T → IO (Maybe T)
    r t = case r' t of
            [] → return Nothing
            t' → ((t' !!) <$> randomRIO (0, length t' - 1)) >>= \case
               (Ψ{}, s) → putStrLn (reverse s) >> return Nothing
               (t'', s) → putStrLn (reverse s) >> return (Just t'')
    
    setMVar v = (tryTakeMVar v >>) . putMVar v
    
    loop v f n = callCC $ \done → loop1 done (\fp → f fp done) n
      where loop2 interrupt f' n = do
              n' ← liftIO (readMVar v) >>= \case
                0 → f' interrupt n
                _ → callCC $ \fp → f' fp n
              liftIO $ modifyMVar_ v $ (\k → return $ k-1)
              loop2 interrupt f' n'
            loop1 done f' n = do
              n' ← callCC $ \int → loop2 int f' n
              liftIO $ putStrLn "Measure (m) Abort (a) Continue (c) Run steps (number)"
              (liftIO getLine) >>= \case
                "a" → f' done n' >> return ()
                "c" → liftIO $ setMVar v (-1)
                "m" → liftIO (r n') >>= \case
                  Nothing → liftIO exitSuccess
                  Just n'' → loop1 done f' n'' >> return ()
                a → case readsPrec 0 a of
                       (n,_):_ → liftIO $ setMVar v n
                       _ → liftIO $ putStrLn "Not understood."
              loop1 done f' n'
    
    main ∷ IO ()
    main = do
      (file, n) ← getArgs >>= \case
        [f] → return (f, -1)
        ["-s", n, f] → case readsPrec 0 n of
                        (n',_):_ → return (f, n')
                        _ → error "Argument of -s should be a number"
        _ → error "Insufficient arguments. Expected [-s NUMBER_OF_STEPS] FILE"
      cnt ← newMVar n
      installHandler keyboardSignal (Catch $ setMVar cnt 0) Nothing
      void $ (r =<<) (evalContT $ loop cnt eval =<< (parse <$> readFile file))

    больше трясин богу тьюринг-полноты
    1) литературное программирование
    2) зайчатки REPL
    3) чисто функциональное IO без манад и uniq-types
    4) "квантовые" вычисления
    5) только два комбинатора

    CHayT, 18 Марта 2016

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

    0

    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
    public static IEnumerable fGetPostIMAP(string port, int port2, string username, string password, string startCount, string path)
    {
        Stopwatch swatch = new Stopwatch();
        swatch.Start();
        int Delay = 10;
        System.IO.StreamWriter sw = null;
        System.Net.Sockets.TcpClient tcpc = null;
        int bytes = -1;
        int is_file = 0;
        int is_att = 0;
        byte[] buffer;
        StringBuilder sb = new StringBuilder();
    //...
        string UID = "";
        string From;
        try
        {
    //...
    
                        if (ListMessage.IndexOf("filename=") > -1)
                        {
                            temp = ListMessage.Replace("filename=", "");
                            temp = temp.Trim();
                            file_name = temp;
                            is_file = 1; temp = ""; is_att = 1;
                        }
    //...
                            if (is_file == 1)
                            {
                                if (ListMessage.IndexOf("--") > -1)
                                    end_file = 1;
                                else
                                    temp = temp + ListMessage;
    
                            }
                            if (ListMessage == "")
                            {
                                is_file = 1;
                            }
    //...
        }
        catch (Exception ex)
        {
            rows.Add(new object[] { "ERROR:" });
            rows.Add(new object[] { ex.Message });
        }
        finally
        {
            if (sw != null)
            {
                sw.Close();
                sw.Dispose();
            }
            if (tcpc != null)
            {
                tcpc.Close();
            }
        }
        return rows;
    }

    Делфи головного мозга просвечивает в каждой строчке. Даже использованием 0/1 вместо булева типа не скрыть дельфишной сути.

    tucvbif, 17 Марта 2016

    Комментарии (26)
  7. JavaScript / Говнокод #19651

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    (function (angular, $, undefined) {
      'use strict';
      if ($.fn['nanoScroller'] === undefined) {
        throw new Error("nanoScrollerJS is not defined in jQuery");
      }
    
    ...
    
    }(angular, jQuery));

    kzmpianist, 17 Марта 2016

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

    +2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    /**
      * @brief Макрос вызова функции изменения имени файла лога ПИМ
      *
      * @param FILE_NAME  Имя файла лога
      *
      * @return Ничего
      */
    #define LOG_PIM_SET_FILE_NAME(FILE_NAME)  Soc::setLogFileName(FILE_NAME)

    Самый нужный макрос в мире

    cpp_best_practo, 17 Марта 2016

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

    +6

    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
    function utf8ToCp1251($s,$type="w") {
        if ((is_string($s) && strlen($s)>0) && ((mb_detect_encoding($s,'UTF-8,CP1251')) == "UTF-8"))    { 
            $out="";
            for ($c=0;$c<strlen($s);$c++)         { 
                $i=ord($s[$c]); 
                if ($i<=127) @$out.=$s[$c]; 
                if (@$byte2)     { 
                    $new_c2=($c1&3)*64+($i&63); 
                    $new_c1=($c1>>2)&5; 
                    $new_i=$new_c1*256+$new_c2; 
                    if ($new_i==1025) { 
                        $out_i=168; 
                    } else { 
                        if ($new_i==1105) { 
                            $out_i=184;
                        } else { 
                        $out_i=$new_i-848; 
                        } 
                    } 
                    @$out.=chr($out_i); 
                    $byte2=false; 
                } 
                
                if (($i>>5)==6)  { 
                  $c1=$i; 
                  $byte2=true; 
                } 
            } 
            return $out; 
        } 
        else return $s; 
    }

    Одна из стандартных функций битрикса.
    Видимо iconv им не знаком...

    tanur, 17 Марта 2016

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

    0

    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
    #include <iostream>
    
    using namespace std;
    
    int main(){
        int n = 60;
        int a = 1 << n;
        cout << a << endl;
        n = 33;
        a = 1 << n;
        cout << a << endl;
        unsigned m = 33;
        unsigned b = 1u << m;
        cout << b << endl;
        // a = 1 << 32;
        // cout << a << endl;
        return 0;
    }

    Моар:
    http://acm.math.spbu.ru/~kunyavskiy/cpp/sol02.cpp

    UltimateDelighter, 16 Марта 2016

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