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

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

    +7

    1. 1

    Полиглот и квайн на брейнфаке, питоне и ещё куче языков размером в 0 байт.

    vistefan, 09 Ноября 2017

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

    +7

    1. 1
    2. 2
    3. 3
    https://static.googleusercontent.com/media/research.google.com/ru//pubs/archive/43438.pdf
    
    > provide cluster management solutions that typically scale to O(1000) machines

    Мдааа, вот вам и пиэйчди из гугла. Я думал, в о-нотацию не умеют только 1024-- и школьники с хабра.

    g0cTb, 05 Ноября 2017

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

    +5

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    // PHP при делении может неявно конвертировать целые в плавающие, и всех этих int-ограничений для него не существует
    echo 12 / 5; // 2.4
    
    // Было бы логично предположить, что другие операторы работают так же, но эта камбала неявно кастует уже плавающее к целому в соседнем операторе
    echo 9 % 0.9;
    
    PHP Fatal error:  Uncaught DivisionByZeroError: Modulo by zero in Command line code:1
    Stack trace:
    #0 {main}
      thrown in Command line code on line 1

    Fike, 13 Ноября 2017

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

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if ($count == 1 or $count == 21 or $count == 31 or $count == 41 or $count == 51 or $count == 61 or $count == 71 or $count == 81) ( $str = ' товар');
            if ($count == 2 or $count == 3 or $count == 4 or $count == 22 or $count == 23 or $count == 24 or $count == 32 or $count == 33 or $count == 34 or $count == 42 or $count == 43 or $count == 44 or $count == 52 or $count == 53 or $count == 54 or $count == 62 or $count == 63 or $count == 64) ( $str = ' товара');
            if ($count == 5 or $count == 6 or $count == 7 or $count == 8 or $count == 9 or $count == 10 or $count == 11 or $count == 12 or $count == 13 or $count == 14 or $count == 15 or $count == 16 or $count == 17 or $count == 18 or $count == 19 or $count == 20 or $count == 25 or $count == 26 or $count == 27 or $count == 28 or $count == 29 or $count == 30 or $count == 35 or $count == 36 or $count == 37 or $count == 38 or $count == 39 or $count == 40 or $count == 45 or $count == 46 or $count == 47 or $count == 48 or $count == 49 or $count == 50 or $count == 55 or $count == 56 or $count == 57 or $count == 58 or $count == 59 or $count == 60 or $count == 65) ( $str = ' товаров');
    
            if ($count > 81){
                $str=" тов";
            }

    Бронебойный pluralize

    arth, 05 Ноября 2017

    Комментарии (82)
  6. Ruby / Говнокод #23472

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    # как надо укуриться чтобы придумать такой синтаксис? вам не кажется что стрелочка немного не там?
    my_sum = -> (arg1, arg2) {arg1 + arg2}
    
    # тем более что это полный алиас
    my_sum = lambda {|arg1, arg2| arg1 + arg2}
    # нафига?!

    SemaReal, 01 Ноября 2017

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

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    https://hi-tech.mail.ru/news/facebook-send-nudes/
    
    "Facebook" тестирует систему распознавания фотографий пикантного содержания с их последующим
    удалением, и в рамках тестирования умоляет пользователей отправить самим себе предметы боди-арта.
    Так что можете наконец извлечь из смартфонов любовно разглядываемые холодными осенними вечерами
    фотографии ваших анальных отверстий и пустить их на развитие искусственного интеллекта.

    AnalPerOral, 08 Ноября 2017

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

    +3

    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
    <?php
     
    class Govno
    {
    	function __toString()
    	{
    		return 'govno';
    	}
    }
     
    ${'<?php'}   = 42;
    ${M_PI}      = 43;
    ${new Govno} = 44;
    ${"\0"}      = 45;
    ${''}        = 46;
    ${null}      = 47;
     
    ${create_function('', 'return null;')} = 444;
    ob_start();
    phpinfo();
    ${ob_get_clean()} = 9000;
     
     
    var_dump(get_defined_vars());

    В ПХП возможно всё, если делать это через жопу.
    https://ideone.com/svS2sO

    Stallman, 16 Ноября 2017

    Комментарии (52)
  9. Си / Говнокод #23546

    +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
    PHPAPI void php_var_export_ex(zval *struc, int level, smart_str *buf) /* {{{ */
    {
    	/* insignificant bullshit omitted */
    	zend_string *ztmp, *ztmp2;
    
    	switch (Z_TYPE_P(struc)) {
    		case IS_STRING:
    			ztmp = php_addcslashes(Z_STR_P(struc), 0, "'\\", 2);
    			ztmp2 = php_str_to_str(ZSTR_VAL(ztmp), ZSTR_LEN(ztmp), "\0", 1, "' . \"\\0\" . '", 12);
    
    			smart_str_appendc(buf, '\'');
    			smart_str_append(buf, ztmp2);
    			smart_str_appendc(buf, '\'');
    
    			zend_string_free(ztmp);
    			zend_string_free(ztmp2);
    			break;
    	}
    }
    /* }}} */

    Пыхарь: Расмус, у меня верстка едет, когда я через var_export() нулевые байты в браузер кидаю. Пофикси! (https://bugs.php.net/bug.php?id=37262)
    Расмус: Пофиксил тебе за щеку. Проверяй. (https://github.com/php/php-src/blob/master/ext/standard/var.c#L482)
    Пыхарь: Проверил. Помогло. (https://ideone.com/gnCKh1)

    Stallman, 16 Ноября 2017

    Комментарии (12)
  10. Java / Говнокод #23538

    +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
    import java.io.*;
    import java.math.RoundingMode;
    import java.text.DecimalFormat;
    import java.text.NumberFormat;
    
    import java.util.Scanner;
    /*
    Число E
    
    (Время: 1 сек. Память: 16 Мб Сложность: 10%)
    Выведите в выходной файл округленное до n знаков после десятичной точки число E. 
    В данной задаче будем считать, что число Е в точности равно 2.7182818284590452353602875.
    */
    
    import static com.sun.org.apache.xml.internal.security.keys.keyresolver.KeyResolver.length;
    
    public class Main {
        public static void main(String args[]) throws IOException {
            
            Scanner scanner=new Scanner(System.in);
            int n=scanner.nextInt();
            NumberFormat numberFormat = new DecimalFormat("0.000000000000000000000000000");
            numberFormat.setRoundingMode(RoundingMode.DOWN);
            String a=numberFormat.format(Math.E);
            char[] arr=a.toCharArray();
            for(int i=0;i<n+2;i++){
                System.out.print(arr[i]);
            }
        }
    
        }

    Понять и простить

    ArthurMakaev, 15 Ноября 2017

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

    +2

    1. 1
    https://shmat-razum.blogspot.com/2012/12/blog-post.html

    Есть такое правило, к которому все привыкли: если в программе записано логическое выражение с and, и первое подвыражение оказалось равно false, то второе не вычисляется. Аналогично с or: если первое подвыражение равно true, второе не вычисляется. Это позволяет удобно записывать вещи вида

    if (index < 0 || array[index] == NULL)
    ...

    или
    if (index >= 0 && array[index] == ptr)
    ...


    Это правило действует во всех широко используемых языках программирования: C/C++, Java, C#, Javascript, Python, а также в многочисленных представителях семейств лиспов и смолтоков. И даже в Хаскеле. И даже в PL/SQL. У правила есть название: закорачивание логических связок (short-circuit evaluation). Казалось, оно само собой разумеется, и есть во всех языках.

    При столкновении с языком Fortran автора ждал сильный удар. Закорачивание в этом языке не просто не действует, а может действовать или не действовать в зависимости от воли компилятора. Эта неопределённость закреплена в стандарте. При этом, в интеловском компиляторе, например, просто нет ключа, чтобы этим управлять. Программист не может быть уверен, что выполнится лишь одна ветвь; в то же время, он не может быть уверен, что выполнятся обе. Поведение может зависеть от номера версии компилятора и настроек оптимизации.

    j123123, 15 Ноября 2017

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