1. C++ / Говнокод #9276

    +153

    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
    // static_lit.h
    #ifndef __STATIC_LIT__
    #define __STATIC_LIT__
    
    namespace
    { 
      namespace Toast
      { 
        namespace Detail
        {  
          template<int UNIT_LOCAL_UID> 
          struct TUnitUniqueId
          { 
              static int sGloballyUniqueVar; 
          }; 
     
          template<int UNIT_LOCAL_UID> 
          int TUnitUniqueId<UNIT_LOCAL_UID>::sGloballyUniqueVar = 0;
        } 
      } 
    } 
     
    #define GEN_UID_IMPL(line) &Toast::Detail::TUnitUniqueId<line>::sGloballyUniqueVar
    //#define GEN_UID GEN_UID_IMPL(__LINE__)
    #define GEN_UID GEN_UID_IMPL(__COUNTER__)
    // В оригинале тут было __LINE__, однако в $тудии, сконфигурированной
    // под билд в неком специфическом сдк, __LINE__ почему-то не опознавалось
    // в качестве константы и не принималось в шаблон. Пришлось заменить её
    // на менее портабельный, но работоспособный и, кстати, более уместный
    // в этом качестве __COUNTER__.
    
    template<class T,int* UID> 
    struct StaticLit
    {
      static T &Get (const char *str)
      {
        static T instance (str); // простейший случай для примера,
        // вы без труда адаптируете его к использованию синглтонов
        // и прочих премудростей
        return instance;
      }
    };
      
    #define SLTR_IMPL2(T,unique_id) StaticLit<T,unique_id>
    #define SLTR_IMPL(T) SLTR_IMPL2(T,GEN_UID)
    
    #define SLTR(T,str) (SLTR_IMPL(T)::Get (str))
    
    #endif // __STATIC_LIT__

    Настоящий Статический Литерал на С++
    http://www.gamedev.ru/flame/forum/?id=158006
    извените за игрострой

    TarasB, 31 Января 2012

    Комментарии (8)
  2. ActionScript / Говнокод #9275

    −120

    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
    // Flash vars come in as strings. We need them as booleans.
    private function _convertToBoolean(value:*):Boolean {
    	switch(value) {
    		case "1":
    		case 1:
    		case "true":
    		case "yes":
    		case "on":
    		     return true;
    		case "0":
    		case 0:
    		case "false":
    		case "no":
    		case "off":
    		case "undefined":
    		default:
    			return false;
    		//default:
    			//return Boolean(value);
    	}
    }

    https://github.com/tmaiaroto/agile_uploader/blob/master/src/Main.as

    wvxvw, 31 Января 2012

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

    +1000

    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
    if(m_numberColors>1)
    	{
    		m_colorComboColor2.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor2.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>2)
    	{
    		m_colorComboColor3.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor3.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>3)
    	{
    		m_colorComboColor4.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor4.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>4)
    	{
    		m_colorComboColor5.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor5.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>5)
    	{
    		m_colorComboColor6.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor6.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>6)
    	{
    		m_colorComboColor7.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor7.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>7)
    	{
    		m_colorComboColor8.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor8.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>8)
    	{
    		m_colorComboColor9.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor9.ShowWindow(SW_HIDE);
    	}
    	if(m_numberColors>9)
    	{
    		m_colorComboColor10.ShowWindow(SW_SHOW);
    	}
    	else
    	{
    		m_colorComboColor10.ShowWindow(SW_HIDE);
    	}

    Есть десять элементов!
    Нужно в зависимости от числа управлять видимостью.
    Страшно подумать если бы их было 1000!!!!

    alex_devel, 31 Января 2012

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

    +148

    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
    <?php
    function demotivator($image, $wheresave, $slogan1, $slogan2, $copyright) {
    $ext = getimagesize($image);
    // Открываем изображение
    switch($ext[2]) {
    
    	case 2: {$img = ImageCreateFromJPEG($image); break;}
    	case 1: {$img = ImageCreateFromGIF($image); break; }
    	case 3: {$img = ImageCreateFromPNG($image); break;}
    	case 6: {$img = ImageCreateFromBMP($image); break;}
    	default : {
    		unlink ($image);
    		return 2;
    	}
    }
    // Получение размеров изображения
    $x = ImageSX($img); // X
    $y = ImageSY($img); // Y
    // Размер черного прямоугольника, который будем рисовать
    $tx = $x * 0.1;
    $ty = $x * 0.1;
    $bx = $x + $tx;
    $by = $y + $ty;
    $dx= $x * 0.01; // Смещение. Необходимо для рисования рамки
    $dy= $x * 0.01;
    // Черный фон
    $black = ImageColorAllocate($img, 0, 0, 0);
    // Создаем новое изображение
    $img2 = ImageCreateTrueColor($bx + $tx, $by + $tx * 2.6);
    $black = ImageColorAllocate($img2, 0, 0, 0);
    // Масштабирование
    ImageCopyResized($img2, $img, $tx, $ty, 0, 0, $bx-$tx, $y, $x, $y);
    // Расчет смещений для рисования рамки
    $x1 = $tx;
    $y1 = $ty;
    $x2 = $bx;
    $y2 = $y + $ty;
    // Цвета рамки, слоганов и копирайта
    $col = ImageColorAllocate($img2, 255, 255, 255); // Цвет слоганов
    $col2 = ImageColorAllocate($img2, 255, 255, 255); // Цвет копирайта
    $col3 = ImageColorAllocate($img2, 255, 255, 255); // Цвет рамки
    // Рамки на изображении
    ImageRectangle($img2, $x1 - 5, $y1 - 5, $x2 + 4, $y2 + 4, $col3);
    ImageRectangle($img2, $x1 - 6, $y1 - 6, $x2 + 5, $y2 + 5, $col3);
    // Пишем слоганы, сначала с X=0, чтобы получить линейные размеры текста
    $s1 = ImageTTFText($img2, 0.06 * $bx, 0, $dx, $by + $ty, $col, "/times.ttf", $slogan1);
    $s2 = ImageTTFText($img2, 0.035 * $bx, 0, $dx, $by + $ty + 0.08 * $bx, $col, "/arial.ttf", $slogan2);
    // 1-й слоган не помещается в картинку - ошибка!
    if (($s1[2] - $s1[0]) > $bx + $tx) $sl1 = 1;
    $dx = (($bx + $tx) - ($s1[2] - $s1[0]))/2; // Смещение. Эта величина определяет центровку текста для 1-го слогана
    // Непосредственно текст. 1-й слоган
    ImageFilledRectangle($img2, 0, $y2 + 10, $bx + $tx, $by + $tx * 2.8, $black);
    ImageTTFText($img2, 0.06 * $bx, 0, $dx, $by + 1.1*$ty, $col, "/times.ttf", $slogan1);
    $dx = (($bx + $tx) - ($s2[2] - $s2[0]))/2; // Смещение. Эта величина определяет центровку текста для 2-го слогана
    // Непосредственно текст. 2-й слоган (таглайн)
    if ($dx < 0)  {
    	// Текст не умещается в картинку, масштабируем.
    	$s = $s2[2] - $s2[0];
    	$size = (0.035 * $bx * $bx) /$s;
    	$s2 = ImageTTFText($img2, $size, 0, $dx, $by + $ty + 0.08 * $bx, $col, "/arial.ttf", $slogan2);
    	$dx = (($bx + $tx) - ($s2[2] - $s2[0]))/2;
    	ImageFilledRectangle($img2, 0, $by + 1.2* $tx, $bx + $tx, $by + $tx * 2.6, $black);
    	ImageTTFText($img2, $size, 0, $dx, $by + $ty + 0.08 * $bx, $col, "/arial.ttf", $slogan2);
    } else  {
    	$size = 0.035 * $bx;
    	ImageFilledRectangle($img2, 0, $by + 1.4*$tx, $bx + $tx, $by + $tx * 2.3, $black);
    	ImageTTFText($img2, $size, 0, $dx, $by + $ty + 0.08 * $bx, $col, "/arial.ttf", $slogan2);
    }
    // Copyright
    ImageTTFText($img2, $size/1.7, 0, 10, $by + $tx * 2.5, $col2, "/arial.ttf", $copyright);
    ImageJpeg($img2, $wheresave);
    ImageDestroy($img2);
    return 0;
    }
    ?>

    Код не мой, я просто разместил объяву.

    varg242, 31 Января 2012

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

    +994

    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
    int GetLocaleImageIndexById(LCID LocaleID)
    {
    	CString Id = CPiCultureInfo::GetSpecific(LocaleID).GetISO3166Country().MakeLower();
    	if (Id == "ad") return 0;
    	if (Id == "ae") return 1;
    	if (Id == "af") return 2;
            .
            .
            .
            .
            .
    	if (Id == "zm") return 245;
    	if (Id == "zw") return 246;
    	return -1;
    }

    Слов нет

    alex_devel, 31 Января 2012

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

    +148

    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
    /*
     @param array $menu_array Array of pages
     @param string $current Current page
     @return string $menu Menu.
    */
    function CreateMenu($menu_array, $current)
    {
        foreach($menu_array as $key => $value)
        {
            if($key == $current) $active = " class=\"active\"";
            
            $menu .= "<li$active><a href=\"$key\">$value</a></li>\n";
            unset($active);
        }
        
        return $menu;
    }

    varg242, 31 Января 2012

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    /*
     @param string $ext File extension
     @return string Filename.
    */
    function GenFName($ext)
    {
        return md5(rand(rand(0, rand()), time())).md5(rand(rand(0, rand()), time())).".".$ext;
    }

    varg242, 31 Января 2012

    Комментарии (2)
  8. Ruby / Говнокод #9269

    −101

    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
    def actual?
        if self.from <= Date.today
          if self.to
            if self.to >= Date.today
              true
            else
              false
            end
          else
            true
          end
        else
          false
        end
      end

    метод в модели, проверяющий ее актуальность

    MikDiet, 31 Января 2012

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

    +162

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if(count($MenuItem)>4) 
    {
    	$CONDITION = $MenuItem[4];
    	if(strlen($CONDITION)>0 && (!eval("return ".$CONDITION.";")))
    		$bSkipMenuItem = true;
    }

    1С-Битрикс: Управление сайтом 11.0.3

    tolic811, 31 Января 2012

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

    +157

    1. 1
    2. 2
    3. 3
    $topcellcolor = '"#e7e9f0" id="table_class_header"'; // заглавная строка
      $cellcolor1 =   '"#f8f9fb" id="table_class_1"'; // строка 1
      $cellcolor2 =   '"#FFFFFF" id="table_class_2"'; // строка 2

    Верстаем правильно...
    P.S. там нет дальше "строка 3", "строка 4", 5, 6,

    Чуете олдскульность? Раньше программеры были жесче! Это сейчас все расслабились со своими MVC, MVVM, декораторами, отделением бизнес-логики от кода и прочей чепухой...

    Nemoden, 31 Января 2012

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