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

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    var color2array = function(color){
    	return color.length==4?color.slice(1).split('').map(function(x){return parseInt(x,16)}).concat([255]):
    	       color.length==7?[color.slice(1,3),color.slice(3,5),color.slice(5)].map(function(x){return parseInt(x,16)}).concat([255]):
    		   ~color.indexOf('rgba')?color.slice(5,-1).split(',').map(function(x){return +x}):
    		   ~color.indexOf('rgb')?color.slice(4,-1).split(',').map(function(x){return +x}).concat([255]):[0,0,0,255];
    }

    Один большой костыль преобразующий цвет из вида hex rgb rgba в массив значений от 1 до 255

    art543484, 25 Мая 2011

    Комментарии (17)
  3. C++ / Говнокод #6659

    +161

    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
    while(fgets(buf,4095,in)){
    
      if(strcmp(buf,"nodes")){while(fgets(buf,4095,in)){ 
      if(strcmp(buf,"end")){ 
        m->mb=mb; 
        m->bv=new vec3f[mb];
        m->ba=new vec3f[mb]; 
        m->p=new int[mb]; 
        a->max_b=mb; 
        a->fr=new TMAFrame[mb];a->Initfr();    
        break; 
      }; 
      mb++; 
      };}; 
    };

    Взято с одного форума по программированию. От автора:
    Короче говоря при загрузке модели SMD возникает ошибка при чтении , точнее подсчёте костей :

    Try, 14 Мая 2011

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

    +161

    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
    QString convToHex( unsigned char *bytes, int size )
    {
    	if( size > 16 )
    		size = 16;
    	QString ret;
    	for( int i = 0; i < size; i++ )
    	{
    		char buf[3];
    		::sprintf( buf,"%02x", (unsigned int) bytes[i] );
    		ret += buf;
    	}	
    	return ret;
    }

    panter_dsd, 11 Мая 2011

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

    +161

    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
    <!-------------------- Left menu -------------------------->
      <tr> 
        <td valign="top" width="188" class="text"> 
          <table width="188" border="0" cellspacing="0" cellpadding="10">
            <tr>
              <td class="tl">Content</td>
            </tr>
          </table>
          <? 
    
    global $SS_SECTION_NAME, $months2, $level, $SS_SECTION, $info, $arrInterest, $db, $is_photo, $ar_title, $is_contain, $id, $shablon;
    
    if ($prev == 'yes') $add = " AND t.is_confirm!=2 AND t.ref_id=0 ";
    else $add = " AND t.is_confirm!=0 AND t.is_visible=1 "; 
    $sql =  "SELECT t.tree_id, t.name, s.name as section, t.is_contain FROM trees t, sections s WHERE t.root_id=3 AND t.section_id = s.section_id ".$add." ORDER BY t.order_by";
    $db->query($sql);
    $Rec = array();	
    $i = 0;
    while($db->next_record()) {
        $Rec[$i++] = $db->Record;
    }
    reset($Rec);
    
    ?>

    Проект который нужно переписать на Yii framework. Писал человек с большим сроком работы программиста чем я. Видать про фреймворки не знал. Код не весь, так как он огромен.

    P.S. В проекте более 2000 файлов с таким содержанием.

    akazakov, 08 Мая 2011

    Комментарии (19)
  6. JavaScript / Говнокод #6598

    +161

    1. 1
    var ptzReq = auction.responseText.slice(auction.responseText.indexOf('id="ptzReq'+id+'"')+18+id.toString().length, auction.responseText.indexOf('id="ptzReq'+id+'"')+51+id.toString().length);

    Зато здесь хотя-бы нет jQuery.

    popoffka, 08 Мая 2011

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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    function get_phrase()
    {
    	global $words;
    	global $phrase;
    	$phrase = implode(" ", $words);
    	if(strlen($phrase) < 4) return;
    }

    I was amazed to find this!?! The last line of the function rationalized my day...

    wyand, 05 Мая 2011

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

    +161

    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
    if($age != '') {
    			$d_m_y = explode('-', $age); // Разделяем на day(0) month(1) year(2)
    		// ГЕНЕРАЦИЯ ФОРМЫ С ДНЕМ РОЖДЕНИЯ
    		$vars['bday'] = "<select name=\"b_day\">\n<option>-</option>\n";
    		$i = 1;
    		while ($i <= 31) {
    			if($d_m_y[0] == $i) {
    				$sel = ' selected';
    			} else {
    				$sel = '';
    			}
    			$vars['bday'] .= '<option'.$sel.'>'.$i."</option>\n";
    			$i++;
    		}
    		$vars['bday'] .= "</select>\n";
    		// ГЕНЕРАЦИЯ СПИСКА С МЕСЯЦАМИ
    		$i = 1;
    		$vars['bmonth'] = "<select name=\"b_month\">\n<option>-</option>\n";
    		while ($i <= 12) {
    			if($d_m_y[1] == $i) {
    				$sel = ' selected';
    			} else {
    				$sel = '';
    			}
    			$vars['bmonth'] .= '<option'.$sel.'>'.$i."</option>\n";
    			$i++;
    		}
    		$vars['bmonth'] .= "</select>\n"; // Месяц ДР при ред
    		// ГЕНЕРАЦИЯ СПИСКА С ГОДАМИ
    		$i = 1940;
    		$vars['byear'] = "<select name=\"b_year\"\n<option>-</option>\n"; // Год ДР при ред
    		while ($i <= 2003) {
    			if($d_m_y[2] == $i) {
    				$sel = ' selected';
    			} else {
    				$sel = '';
    			}
    			$vars['byear'] .= '<option'.$sel.'>'.$i."</option>\n";
    			$i++;
    		}
    		$vars['byear'] .= "</select>\n";
    		$vars['use_age'] = false; // ОТКЛЮЧАЕМ ПОКАЗ ПУСТОГО СПИСКА
    		} else {
    		$vars['use_age'] = true;
    		$vars['bday'] = false;
    		$vars['bmonth'] = false;
    		$vars['byear'] = false;
    		}

    Генерация SELECT'ов для выбора даты рождения

    Мартин, 02 Мая 2011

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

    +161

    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
    // Подходы различной национальности
    
    /* Первый */
    function filesize_format($bytes, $format = '', $force = ''){
       $force = strtoupper($force);
       $defaultFormat = '%01d %s';
       if (strlen($format) == 0)
       $format = $defaultFormat;
       $bytes = max(0, (int) $bytes);
       $units = array('B', 'KB', 'MB', 'GB', 'TB', 'PB');
       $power = array_search($force, $units);
       if ($power === false)
       $power = $bytes > 0 ? floor(log($bytes, 1024)) : 0;
       return sprintf($format, $bytes / pow(1024, $power), $units[$power]);
    }
    /* Второй */
    function files_size( $size )
    {
        $name = array('Bytes', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB');
        $mysize = $size ? round( $size / pow(1024, ( $i = floor( log( $size, 1024 ) ) ) ), 2) .' ' .$name[$i] : $size.' Bytes';
        return $mysize;
    }
    /* Третий */
       function humanSize($size) {
          $a = array("bytes", "kb", "Mb", "Gb", "Tb", "Pb");
          $pos = 0;
          while ($size >= 1024) {
           $size /= 1024;
           $pos++;
          }
          return round($size,2)." ".$a[$pos];
         }

    Вопрос: Определите географические координаты места написания каждого...

    DoctorHouse, 27 Апреля 2011

    Комментарии (28)
  10. JavaScript / Говнокод #6467

    +161

    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
    (function ($) {
        $.fn.tabTmpl = function (jsonArr) {
            if (jsonArr) {
                var ths = this.find('thead th').clone(); // var tds = this.find('thead td').clone();
    >          var tds = $('td');
    >          ths.each(function(){ tds.append($('td').attr('id', this.id)); alert(tds.html());});
                var bd = this.find('tbody');
                $.each(jsonArr, function (i, v) {
                    tds.each(function () { this.innerHTML = v[this.id]; alert(this.id);});
                    $('<tr>').append(tds.clone().removeAttr('id')).appendTo(bd);
                });
            }
            return this;
        };
    })(jQuery);

    Спал за ночь 2 часа, решил к вечеру поправить плагин jQuery, чтобы работал как мне надо (по стилям чтобы все срасталось).
    Как вывод: зависание Chromium и неплохая нагрузка на систему. ... Так и не понял почему )

    bit0rez, 25 Апреля 2011

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

    +161

    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
    $posts = $db->execAndReturnAll('select `id`, `user_id`, `theme_id`, `text` from `posts` order by `id` desc limit 5');
    
    $users = array();
    $themes = array();
    $groups = array();
    
    $l = sizeof($posts);
    for($i = 0; $i < $l; ++$i)
    {
    if(!in_array($posts[$i]['user_id']), $users)
        $users[] = $posts[$i]['user_id'];
    if(!in_array($posts[$i]['theme_id']), $themes)
        $themes[] = $posts[$i]['theme_id'];
    }
    
    $users = $db->execAndReturnAll('select `id`, `nick`, `group_id` from `users` where `id` in (0,'.implode(',', $users).')');
    $themes = $db->execAndReturnAll('select `id`, `name` from `themes` where `id` in (0,'.implode(',', $themes).')');
    
    $l = sizeof($users);
    for($i = 0; $i < $l; ++$i)
    {
    if(!in_array($users[$i]['group_id']), $groups)
        $groups[] = $users[$i]['group_id'];
    }
    
    $groups = $db->execAndReturnAll('select `id`, `name` from `groups` where `id` in (0,'.implode(',', $groups).')');

    qbasic, 24 Апреля 2011

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