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

    +145

    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
    <script type = "text/javascript">
    <!--
    var m3_u = (location.protocol == "https:"?
      "https://bk55.ru/openx/www/delivery/ajs.php": "http://bk55.ru/openx/www/delivery/ajs.php");
    var m3_r = Math.floor(Math.random()*99999999999);
    if(!document.MAX_used) document.MAX_used = ",";
    document.write("<scr" + "ipt type = 'text/javascript' src = '" + m3_u);
    document.write("?zoneid=8&amp;source=main");
    document.write("&amp;cb=" + m3_r);
    if(document.MAX_used != ",") document.write("&amp;exclude=" + document.MAX_used);
    document.write(document.charset? "&amp;charset=" + document.charset:
      (document.characterSet? "&amp;charset=" + document.characterSet: ""));
    document.write("&amp;loc=" + escape(window.location));
    if(document.referrer) document.write("&amp;referer=" + escape(document.referrer));
    if(document.context) document.write("&context=" + escape(document.context));
    if(document.mmm_fo) document.write("&amp;mmm_fo=1");
    document.write("'><\/scr" + "ipt>");
    -->                                                                // ajax не нужен)))))
    </script>

    Использование баннерного движка OpenX на сайте bk55.ru. Всего на странице около десятка таких кусков, которые отличаются только значением zoneid. Жесть)))

    shlyapa, 15 Декабря 2011

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

    +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
    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
    <?php
    // страницы, содержимое которых надо получить
    $urls = array('www.yandex.ru', 'www.google.ru', 'www.mail.ru', 'www.rambler.ru');
     
    $rtasks = array(); // задачи чтения
    $wtasks = array(); // задачи записи
    $results = array(); // результаты
     
    foreach ($urls as $url) {
    	// открываем отдельный сокет
    	$sh = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
    	if (!$sh) continue;
     
    	// таймаут для чтения
    	socket_set_option($sh, SOL_SOCKET, SO_RCVTIMEO, array("sec" => 10, "usec" => 0));
    	// таймаут для записи
    	socket_set_option($sh, SOL_SOCKET, SO_SNDTIMEO, array("sec" => 10, "usec" => 0));
    	// задаем неблокирующий режим сокетов
    	socket_set_nonblock($sh);
    	// определяем ip хоста
    	$ip = gethostbyname($url);
    	// соединяемся
    	socket_connect($sh, $ip, 80);
     
    	// добавляем в задачи для записи
    	$wtasks[$url] = $sh;
    }
     
    // продолжаем, пока есть задачи для записи или чтения
    while ($wtasks || $rtasks) {
    	// массив для сокетов с возможностью чтения
    	$rtasks_ = $rtasks;
    	// массив для сокетов с возможностью записи
    	$wtasks_ = $wtasks;
     
    	// ждем результатов из сокетов
    	$n = socket_select($rtasks_, $wtasks_, $e=null, 10);
    	if ($n > 0) {
    		// сокеты, доступные для записи
    		foreach ($wtasks_ as $sh) {
    			// ищем урл страницы по дескриптору сокета в массиве задач записи
    			$url = array_search($sh, $wtasks);
    			// удаляем из задач записи
    			unset($wtasks[$url]);
    			// добавляем в задачи чтения
    			$rtasks[$url] = $sh;
    			// формируем http-заголовки
    			$headers  = "GET / HTTP/1.0\r\n";
    			$headers .= "Host: ".$url."\r\n";
    			$headers .= "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.6) Gecko/2009011913 MRA 5.3 (build 02557) Firefox/3.0.6\r\n";
    			$headers .= "Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\n";
    			$headers .= "Accept-Language: ru,en-us;q=0.7,en;q=0.3\r\n";
    			$headers .= "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n";
    			$headers .= "\r\n";
     
    			// записываем в сокет
    			if (socket_write($sh, $headers) === false) fclose($sh);
    		}
     
    		// сокеты, доступные для чтения
    		foreach ($rtasks_ as $sh) {
    			// ищем урл страницы по дескриптору сокета в массиве задач чтения
    			$url = array_search($sh, $rtasks);
    			if (!$url) continue;
    			// считываем результат из сокета
    			$result = '';
    			while ($r = socket_read($sh, 1024)) $result .= $r;
    			// закрываем сокет
    			socket_close($sh);
    			// удаляем из задач чтения
    			unset($rtasks[$url]);
    			// заносим html в массив результатов
    			$results[$url] = $result;
    		}
    	}
    	else {
    		break;
    	}
    }
    ?>

    a_e, 15 Декабря 2011

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

    +163

    1. 1
    if(!($_POST[$_POST[parameter_value]])){$parameter_value=" ";}else{$parameter_value=$_POST[$_POST[parameter_value_cash]];}

    shl, 15 Декабря 2011

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

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    private static final BigDecimal $150 = BigDecimal.valueOf(150);
    private static final BigDecimal $500 = BigDecimal.valueOf(500);
    private static final BigDecimal $751 = BigDecimal.valueOf(751);
    
    // rule example
    all(
        paymentOfType(COMPREHENSIVE, greaterOrEqual($500)),
        noPaymentsButComprehensive
    ).mapTo(result(ACTIVITY_TYPE_ACC, COMPREHENSIVE_OVER_500))

    Код мой. Есть таблица правил (в Excel), по которой нужно классифицировать некие объекты. Все правила собраны в одном классе и представляют из себя конструкции наподобие той, что в топике.
    У меня с остальной частью команды возник конфликт по поводу наименования констант: все считают, что называть константы как $500 - сущее зло, а правильно называть MAX_AMOUNT_FOR_COMP_OVER_500. Я считаю, что $500 - это 500 долларов, блеать, а константа нужна только в одном месте и для читаемости. Мне по сути пофигу, как называется константа, интересно узнать ваше мнение.
    наболело

    roman-kashitsyn, 15 Декабря 2011

    Комментарии (35)
  5. C# / Говнокод #8835

    +133

    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
    /// <summary>
            /// Abs function
            /// </summary>
            private static object Abs(List<Expression> p)
            {
                return Math.Abs(p[0]);
            }
    
            /// <summary>
            /// Acos function
            /// </summary>
            private static object Acos(List<Expression> p)
            {
                return Math.Acos(p[0]);
            }
    
            /// <summary>
            /// Asin function
            /// </summary>
            private static object Asin(List<Expression> p)
            {
                return Math.Asin(p[0]);
            }
    
            /// <summary>
            /// Atan function
            /// </summary>
            private static object Atan(List<Expression> p)
            {
                return Math.Atan(p[0]);
            }
    
            /// <summary>
            /// Atan2 function
            /// </summary>
            private static object Atan2(List<Expression> p)
            {
                return Math.Atan2(p[0], p[1]);
            }

    Кусок кода от "Капитана Очевидность"

    govnokoder_, 15 Декабря 2011

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

    +146

    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
    public ActionResult RenderDesigner()
    {
        // Get the received text
        var received = string.Empty;
        using(var reader = new StreamReader(Request.InputStream))
        {
            received = reader.ReadToEnd();
        }
    
        // Possible texts received
        var xml = "";
        var id = "";
        var moveId = "";
        int distance = 0;
        
        // Get all string from received
        var keys = received.Split('&');
        for (var i = 0; i < keys.Length; i++)
        {
            // XML
            if(keys[i].StartsWith("xml="))
            {
                xml = Server.UrlDecode(keys[i].Split('=')[1]);
            }
    
            // ID
            else if (keys[i].StartsWith("id="))
            {
                id = keys[i].Split('=')[1];
            }
            // Position
            else if (keys[i].StartsWith("distance="))
            {
                distance = int.Parse(keys[i].Split('=')[1]);
            }
    
            // Move ID
            else if (keys[i].StartsWith("moveId="))
            {
                moveId = keys[i].Split('=')[1];
            }
        }
    }

    разбор параметров POST запроса в стиле MVC

    Eugene, 15 Декабря 2011

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

    +146

    1. 1
    2. 2
    aWidth = Math.min(Math.max(thisText*5+80, 150), 350);
    aHeight = (thisText>610) ? 290 : (thisText>550) ? 270 : (thisText > 490) ? 250 : (thisText > 420) ? 230 : (thisText > 360) ? 210 : (thisText > 300) ? 190 : (thisText > 240) ? 170 : (thisText > 180) ? 150 : (thisText > 120) ? 130 : (thisText > 60)? 110 : 100;

    обнаружил у себя в проекте, оказывается взяли тут http://www.daniweb.com/web-development/javascript-dhtml-ajax/threads/212610

    andrewshca, 15 Декабря 2011

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

    +145

    1. 1
    Math.min(Math.max(asd, 350), 350);

    и почему размер всегда 350?

    andrewshca, 15 Декабря 2011

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

    +83

    1. 1
    2. 2
    URI uri = new URI("http://themoneyconverter.com/USD/rss.xml");
    Document doc = db.parse(uri.toString());

    Умей передавать строки правильно, падаван

    digi, 15 Декабря 2011

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

    −116

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    NSString *selectedDate2=appDelegate.date;
        NSString *y=[selectedDate2 substringWithRange:NSMakeRange(0,4)];
        NSString *m=[selectedDate2 substringWithRange:NSMakeRange(5,2)];
        NSString *d=[selectedDate2 substringWithRange:NSMakeRange(8,2)];
        NSString *selectedDate=[NSString stringWithFormat:@"%@-%@-%@",d,m,y];
        NSLog(@"Selected Date is %@",selectedDate);

    парсинг даты по-индусски

    realsugar, 15 Декабря 2011

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