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

    В номинации:
    За время:
  2. Куча / Говнокод #12193

    +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
    15. 15
    16. 16
    17. 17
    18. 18
    samples = [(1,14),(2,-66),(3,-414),(4,-1180),(5,-2370),(6,-3726),(7,-4606),(8,-3864),(9,270)]
     
    -- Бесконечная система уравнений для МНК
    system s = zip (matrix s) (column s) where
        matrix = iterate tail . foldr1 (zipWith (+)) . map (\(x,y) -> iterate (*x) 1)
        column = foldr1 (zipWith (+)) . map (\(x,y) -> iterate (*x) y)
     
    -- Сведение бесконечной системы к треугольному виду (первый шаг гаусса)
    triangle (eq:eqs) = (eq : triangle (map (sub eq) eqs)) where
        sub eq1@(a1:as, ae) eq2@(b1:bs, be) = (zipWith f as bs, f ae be) where
            f a b = b - a * b1 / a1
     
    -- Вычисление иксов (второй шаг гаусса)
    calcX n = foldr calc [] . take n where
        calc (a:as, b) xs = ((b - sum (zipWith (*) as xs)) / a : xs)
     
    -- метод наименьших квадратов
    mnk n = reverse . calcX n . triangle . system

    Метод наименьших квадратов.

    http://ideone.com/CsD0ku

    bormand, 25 Ноября 2012

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

    +124

    1. 1
    2. 2
    3. 3
    4. 4
    main =do
            let b = 56
            let b = b+1
            print b

    Зачем есть возможность задавать переменные с однаковыми именами, если их использовать ниже всё равно нельзя?
    http://ideone.com/b1DGYF

    LispGovno, 09 Ноября 2012

    Комментарии (26)
  4. Куча / Говнокод #12083

    +124

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    data Trivalent = TriFalse | TriUnknown | TriTrue deriving (Show, Eq, Ord)
    
    (&) :: Trivalent -> Trivalent -> Trivalent -- &&
    (!) :: Trivalent -> Trivalent -> Trivalent -- ||
    nt :: Trivalent -> Trivalent -- not

    В хасскеле нет класса для логических значений. А значит хрен переопределишь операторы &&, || и функцию not

    Fai, 08 Ноября 2012

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

    +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
    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
    Сайт ЦИК Украины, нынешние выборы народных депутатов. 
    http://cvk.gov.ua/vnd2012/wp300pt001f01=900.html
    Говно везде - html, css, дизайн, юзабилити. 
    
    Для начала цитаты из html-кода страницы. В шапке мы видим 
    заголовок "XHTML 1.0 Transitional", а в коде - конструкции 
    в стиле 90-х годов, например:
    
    <IMG src="img2012/bar-blue1.jpg" WIDTH=" 1" HEIGHT=20>
    
    <table class=t1 cellspacing=0><tr>
        <td width="50%" class="td2"><font class="f3"> © WWW ІАС "Вибори 
            народних депутатів України"
        <td align="right" class="td2"> 
    </table>
    
    <td class=td10 align=center><font color="maroon">2</font>
    <td class=td2><A class=a1 href="wp302pt001f01=900pf7171=52.html">
    політична партія Всеукраїнське об’єднання "Батьківщина"</A></td>
    
    В стилях тоже все в порядке, товарищи проявили 
    отличное знание спецификаций:
    ... height=14px; ...
    ... background-color: 666699; ...
    ... text-decoration: non ...
    ... background-color : none; ...
    ... valign: center; ...
    
    Про отсутствие смысла я даже не говорю. 
    Вот, например, такой перл:
    FONT.F1 {color: black; font-family:Arial;font-size: 14pt}

    Сайт ЦИК Украины. Не сомневаюсь, что ООО "НПП "Медирент"" и ООО "НПП "Проком" получили за свою работу сотни нефти.

    P.S. Плохо, что в самом говнокоде нельзя применять форматирование bb-тегами, для кучи было бы полезно.

    ZX_Spectrum, 31 Октября 2012

    Комментарии (17)
  6. Куча / Говнокод #11745

    +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
    15. 15
    16. 16
    17. 17
    18. 18
    data = load('ex1data1.txt');
    X = data(:, 1); y = data(:, 2);
    m = length(y); % number of training examples
    X = [ones(m, 1), data(:,1)]; % Add a column of ones to x
    theta = zeros(2, 1); % initialize fitting parameters
    
    % Some gradient descent settings
    iterations = 1500;
    alpha = 0.01;
    
    function J = computeCost(X, y, theta)
      m = length(y); % number of training examples
      hypothesis = theta' * X';
      J = 1 / (2 * m) * sum((hypothesis' - y) .^ 2);
    endfunction
    
    % compute and display initial cost
    computeCost(X, y, theta)

    Язык: Матлаб / Октава.
    Что происходит: из массива создается матрица путем добавления еще одного такого же массива полностью заполненного единицами, а потом эта матрица умножается на вектор из двух элементов (первая колонка, соответственно, умножается на первый элемент вектора, вторая - на второй). Т.е. это равносильно вызову функции вида y(x) = Kx + b для всех членов исходного массива X. По сути происходит следующее: y(x_0, x_1) = K * x_1 + b * x_0, где x_0 всегда равен единице.
    Источник разглашать не буду.

    wvxvw, 11 Сентября 2012

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

    +124

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    [2012-07-17 15:01:19] emulator-5554 disconnected! Cancelling 'android.app.NativeActivity activity launch'!
    [2012-07-17 15:38:41] emulator-5554 disconnected! Cancelling 'android.app.NativeActivity activity launch'!
    [2012-07-17 15:53:21] emulator-5554 disconnected! Cancelling 'android.app.NativeActivity activity launch'!
    [2012-07-17 16:12:18] emulator-5554 disconnected! Cancelling 'android.app.NativeActivity activity launch'!
    [2012-07-17 16:25:06] emulator-5554 disconnected! Cancelling 'android.app.NativeActivity activity launch'!
    [2012-07-17 16:40:48] emulator-5554 disconnected! Cancelling 'android.app.NativeActivity activity launch'!

    http://startandroid.ru/uroki/vse-uroki-spiskom/12-urok-3-sozdanie-avd-pervoe-prilozhenie-struktura-android-proekta.html

    Если не получилось запустить и Eclipse вывел в консоль подобное сообщение: "emulator-5554 disconnected! Cancelling 'ru.startandroid.develop.OurFirstProject .MainAct activity launch'!" - то закройте эмулятор, и попробуйте снова. Если снова не получилось. перезапустите Eclipse. Если опять нет - ребутнитесь. Если и сейчас не работает, удалите AVD и создайте новый. В итоге должно заработать, пусть и не с первой попытки.

    Главное - после запуска приложения (CTRL+F11) старайтесь совершать как можно меньше движений на компе. Я заметил четкую тенденцию - если во время запуска переключаться между различными окнами, то эмулятор запускается криво. А если просто посидеть и подождать минутку - то все ок. Ну и надо чтоб при этом не было включено какое-нить кодирование видео или прочие, нагружающие систему процедуры.

    Если не получилось, попробуйте ещё раз...
    Если снова не получилось, попробуйте ещё раз...
    Если снова не получилось, попробуйте ещё раз...
    Если снова не получилось, попробуйте ещё раз...
    Если снова не получилось, попробуйте ещё раз...
    Если снова не получилось, попробуйте ещё раз...

    TarasB, 17 Июля 2012

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

    +124

    1. 1
    2. 2
    http://habrahabr.ru/post/147484/
    Я просто оставлю это здесь.

    Fai, 10 Июля 2012

    Комментарии (94)
  9. Java / Говнокод #11246

    +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
    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
    BufferedReader file = null;
        boolean moreData = true;
        //set the parameters
        this.textureDir = textureDir;
    
        //open a file
        try{
          file = new BufferedReader(
              new InputStreamReader(
              (new FileInputStream(filename))), 50000);
        } catch (Exception e) {System.err.println("kan model niet laden"); moreData = false;}
    
        //read shapes until no more data
        while(moreData)
        {
          Shape3D shape = readShape(file);
          if(shape != null)
          {
            tg.addChild(shape);
    
          }
          else
          {
            moreData = false;
          }
        }
    
        try{
          file.close();
          file=null;
        } catch (IOException e)
        {
          System.err.println("file " + filename + " could not be closed!");
        }

    Интересный способ обработки ошибок ввода-вывода.

    Естественно, при неудачном открытии файла вываливается по NullPointerException.

    someone, 20 Июня 2012

    Комментарии (68)
  10. Куча / Говнокод #10968

    +124

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    # Some old m4's don't support m4exit.  But they provide
    # equivalent functionality by core dumping because of the
    # long macros we define.
    ifdef([__gnu__], ,
    [errprint(M4sugar requires GNU M4. Install it before installing M4sugar or
    set the M4 environment variable to its path name.)
    m4exit(2)])

    из m4 скрипта, часть autoconf.

    fyi: http://en.wikipedia.org/wiki/M4_%28computer_language%29

    Dummy00001, 15 Июня 2012

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

    +124

    1. 1
    http://pastebin.com/Wz1AHMh8

    Поскольку на уютненьком снова завелся унылый флудер, выкладываю доработанную версию автоскрывателя коментариев.
    Теперь банановый с поддержкой аякс-подгрузки!

    Vindicar, 29 Мая 2012

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