1. Куча / Говнокод #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)
  2. 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)
  3. 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)
  4. 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)
  5. 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)
  6. 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)
  7. PHP / Говнокод #19644

    +2

    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
    //получаем Элемент 
    $resource = CIBlockElement::GetByID($Bid);
    if ($ob = $resource->GetNextElement())
    {
        //вытягиваем поля, свойства
        $arFields = $ob->GetFields();
        $arFields['PROPERTIES'] = $ob->GetProperties();
    	
        // удаляем все поля, нахрен мы их вообще выдергивали
        $arFieldsCopy = $arFields;
    	unset(
    		$arFieldsCopy['ID'], 
    		$arFieldsCopy['~ID'], 
    		$arFieldsCopy['IBLOCK_SECTION_ID'], 
    		$arFieldsCopy['~IBLOCK_SECTION_ID'], 
    		$arFieldsCopy['TIMESTAMP_X'], 
    		$arFieldsCopy['~TIMESTAMP_X'], 
    		$arFieldsCopy['ACTIVE_TO'], 
    		$arFieldsCopy['~ACTIVE_TO'], 
    		$arFieldsCopy['DATE_ACTIVE_TO'], 
    		$arFieldsCopy['~DATE_ACTIVE_TO'], 
    		$arFieldsCopy['PREVIEW_PICTURE'], 
    		$arFieldsCopy['~PREVIEW_PICTURE'], 
    		$arFieldsCopy['PREVIEW_TEXT'], 
    		$arFieldsCopy['~PREVIEW_TEXT'], 
    		$arFieldsCopy['DETAIL_PICTURE'], 
    		$arFieldsCopy['~DETAIL_PICTURE'], 
    		$arFieldsCopy['DETAIL_TEXT'], 
    		$arFieldsCopy['~DETAIL_TEXT'], 
    		$arFieldsCopy['XML_ID'], 
    		$arFieldsCopy['~XML_ID'], 
    		$arFieldsCopy['EXTERNAL_ID'], 
    		$arFieldsCopy['~EXTERNAL_ID'], 
    		$arFieldsCopy['TMP_ID'], 
    		$arFieldsCopy['~TMP_ID'], 
    		$arFieldsCopy['CODE'], 
    		$arFieldsCopy['~CODE'], 
    		$arFieldsCopy['SEARCHABLE_CONTENT'], 
    		$arFieldsCopy['~SEARCHABLE_CONTENT'], 
    		$arFieldsCopy['WF_LAST_HISTORY_ID'], 
    		$arFieldsCopy['~WF_LAST_HISTORY_ID'], 
    		$arFieldsCopy['WF_COMMENTS'], 
    		$arFieldsCopy['~WF_COMMENTS'], 
    		$arFieldsCopy['WF_DATE_LOCK'], 
    		$arFieldsCopy['~WF_DATE_LOCK'], 
    		$arFieldsCopy['WF_LOCKED_BY'], 
    		$arFieldsCopy['~WF_LOCKED_BY'], 
    		$arFieldsCopy['WF_NEW'], 
    		$arFieldsCopy['~WF_NEW'], 
    		$arFieldsCopy['WF_PARENT_ELEMENT_ID'], 
    		$arFieldsCopy['~WF_PARENT_ELEMENT_ID'], 
    		$arFieldsCopy['SHOW_COUNTER'], 
    		$arFieldsCopy['~SHOW_COUNTER'], 
    		$arFieldsCopy['TAGS'], 
    		$arFieldsCopy['~TAGS'], 
    		$arFieldsCopy['LOCKED_USER_NAME'], 
    		$arFieldsCopy['~LOCKED_USER_NAME'], 
    		$arFieldsCopy['SHOW_COUNTER_START'],
    		$arFieldsCopy['~SHOW_COUNTER_START']
    	);
           
         
            $arFieldsCopy['ACTIVE']='N';
    	$arFieldsCopy['ACTIVE_FROM']=date('d.m.Y');
           /*... тра тра та заполняю я поля ....*/ 
    
         $arFieldsCopy['PROPERTY_VALUES'] = [
           /* ... тра та та, 
                         тра та та,
                            заполняю свойства я  
                ...
          */
         ];
           /*
               ... Продолжая песню петь
                       удалю я все теперь 
               ...
           */
    	unset($arFieldsCopy['PROPERTIES']);
       // кульминация пьесы, добавление нового Элемента 
        $el = new CIBlockElement();
        $NEW_BID_ID = $el->Add($arFieldsCopy);
    }

    Эм.... толи память экономит, то ли оплата за код построчно ....

    BroadcastAddress, 16 Марта 2016

    Комментарии (16)
  8. PHP / Говнокод #19641

    −1

    1. 1
    if ( strpos(str_replace('"', "'", json_encode($opt)), "'status':0") )

    Зачем

    crook, 16 Марта 2016

    Комментарии (1)
  9. Куча / Говнокод #19640

    −1

    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
    FROM centos:7
    
    RUN yum update -y && yum -y install openssh-server ssh
    
    RUN echo 'root:123456' | chpasswd
    RUN passwd -u root
    RUN ssh-keygen -A
    RUN ssh-keygen -t rsa -b 4096 -C "[email protected]" -N "" -f /root/.ssh/id_rsa
    RUN cat /root/.ssh/id_rsa.pub > /root/.ssh/authorized_keys
    RUN chmod 600 /root/.ssh/id_rsa.pub
    ADD ./ssh_config /etc/ssh/ssh_config
    ADD ./sshd_config /etc/ssh/sshd_config
    
    CMD ["/bin/sh", "-c", "{ while :; do /usr/sbin/sshd -eD ; done }"]

    docker build --name trolleybus-is-hleba .

    Вот так вот.

    wvxvw, 16 Марта 2016

    Комментарии (8)
  10. JavaScript / Говнокод #19639

    +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
    $("#sendme").click(function(){
          $('#error').html('');
          $('.req').css('border-color','#fff');
          var name = $('#name').val();
          var phone = $('#phone').val();
          var email = $('#email').val();
          var day = $('#day').val();
          var year = $('#year').val();
          var msg = $('#message').val();
          if(name.length){
              if(phone.length){
                  if(day.length){
                      if(year.length){
                          if(isEmail(email)==true){
    
                                    //logic
    
                          }else{$('#error').html('Ошибка в адресе электронной почты!'); $('#email').css('border-color','#FF4141');}
                      }else{$('#error').html('Введите год рождения!'); $('#year').css('border-color','#FF4141');}
                  }else{$('#error').html('Введите день рождения!'); $('#day').css('border-color','#FF4141');}
              }else{$('#error').html('Введите номер телефона!'); $('#phone').css('border-color','#FF4141');}
          }else{$('#error').html('Введите свои имя и фамилию!'); $('#name').css('border-color','#FF4141');}
      });

    матрёшка!

    rollback, 16 Марта 2016

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