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

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

    +135

    1. 1
    return (true == is_break) ? resource : NULL;

    Вонъ изъ профессiи!

    codemonkey, 07 Декабря 2014

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

    −366

    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
    sub rotate {
        my ($filename, $max_entries) = @_;
        $max_entries //= 10; # TODO: make infinity available
    
        return if (! -f $filename);
    
        my ($name, $dir, $suffix) = fileparse($filename, qr/\.[^.]*$/);
    
        my %old_files = ();
        my $shift_max = 0; # maximum number of file that is going to be rotated
        my $glob = File::Spec->catfile($dir, $name . '.*' . $suffix);
        for my $file (glob qq/"$glob"/) {
            my ($number) = $file =~ /\.(\d+)\Q$suffix\E$/;
    
            $old_files{$number} = $file if (defined $number);
            $shift_max++ while (exists $old_files{$shift_max + 1});
        }
    
        $shift_max = $max_entries - 1 if ($shift_max >= $max_entries);
        # how many files to remove from the end
        my $to_remove = scalar(keys %old_files) - $max_entries;
    
        # rename and unlink
        for my $number (sort { $b <=> $a } keys %old_files) {
            my $file = $old_files{$number};
    
            if ($to_remove-- > 0) {
                print "## DEBUG: unlink $file\n";
                unlink($file)
                    or croak('Cannot unlink ' . $file);
            } elsif ($number <= $shift_max) {
                my $new_name = File::Spec->catfile($dir, $name . '.' . ($number + 1) . $suffix);
                print "## DEBUG: rename $file -> $new_name\n";
                rename($file, $new_name)
                    or croak('Cannot rename ' . $file . ' to ' . $new_name);
            }
        }
    
        my $new_name = File::Spec->catfile($dir, $name . '.1' . $suffix);
        print "## DEBUG: rename $filename -> $new_name\n";
        rename($filename, $new_name)
            or croak('Cannot rename ' . $filename . ' to ' . $new_name);
    }

    Продолжаем парад велосипедов. Сделал ротацию бекап-архивов :-{

    Elvenfighter, 20 Ноября 2014

    Комментарии (12)
  4. C# / Говнокод #17079

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    int i=1;
    Console.WriteLine((i+null)==null); //True			
    Console.WriteLine(1+null);             //1
    Console.WriteLine(null+1);             //1
    Console.WriteLine((1+null).GetType()); //System.Int32

    http://ideone.com/LomfRC

    3.14159265, 07 Ноября 2014

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

    +156

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    // где то: 
    $_SESSION['type_school'] = $db->query("SELECT * FROM ou_type ",array(),'kassoc');
    
    // а потом:
    $smarty->assign('type_school',$_SESSION['type_school']);
    
    //и в шаблоне:
    <td>{$type_school[$v.base_type].type_name}</td>

    $v.base_type - тоже результат запроса. Left/Right/Inner Join - не, не слышал...

    А потом: чёта проект тормозит...
    Я так подозреваю кто то таким методом оптимизацию и кеширование сделал, ну чтобы бд лишний раз не грузить.. Не, ну, а чё, зачем каждый раз базу данных мучить при открытии одной! странички со списком *****, давайте одну таблицу-справочник из бд откопируем каждому пользователю в его сессию отдельно и будем читать его при каждом session_start даже если на текущей странице нам этот справочник не нужен.

    vGhost, 05 Ноября 2014

    Комментарии (12)
  6. PHP / Говнокод #16944

    +156

    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
    // Активация заявки (мало ли, пригодиться =) )
    if($_GET['o'] == 'activate') {
    
    	if($zayavka = $GLOBALS['db']->GetRow("SELECT * FROM `".DB_PREFIX."_pan_zayavki` WHERE `id` = '".intval($_GET['zid'])."'")) {
    		
    		// Если заявка на админку
    		if($zayavka['type'] !== 'unban') {
    		
    			$type = $GLOBALS['db']->GetRow("SELECT
    													*
    												FROM
    													`".DB_PREFIX."_pan_types`
    												WHERE
    													`srvgid`= '".$zayavka['type']."'");
    			
    			$period = time() + ($zayavka['period'] * 86400);
    				
    			$aid = $userbank->AddAdmin($zayavka['nick'], $zayavka['steamid'], $zayavka['password'], $zayavka['e-mail'], '-1', '', $type['srvgid'], '', '', '', $period);
    
    			// Удаляем левые админки
    			$GLOBALS['db']->Execute("DELETE FROM `".DB_PREFIX."_admins_servers_groups` WHERE `admin_id` = '".$aid."'");
    			
    			// И задаём ему новые админки на выбранных серверах
    			$zservers = explode(',',$zayavka['server_id']);
    			
    			foreach($zservers AS $s)
    			{
    				if($s == '') { continue; }
    				$pre = $GLOBALS['db']->Prepare("INSERT INTO ".DB_PREFIX."_admins_servers_groups (admin_id,group_id,srv_group_id,server_id) VALUES (?,?,?,?)");
    				$GLOBALS['db']->Execute($pre,array($aid,
    												   0,
    												   -1,
    												   (int)$s));
    			}
    			
    			if(isset($GLOBALS['config']['config.enableadminrehashing']) && $GLOBALS['config']['config.enableadminrehashing'] == 1)
    			{
    			// Отправляем на сервера sm_rehash
    			echo '<script>ShowRehashBox("'.$zayavka['server_id'].'", "Добавление админа", "<b>Пожалуйста, не закрывайте и не обновляйте страницу</b><br />Обновление админов на серверах", "green", "index.php?p=admin&c=zayavki");TableReload();</script>';
    			}
    			else 
    			{
    				echo '<script>ShowBox("Админ добавлен", "Админ сервера успешно добавлен", "green", "index.php?p=admin&c=zayavki");TableReload();</script>';
    			}
    		}
    		
    		// Если же покупает разбан
    		else 
    		{
    			$unban = true;
    			
    			// Ищем бан
    			if($ban = $GLOBALS['db'] -> GetRow("SELECT bid FROM `".DB_PREFIX."_bans` WHERE `bid` = '".$zayavka['password']."' AND `RemoveType` = 'U'"))
    			{
    				echo '<script>ShowBox("Игрок разбанен", "Игрок '.$ban['name'].' разбанен ранее", "green", "index.php?p=admin&c=zayavki");TableReload();</script>';
    			}
    			else
    			{
    				// Разбаниваем игрока
    				$GLOBALS['db'] -> Execute("UPDATE `".DB_PREFIX."_bans` SET `RemovedBy` = '0', `RemoveType` = 'U' WHERE `bid` = '".$zayavka['password']."'");
    
    				echo '<script>ShowBox("Игрок разбанен", "Игрок успешно разбанен", "green", "index.php?p=admin&c=zayavki");TableReload();</script>';
    			}
    		}
    		
    		// Обновляем статус заявки на payd
    		$GLOBALS['db']->Execute("UPDATE `".DB_PREFIX."_pan_zayavki` SET `payd` = '1' WHERE `id` = '".intval($_GET['zid'])."'");
    	}
    }
    
    // Логфайл
    if(isset($_GET['logfile'])) {
    	if(is_file(INCLUDES_PATH . '/robo1/logs/log-ID-'.intval($_GET['logfile']).'.txt')) {
    		$filename = file_get_contents(INCLUDES_PATH . '/robo1/logs/log-ID-'.intval($_GET['logfile']).'.txt');
    		echo nl2br($filename);
    		echo '<br />';
    		echo '<div style="width:100%; text-align:center;">
    			<input type="button" class="btn ok" onClick="document.location.href=\'index.php?p=admin&c=zayavki\'" value="Назад" />
    		</div>';
    		PageDie();
    	}
    	else
    	{
    		echo '<script>ShowBox("Ошибка", "Лог файл не найден", "red", "");</script>';
    	}
    }

    Equality, 27 Октября 2014

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

    +162

    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
    function makeRequest(params)
    {
        var tParams = new Object();
        
        try{        
            tParams.accepts = params.accepts
        }
        catch(e){}
    
        try{
            tParams.async = params.async
        }
        catch(e){}
    
        try{
            tParams.beforeSend = params.beforeSend
        }
        catch(e){}
    
        try{
        tParams.cache = params.cache
        }
        catch(e){}

    очередной тревел-стартап
    http://www.corteos.ru/Scripts/helpers.js

    tablecell, 06 Октября 2014

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

    +118

    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
    import static com.google.gwt.query.client.GQuery.*;
    import com.google.gwt.query.client.Function;
    
    public void onModuleLoad() {
      //Hide the text and set the width and append an h1 element
      $("#text").hide()
        .css("width", "400px")
        .prepend("<h1>GwtQuery Rocks !</h1>");
        
        //add a click handler on the button
        $("button").click(new Function(){
          public void f() {
            //display the text with effects and animate its background color
            $("#text").as(Effects)
              .clipDown()
              .animate("backgroundColor: 'yellow'", 500)
              .delay(1000)
              .animate("backgroundColor: '#fff'", 1500);
          }
        });
    }

    Не ГК, но мне показалось забавно.

    https://code.google.com/p/gwtquery/

    someone, 25 Сентября 2014

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

    +135

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public static byte[] ConvertStringToByteArray(string str)
    {
    	int i, n;
    	n = str.Length;
    	byte[] x = new byte[n];
    	for (i = 0; i < n; i++)
    	{
    		x[i] = (byte)str[i];
    	}
    	return x;
    }

    Парни я не знаю баян это или нет, я лично не видел, но сторожилам виднее

    Smekalisty, 08 Сентября 2014

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

    +158

    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
    function in($param) {
    	global
    		$_POST,
    		$_GET;
    
    	preg_match('#([^\[]+)(.*)#',$param,$match);
    	$match[2]=str_replace('[','["',$match[2]);
    	$match[2]=str_replace(']','"]',$match[2]);
    	$param2=eval('return htmlspecialchars(strip_tags($_POST["'.$match[1].'"]'.$match[2].'));');
    	if($param2=='' && $match[2]=='') {
    		$param2=eval('return htmlspecialchars(strip_tags($_GET["'.$match[1].'"]));');
    	}
    	return $param2;
    }

    Функция для фильтрации входящих переменных.

    berejant, 23 Августа 2014

    Комментарии (12)
  11. C++ / Говнокод #16577

    +62

    1. 1
    2. 2
    wchar_t c1 =
        (wchar_t)LOWORD(::CharUpperW((LPWSTR)(DWORD_PTR) MAKELONG(*i1, 0)));

    Шиндовс, штроки, штрадания
    http://llvm.org/bugs/show_bug.cgi?id=20712

    roman-kashitsyn, 21 Августа 2014

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