1. PHP / Говнокод #12771

    +149

    1. 1
    2. 2
    $ev = '$atHtml[] = template::translateTemplate('.$atArr[0].'::getHTML($atArr[1]));';
    eval($ev);

    Самый простой способ заставить работать статический метод класса из переменной в PHP ниже 5.3.

    Lander, 20 Марта 2013

    Комментарии (15)
  2. C++ / Говнокод #12770

    +19

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    struct BufInfo 
    {
    	const tbal::Bitmap &src, &dst;
    	int y1, y2;
    	BufInfo (const tbal::Bitmap &scr, const tbal::Bitmap &dst, int y1, int y2) : src(src), dst(dst), y1(y1), y2(y2) {}
    };

    Как можно проебать час жизни...

    TarasB, 20 Марта 2013

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

    +14

    1. 1
    2. 2
    3. 3
    4. 4
    template<typename T>
    constexpr size_t printed_sizeof() {
        return log10(sizeof(T)) + 1;
    }

    Осваиваем новые стандарты.

    roman-kashitsyn, 19 Марта 2013

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

    +20

    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
    #define STR(a) #a
    
    #define EXCEPTION_CLASS_CREATE(a)                   \
    class a : public std::exception                     \
    {                                                   \
    public:                                             \
        a()                                             \
        {                                               \
            d(STR(a)"\n");                              \
        }                                               \
                                                        \
        a(const char * format, ...)                     \
        {                                               \
            char buffer[ 1024 ];                        \
            va_list vl;                                 \
            va_start( vl, format );                     \
            vsnprintf( buffer, sizeof(buffer), format, vl ); \
            va_end( vl );                               \
            _str.append( buffer );                      \
            d(STR(a)" %s\n", buffer);                   \
        }                                               \
                                                        \
        ~a() throw()                                    \
        {                                               \
        }                                               \
                                                        \
        const char* what() const throw()                \
        {                                               \
            return _str.c_str();                        \
        }                                               \
    private:                                            \
        std::string _str;                               \
    };
    // ...
    EXCEPTION_CLASS_CREATE( InternalException )

    Мы очень любим varargs

    roman-kashitsyn, 19 Марта 2013

    Комментарии (13)
  5. bash / Говнокод #12767

    −123

    1. 1
    if ps ax | grep -v grep | grep keydispatcher > /dev/null

    no comments. но блин, даже "работает". т.е. без этого grep -v grep лажает, а с ним - нет (видимо потому что второй греп не успевает запуститься пока ps ax отрабатывает). однако...

    Pencioner, 18 Марта 2013

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

    −124

    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
    КоличествоОбъектов_ = 0;
    	
    	Для Каждого СтрокаТаблицы Из Объекты Цикл
    		Если СтрокаТаблицы.Объект = Элемент.Значение Тогда
    			КоличествоОбъектов_ = КоличествоОбъектов_ + 1;
    		КонецЕсли;
    	КонецЦикла;
    
    	Если КоличествоОбъектов_ > 1 Тогда
    		Элемент.Значение = Справочники.ОбъектыСтрахования.ПустаяСсылка();
    		Предупреждение("Выбранный объект уже присутствует в списке");
    		Возврат;
    	КонецЕсли;

    Нашел такое в конфе, которую поддерживаю.
    Программер накнопал алгоритм, чтобы исключить попадание одного и того же объекта в таблицу.
    Вначале был ступор, потом дошло.

    Ivon, 18 Марта 2013

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

    +13

    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
    class session {
    public:
        session(int id, boost::asio::io_service &io_service) :
            id(id),
            timer(io_service)
        {
            timer.expires_from_now(session_timeout);
            timer.async_wait(boost::bind(&session::on_timeout, this, _1));
        }
    
        void on_timeout(const boost::system::error_code &error) {
            if (error)
                return;
            std::cout << "Session timed out " << id << std::endl;
        }
    
    private:
        int id;
        boost::asio::deadline_timer timer;
    };
    
    std::map<boost::asio::ip::udp::endpoint, boost::shared_pointer<session> > sessions;

    sessions.erase(endpoint) приводит к небольшому насилию над трупом сессии... Ничего конечно не вылетает, и никогда не сломается, но совесть мучает, неприятно пользоваться UB'ом.

    bormand, 18 Марта 2013

    Комментарии (45)
  8. VisualBasic / Говнокод #12764

    −110

    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
    Select Case Figure mod 6  
     ...
     Case chsQueen 'Ферзь
       Picture.Line (X + 0.45 * Side, Y + 0.55 * Side)-(X + 0.5 * Side, Y + 0.15 * Side), Border
       Picture.Line (X + 0.55 * Side, Y + 0.55 * Side)-(X + 0.5 * Side, Y + 0.15 * Side), Border
       Picture.Circle (X + 0.5 * Side, Y + 0.15 * Side), 0.08 * Side, Border
       Picture.Line (X + 0.45 * Side, Y + 0.55 * Side)-(X + 0.3 * Side, Y + 0.25 * Side), Border
       Picture.Line (X + 0.35 * Side, Y + 0.6 * Side)-(X + 0.3 * Side, Y + 0.25 * Side), Border
       Picture.Circle (X + 0.3 * Side, Y + 0.25 * Side), 0.08 * Side, Border
       Picture.Line (X + 0.55 * Side, Y + 0.55 * Side)-(X + 0.7 * Side, Y + 0.25 * Side), Border
       Picture.Line (X + 0.65 * Side, Y + 0.6 * Side)-(X + 0.7 * Side, Y + 0.25 * Side), Border
       Picture.Circle (X + 0.7 * Side, Y + 0.25 * Side), 0.08 * Side, Border
       Picture.Line (X + 0.65 * Side, Y + 0.6 * Side)-(X + 0.85 * Side, Y + 0.35 * Side), Border
       Picture.Line (X + 0.73 * Side, Y + 0.65 * Side)-(X + 0.85 * Side, Y + 0.35 * Side), Border
       Picture.Circle (X + 0.85 * Side, Y + 0.35 * Side), 0.08 * Side, Border
       Picture.Line (X + 0.35 * Side, Y + 0.6 * Side)-(X + 0.15 * Side, Y + 0.35 * Side), Border
       Picture.Line (X + 0.27 * Side, Y + 0.65 * Side)-(X + 0.15 * Side, Y + 0.35 * Side), Border
       Picture.Circle (X + 0.15 * Side, Y + 0.35 * Side), 0.08 * Side, Border
       Picture.Line (X + 0.27 * Side, Y + 0.65 * Side)-(X + 0.27 * Side, Y + 0.8 * Side), Border
       Picture.Line (X + 0.73 * Side, Y + 0.65 * Side)-(X + 0.73 * Side, Y + 0.8 * Side), Border
       Picture.Circle (X + 0.5 * Side, Y + 0.35 * Side), 0.5 * Side, Border, 1.35 * Pi, 1.65 * Pi
       Call FloodFill(Picture.hdc, X + 0.5 * Side, Y + 0.5 * Side, Border)
       Picture.Circle (X + 0.5 * Side, Y + 1.24 * Side), 0.5 * Side, Border, 0.35 * Pi, 0.65 * Pi
       Picture.Circle (X + 0.5 * Side, Y + 1.1 * Side), 0.5 * Side, Border, 0.35 * Pi, 0.65 * Pi
       Picture.Line (X + 0.73 * Side, Y + 0.68 * Side)-(X + 0.65 * Side, Y + 0.7 * Side), Border
       Picture.Line (X + 0.73 * Side, Y + 0.77 * Side)-(X + 0.65 * Side, Y + 0.7 * Side), Border
       Picture.Line (X + 0.27 * Side, Y + 0.68 * Side)-(X + 0.35 * Side, Y + 0.7 * Side), Border
       Picture.Line (X + 0.27 * Side, Y + 0.77 * Side)-(X + 0.35 * Side, Y + 0.7 * Side), Border
       Picture.Line (X + 0.4 * Side, Y + 0.68 * Side)-(X + 0.5 * Side, Y + 0.63 * Side), Border
       Picture.Line (X + 0.4 * Side, Y + 0.68 * Side)-(X + 0.5 * Side, Y + 0.72 * Side), Border
       Picture.Line (X + 0.6 * Side, Y + 0.68 * Side)-(X + 0.5 * Side, Y + 0.63 * Side), Border
       Picture.Line (X + 0.6 * Side, Y + 0.68 * Side)-(X + 0.5 * Side, Y + 0.72 * Side), Border
       Let Picture.FillColor = Border
       Call FloodFill(Picture.hdc, X + 0.5 * Side, Y + 0.7 * Side, Border)
       Call FloodFill(Picture.hdc, X + 0.73 * Side, Y + 0.7 * Side, Border)
       Call FloodFill(Picture.hdc, X + 0.31 * Side, Y + 0.68 * Side, Border)
       Let Picture.FillColor = Fill
     ...
    End Select

    Пишу свои шахматы, с блекджеком и не без них.
    Вот, набацал алгоритм векторного рисования ферзя.
    Только на это ушло около получаса времени чистого с примесями (подстройки, мать их).
    Чую нутром, лучше забить и вырвать клипарт из интернета.

    ckopo, 18 Марта 2013

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

    +137

    1. 1
    long ticksFrom1970 = (long)(serverDateTime - serverDateTimeSubstractor) * 10000000L + (DateTime.Now.Ticks - realDateTimeOfserverDateTime.Ticks);

    Heisenberg, 18 Марта 2013

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

    +164

    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
    $(document).ready(function(){
    		//50% прозрачность иконкам голосования
    
    	var minusBig   = $(".photo-rate-block-minus"),
    		plusBig    = $(".photo-rate-block-plus"),
    		minusSmall = $(".photo-rate-block-minus-small"),
    		plusSmall  = $(".photo-rate-block-plus-small");
    
    	$(minusBig).css('opacity', '0.5');
    	$(plusBig).css('opacity', '0.5');
    	$(minusSmall).css('opacity', '0.5');
    	$(plusSmall).css('opacity', '0.5');
    
    	$(".photo-rate-block-minus, .photo-rate-block-plus, .photo-rate-block-minus-small, .photo-rate-block-plus-small").hover( function(){
    		$(this).css('opacity', '1');
    	}, function(){
    		$(this).css('opacity', '0.5');
    	});
    });

    CSS для слабаков

    DrFreez, 17 Марта 2013

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