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

    +34

    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
    void
    XmlRpcDispatch::work(double timeout)
    {
        ...
        nEvents = select(maxFd+1, &inFd, &outFd, &excFd, NULL);
        ...
    }
    
    void XmlRpcDispatch::terminate() {
        ...
        XmlRpcSocket::connect(_cmd_sock, "127.0.0.1", port);
        ...
    }

    Не то чтобы говнокод, но забавный костыль. А как еще корректно выйти из select'a, ждущего входящих соединений? Создать соединение самому.

    Steve_Brown, 12 Октября 2012

    Комментарии (4)
  2. bash / Говнокод #11918

    −117

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    MAXJOBS=20
    for i in `seq 1 $MAXJOBS` ; do nice -n 19 gzip -c /dev/zero > /dev/null & done
    
    while true
    do
     LA=`</proc/loadavg` && LA=${LA// */}
     H=$(date +%M) && H=${H/0/}
     G=`echo "(${MAXJOBS}/2)*(s(2*3.14159*${H}/60) +1 ) <= ${LA}" | bc -l`
     test ${G} -lt 1 && for i in `seq 1 $MAXJOBS` ; do  kill -SIGCONT %$i  ; done  || for i in `seq 1 $MAXJOBS` ; do  kill -SIGSTOP %$i; done
     sleep 1
    done

    Генерирует load average, и поддерживает её в форме синусоиды, с периодом в час.

    на графике выглядит как-то так:
    http://i.piccy.info/i7/108cbdd61801da0ed805ecf41ecbc9e3/4-47-114/35579895/localhost_load.png

    bliznezz, 12 Октября 2012

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

    +66

    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
    <?php
    
       //You can even add more Dollar Signs
    
       $Bar = "a";
       $Foo = "Bar";
       $World = "Foo";
       $Hello = "World";
       $a = "Hello";
    
       $a; //Returns Hello
       $$a; //Returns World
       $$$a; //Returns Foo
       $$$$a; //Returns Bar
       $$$$$a; //Returns a
    
       $$$$$$a; //Returns Hello
       $$$$$$$a; //Returns World
    
       //... and so on ...//
    
    ?>

    Из комментов на http://www.php.net/manual/en/language.variables.variable.php

    xaionaro, 12 Октября 2012

    Комментарии (24)
  4. Python / Говнокод #11915

    −102

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
           obj_l = list()
            for obj, obj_id in [(QuizQuestion, quest_id), (QuizAssigment, ass_id), (QuizQuestionAnswer, answ_id)]:
                q_set = getattr(getattr(obj, 'objects'), 'filter')(id=obj_id)
                obj_l.append(getattr(q_set, 'count')() > 0 and q_set[0] or False)
            (False in obj_l or obj_l[2].question != obj_l[0] or (user and obj_l[0].user)) and abort(IntegrityError())

    1) хер такое прочтешь
    2) для осмысления прочитанного нужно выпить
    3) за осмысление такого нужно выпить еще раз
    4) чувак узнал про getattr, хотя стоило вызвать напрямую obj.objects.filter(id=obj_id)
    5) q_set.count() > 0 and q_set[0] or false
    пятая строка поддается пониманию но катастрофически быстро начинает от этого терять смысл

    nimnull, 12 Октября 2012

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

    +21

    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
    if(m_bitRate < DSS_LOW_RATE/1000000.)
    {
        m_bitRate = DSS_LOW_RATE/1000000.;
    }
    else if(m_bitRate > DSS_HIGH_RATE/1000000.)
    {
        m_bitRate = DSS_HIGH_RATE/1000000.;
    }
    else if(m_bitRate > (.5*(DSS_HIGH_RATE - DSS_LOW_RATE) + DSS_LOW_RATE)/1000000.)
    {
        m_bitRate = DSS_HIGH_RATE/1000000.;
    }
    else
    {
        m_bitRate = DSS_LOW_RATE/1000000.;
    }

    умиляет. ну хотя бы, упростить .5*(DSS_HIGH_RATE - DSS_LOW_RATE) + DSS_LOW_RATE) до (DSS_HIGH_RATE + DSS_LOW_RATE)/2 -- понятнее, да? тогда и if(m_bitRate > DSS_HIGH_RATE/1000000.) можно убрать за ненадобносью (ибо число которое больше чем максимальное из двух точно больше чем среднее из этих жвух), и самое верхнее if(m_bitRate < DSS_LOW_RATE/1000000.) можно убрать ибо в else у нас то же самое произойдет - и сразу как бы читаестя с ходу и понимается, не надо напрягаться.
    Боже, как я люблю крупные проприетарные проекты написанные людьми выбравшими для себя не свою профессию разработчика софта...

    Pencioner, 11 Октября 2012

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

    +139

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    private static string f(bool? arg)
    {
        switch (arg)
        {
            case true: return "true";
            case false: return "false";
            case null: return "null";
            default: return "???";
        }
    }

    В продолжение историй про bool-shit. Если строку 8 убрать, то Visual Studio пишет:
    "Error 3 'f(bool?)': not all code paths return a value"
    Что должно быть в аргументе, чтобы попасть в ветку default?

    absolut, 11 Октября 2012

    Комментарии (22)
  7. 1C / Говнокод #11911

    −121

    1. 1
    НомСтрЗаказа = ПолучитьПустоеЗначение("Число");

    Нашел тут в загашниках при поддержке "чужого кода".
    Вот оказывается как надо присваивать переменной нулевое значение!

    jerokee, 11 Октября 2012

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

    −121

    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
    Функция СоздатьЗапрос(Текст) Экспорт
    	Запрос = Новый Запрос;
    	Запрос.Текст=Текст;
    	Возврат Запрос;
    КонецФункции
    Функция СоздатьМассив() Экспорт
    	Возврат Новый Массив;
    КонецФункции
    Функция СоздатьСоответствие() Экспорт
    	Возврат Новый Соответствие;
    КонецФункции
    Функция СоздатьСтруктуру() Экспорт
    	Возврат Новый Структура;
    КонецФункции
    Функция СоздатьСписокЗначений() Экспорт
    	Возврат Новый СписокЗначений;
    КонецФункции

    Вот такие вот функции (это естественно не все) от OLE-мастера: NewObject - не, не слышал.

    ilya2184, 10 Октября 2012

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

    +75

    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
    public class Тетрадка {
    
    public static РабочийДень закрытьДень(РабочийДень последний, double зарплатаВыдана, double кассуЗабрали) {
            последний.выдана_зп = зарплатаВыдана;
            последний.выручку_забрали = кассуЗабрали;
            РабочийДень новый = new РабочийДень();
            Calendar c = Calendar.getInstance();
            новый.год = c.get(Calendar.YEAR);
            новый.месяц = c.get(Calendar.MONTH);
            новый.день = c.get(Calendar.DAY_OF_MONTH);
            последний.следующийДень = новый.год + "-" + новый.месяц + "-" + новый.день;
            новый.предыдущийДень = последний.год + "-" + последний.месяц + "-" + последний.день;
            новый.остаток = последний.остаток.сделатьКопию();
            новый.вкассе = последний.вкассеОбщее - последний.выручку_забрали;
            новый.общаяЗарплатаПрошлогоДня = последний.общаяЗарплата - последний.выдана_зп;
            String папка = "./days/" + новый.предыдущийДень + "/" + новый.предыдущийДень + "-";
            последний.сохранить(папка + "РабочийДень.data", папка + "ОстатокКарт.data", папка + "Приход.data");
            новый.сохранить("./последнийРабочийДень.data", "./последнийОстатокКарт.data", "./последнийПриход.data");
            return новый;
        }
    
     ....

    Brainexplode

    VirtualVoid, 10 Октября 2012

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

    +139

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    switch (!_data.Provider)
    {
            case true: _currentState = states.DT2F; break;
            case false: _currentState = states.DT2P; break;
    }

    Проверка двух условий

    Prafesor, 10 Октября 2012

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