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

    В номинации:
    За время:
  2. Java / Говнокод #17369

    +89

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    /**
    	 * todo - implement check if current value of the processor load is not mode than 90 persends...
    	 * 
    	 * @return true if higher than 98 persents
    	 */
    	private boolean isProcessorOverloaded() {
    		return false;
    	}

    someone, 25 Декабря 2014

    Комментарии (65)
  3. Perl / Говнокод #16634

    −109

    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
    #!/usr/bin/perl
    use strict;
    sub ternary_switch {
    	my ($def,%exp) = @_;
    	my $result = $def;
    	for my $key (keys %exp) {
    		$result = '(' . $key . ')?(' . $exp{$key} . '):(' . $result . ')';
    	}
    	return $result;
    }
    my $def = ' (int)sum/0 /*assert*/ '; 
    my %exp = ( 
    	'quant==2' => ' round((sum)*pow(10.0,prec-1)*5.0)/pow(10.0,prec-1)/5.0 ',
    	'quant==5' => ' round((sum)*pow(10.0,prec-1)*2.0)/pow(10.0,prec-1)/2.0 ',
    	'quant==1' => ' round((sum)*pow(10.0,prec))/pow(10.0,prec) ',
    );
    my $result = ternary_switch($def,%exp);
    print $result . "\n";
    
    #define ROUND_QUANT(sum,prec,quant) (quant==5)?( round((sum)*pow(10.0,prec-1)*2.0)/pow(10.0,prec-1)/2.0 ):\
        ((quant==2)?( round((sum)*pow(10.0,prec-1)*5.0)/pow(10.0,prec-1)/5.0 ):\
        ((quant==1)?( round((sum)*pow(10.0,prec))/pow(10.0,prec) ):\
        ( (int)sum/0 /*assert*/ )))

    Округление с дробной точностью.
    Если бы я не прочитал на говнокоде что тернарники можно вкладывать, мне бы никогда это не пришло в голову

    overloop, 02 Сентября 2014

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

    +143

    1. 1
    2. 2
    Небольшие программки :)
    Советую посмотреть и написать отзыв о любой из них.

    Скачать >> http://coun.at.ua/stuff/1-1-0-122

    Mobac, 28 Апреля 2014

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

    +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
    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
    <?php
    define('STOCK_URL', 'http://govnokod.ru/comments');
    define('REFERER_URL', 'http://govnokod.ru/');
    define('AUTH_COOKIES', 'a:2:{s:9:"PHPSESSID";s:26:"k719c8rqcm85dptista7b7rck7";s:4:"auth";s:32:"0ce5a7d54092aa07e37b88ffbe098135";}');
    define('MODERATED_TEXT', '[color=red][i]Слава «Беркуту»![/i][/color]');
    define('DEFAULT_UA', 'Opera/9.80 (Windows NT 6.0) Presto/2.12.388 Version/12.16');
    define('POST_HEADERS', "X-Requested-With: XMLHttpRequest\r\nContent-Type: application/x-www-form-urlencoded\r\n");
    define('PONY1', "//ol[@class='posts hatom']/li/h2/a");
    define('PONY2', "//form/div/input[@name='_csrf_token']");
    define('PONY3', "//li[@class='hcomment']/div/a[@class='edit-comment-link']");
    
    function myCookies() {
    	$map_cookies = function($k, $v) {return $k . '='. $v;};
    	return implode('; ', array_map($map_cookies, array_keys(unserialize(AUTH_COOKIES)), unserialize(AUTH_COOKIES)));
    }
    
    function huyarim($url, $referer, $mask, $attr) {
    	$context_options = stream_context_create(array('http' => array(
    	  'method' => 'GET',
    	  'user_agent' => DEFAULT_UA,
    	  'header' => 'Referer: '. $referer . "\r\n" . 'Cookie: ' . myCookies()
    	)));
    	$links = array();
    	$file = @file_get_contents($url, false, $context_options);
    	if ($file) {
    	  $old_libxml_error = libxml_use_internal_errors(true);
    	  $dom = new DOMDocument;
     	  $dom->loadHTML($file);
    	  libxml_use_internal_errors($old_libxml_error);
     	  $domxpath = new DOMXPath($dom);
     	  $filtered = $domxpath->query($mask);
    	  foreach ($filtered as $item) {
    		$links[] = $item->getAttribute($attr);
    	  }
    	}  
    	return $links;
    }
    
    function getList() {return huyarim(STOCK_URL, REFERER_URL, PONY1, 'href');}
    function getCsrf($url) {$tokens = huyarim($url, STOCK_URL, PONY2, 'value'); return $tokens[0];}
    function getComments($url) {return huyarim($url, STOCK_URL, PONY3, 'href');}
    
    function doPost($url, $referer, $token) {
    	$postdata = http_build_query(array(
    	  '_csrf_token' => $token,
    	  'text' => MODERATED_TEXT,
    	  'commentSubmit' => 'Отправить комментарий [Ctrl+Enter]',
    	  'ajax' => 'true'
     	));
    	$context_options = stream_context_create(array('http' => array(
    	  'protocol_version' => 1.1,
    	  'method' => 'POST',
    	  'user_agent' => DEFAULT_UA,
    	  'header' => POST_HEADERS . 'Referer: '. $referer . "\r\n" . 'Cookie: ' . myCookies(),
    	  'content' => $postdata
    	)));
    	return file_get_contents($url, false, $context_options);
    }
    
    $links = getList();
    foreach($links as $link) {
    	$token = getCsrf($link);
    	$comments = getComments($link);
    	foreach($comments as $comment) {
    		if (false !== doPost($comment, $link, $token)) {
    			echo $comment . ' OK' . PHP_EOL;
    		}
    	}
    }

    CURL и PECL_HTTP не нужны. Да, и ООП тоже не нужно.

    inkanus-gray, 19 Февраля 2014

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

    +15

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    #define TEST_MODE ON
    
    ...
    
    #ifdef TEST_MODE
    #    include "fake_singelton.h"
    #else
    #    include "work_singelton.h"
    #endif

    оттуда

    LispGovno, 01 Февраля 2014

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

    +149

    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
    <?php 
    	if($_POST['start']>150)
    		die('NULL');
    	$start=$_POST['start'];
    	$end=min($start+$_POST['limit'],150);
    	$k=0;
    	for($i=$start;$i<$end;++$i)
    	{if($k>50)
    		die();
    		$k++;
    		?>
    		
    <div class="table_account bg_color_ta_1">
    ...

    Вот такую гранату я сегодня получил от "выпускника" Харьковского вуза по специализации программирования.
    Тут уже чуток обсуждали http://webimho.ru/topic/5481/

    q10800, 17 Апреля 2013

    Комментарии (65)
  8. Си / Говнокод #12708

    +102

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    if (sscanf(buf, "%d-%d-%d %d:%d:%d %d.%d.%d.%d %s %d.%d.%d.%d %llu %llu %llu %llu %d %d %d",
               &r->year,&r->month,&r->day,&r->hour,&t5,&t6,&s1,&s2,&s3,&s4,&r->iface,&d1,&d2,&d3,&d4,
               &r->packets_out,&r->bytes_out,&r->packets_in,&r->bytes_in,&r->proto,&r->sport,&r->dport)<22) {
        printf("Syntax error at line %u\n", t->count + 1);
        /* ... some cleanup ...*/
        return 0;
    }

    Вот так я читал строку из текстового файла в моем первом боевом проекте.

    bormand, 08 Марта 2013

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

    +24

    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
    #include <iostream>
    #define n 1
    int main()
    {
    using namespace std;
    cout << (n < 0 ? 1 : 0)+
    ((n << 1) < 0 ? 1 : 0)+
    ((n << 2) < 0 ? 1 : 0)+
    ((n << 3) < 0 ? 1 : 0)+
    ((n << 4) < 0 ? 1 : 0)+
    ((n << 5) < 0 ? 1 : 0)+
    ((n << 6) < 0 ? 1 : 0)+
    ((n << 7) < 0 ? 1 : 0)+
    ((n << 8) < 0 ? 1 : 0)+
    ((n << 9) < 0 ? 1 : 0)+
    ((n << 10) < 0 ? 1 : 0)+
    ((n << 11) < 0 ? 1 : 0)+
    ((n << 12) < 0 ? 1 : 0)+
    ((n << 13) < 0 ? 1 : 0)+
    ((n << 14) < 0 ? 1 : 0)+
    ((n << 15) < 0 ? 1 : 0)+
    ((n << 16) < 0 ? 1 : 0)+
    ((n << 17) < 0 ? 1 : 0)+
    ((n << 18) < 0 ? 1 : 0)+
    ((n << 19) < 0 ? 1 : 0)+
    ((n << 20) < 0 ? 1 : 0)+
    ((n << 21) < 0 ? 1 : 0)+
    ((n << 22) < 0 ? 1 : 0)+
    ((n << 23) < 0 ? 1 : 0)+
    ((n << 24) < 0 ? 1 : 0)+
    ((n << 25) < 0 ? 1 : 0)+
    ((n << 26) < 0 ? 1 : 0)+
    ((n << 27) < 0 ? 1 : 0)+
    ((n << 28) < 0 ? 1 : 0)+
    ((n << 29) < 0 ? 1 : 0)+
    ((n << 30) < 0 ? 1 : 0)+
    ((n << 31) < 0 ? 1 : 0)
    << endl;
    return 0;
    }

    Для заданного пятизначного целого числа подсчитать количество его нулей.
    Прямо с экзамена. Преподаватель катается по полу. Не шучу.

    LispGovno, 25 Декабря 2012

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

    +57

    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
    function GetOrderSkidka(&$arrData)
        	{
    	    	if($this->flag_opt){
    	    	 	$arrData['skidka']  = ($this->admin_mode) ? $arrData['skidka'] : 0;
    	    	 	$arrData['allsum']  = $arrData['sum'] - $arrData['skidka'];
    	    	 	return;
    	        }
    	    	if(!$this->flag_in_action){
    	    		$arrData['cnt_s_prod'] = $arrData['cnt'];
    	    	}elseif(in_array($this->flag_action_type,array(2,3))){
    	    		$this->calcCntProd($arrData);
    	    	}else{
    	    		$arrData['cnt_s_prod'] = 0;
    	    	}
    	    	$this->discount->GetOrderSkidka($arrData);
        	}

    Работаю с сайтом, в котором все методы классов работают со своими параметрами таким образом.
    Метод может ничего не возвращать, а вызывать другие методы (которые также могут вызывать какие-то методы),
    которые в зависимости от множества условий меняют переданные по ссылке параметры.
    Итог работы модифицированный параметр- массив. Только XDebug выручает.

    minramilka, 31 Августа 2012

    Комментарии (65)
  11. bash / Говнокод #11534

    −125

    1. 1
    2. 2
    #!/bin/bash
    sed -e 's/^\s*$/\#/gi' < $1| sed -e 's/$/<br>/gi'| awk 'BEGIN { i1=0;print "<html><head><META HTTP-EQUIV=\"Content-Type\" CONTENT=\"text/html; charset=Windows-1251\"></head><body>"; } {  gsub(/^#/,"<a name=\"L"i1++"\">L"i1-1"</a>");print } END { for(i=0;i<=i1;i++){ print "<a href=\"#L"i"\">#"i"</a><br\ >"};print "</body></html>" }' > $1.html

    Программа преобразует текстовый файл в html

    AliceGoth, 05 Августа 2012

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