1. Java / Говнокод #14494

    +69

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    public List<ImportException> importFiles() {
        Collection<ImportException> exceptions = new ArrayList<ImportException>();
        /* весь метод exceptions ссылается на этот список */
        return (List<ImportException>) exceptions;
    }

    Полиморфизм ёпт

    evg_ever, 04 Февраля 2014

    Комментарии (17)
  2. PHP / Говнокод #14493

    +142

    1. 1
    Травля "kegdan`a" объявляется открытой.

    Horse3, 04 Февраля 2014

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

    +139

    1. 1
    Я анально воспитываю "kegdan`a".

    Horse3, 04 Февраля 2014

    Комментарии (9)
  4. Pascal / Говнокод #14491

    +122

    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
    Попробуйте новый минусатор http://rghost.ru/52192415
    
    * Добавлена возможность анонимной работы (в программу зашит долгоиграющий анонимный прокси);
    * Добавлена "защита от идиотов";
    * Подключен скин
    * Теперь текст комментария выбранного участника отображается в виде всплывающей подсказки;
    * !(БОНУС) добавлена возможность МИНУСОВАНИЯ ВСЕХ ПОСТОВ ОППОНЕНТА! Сровняйте врага с землей!
    
    -Теперь бот не проигрывает мелодию при запуске.
    -Удален логотип сайта
    
    
    
    
    Меня вдохновил на дальнейшую работу над ботом вот этот человек, точнее, его комментарий:
    http://govnokod.ru/14476#comment215002

    Новый бот-минусатор для ололо (может использоваться как парсер)

    Stertor, 04 Февраля 2014

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

    +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
    // Когда-то давно:
    
    // Функция генерирует CSV из массива
    private function arrayToCSV($ar) {
            
    		$outstream = fopen("php://temp", 'r+');
    		fputcsv($outstream, $ar, ';', '"');
    		rewind($outstream);
    		$csv = fgets($outstream);
    		fclose($outstream);
    		return $csv . self::EOL;
    
    }
    
    // Несколько позже:
    
    // Функция генерирует CSV из массива
    private function arrayToCSV($ar) {
    	
    		// а вот флаги вам в дыры, автор парсера со стороны 1С клал на RFC,
    		// поэтому будьте любезны отложить fputcsv и генерить ручками
    		$csv = '';
    		$isFirst = true;
    		str_replace(array(';', "\n", "\r\n"), array(':', '', ''), $ar);
    		foreach($ar as $field) {
    		
    			if($isFirst)
    				$isFirst = false;
    			else
    				$csv .= ';';
    				
    			$csv .= $field;
    		}		
    		return $csv . self::EOL;
    }
    
    // Наши дни:
    
    // Функция генерирует CSV из массива
    private function arrayToCSV($ar) {
    		// упоротый, штоле? или с автором парсера в 1С переопылился?
    		return implode(';', str_replace(array(';', "\n", "\r\n"), array(':', '', ''), $ar)) . self::EOL;
    }

    наблюдаю в версионнике этапы становления говнокода

    clauclauclau, 04 Февраля 2014

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

    +153

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    Блядь, я никак не могу понять - зачем нужны дебильные фреймворки, MVC и прочее?
    В чём охуенность освоения MVC, каких-то "интерфейсов" и "моделей", суть которых мне непонятна,
    создания нескольких папок, файлов и конфигурации ради одной, довольно простой, функции, когда
    её можно спрограммировать десятью-двадцатью строками чистого PHP-кода?
    Также я не могу постичь смысл использования анальных шаблонизаторов ("Smarty", "Twig",
    и прочая ебатня)...

    Horse3, 03 Февраля 2014

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

    +31

    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
    #include <string>
    #include <iostream>
    #include <functional>
     
    using namespace std;
    
    template<class L, class... Ls>
    struct OL: L, OL<Ls...>{
       OL(const L& l, const Ls&... ls): L(l), OL<Ls...>(ls...){}
       using L::operator();
       using OL<Ls...>::operator();
    };
    
    template<class L1, class L2>
    struct OL<L1, L2>: L1, L2{
       OL(const L1& l1, const L2& l2): L1(l1), L2(l2){}
       using L1::operator();
       using L2::operator();
    };
    
    
    template<class... Ls>
    OL<Ls...> OverloadLambda(const Ls&... l){
       return OL<Ls...>(l...);
    }
    
    template<class L>
    L OverloadLambda(const L& l){
       return l;
    }
    
    void OverloadLambda(void) = delete;
    
    int main() {
       int i=5;
       auto lambda=OverloadLambda(  [=](int v){cout<<__func__<<" "<<i<<" "<<v<<" int"<<endl;},
                                    [=](string v){cout<<__func__<<" "<<i<<" "<<v<<" string"<<endl;},
                                    [=](float v){cout<<__func__<<" "<<i<<" "<<v<<" float"<<endl;});
       lambda(0);
       lambda("Hello");
       lambda(1.0f);
       i=600;
       auto lambda1=OverloadLambda( [=](int v){cout<<__func__<<" "<<i<<" "<<v<<" int"<<endl;});
       lambda1(4);
       ///*auto lambda0 =*/ OverloadLambda();
       return 0;
    }

    Специальная олимпиада объявляется открытой!
    http://ideone.com/y14z5Y
    Там много другого кода и какой-то из старых тем, а мне лень весь облазить.

    LispGovno, 03 Февраля 2014

    Комментарии (181)
  8. C++ / Говнокод #14472

    +33

    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
    template<typename F, typename... Fns>
    struct Overloaded
    {
      std::tuple<F,Fns...> fns;
      
      // эта и следующая за ней функция нужны для рекурсивного
      // накопления кортежа из всех входящих функций
      template<typename First, typename... Others>
      std::tuple<First,Others...> collect(First f, Others... others) {
        auto t = std::make_tuple(f);
        return std::tuple_cat(t, collect(others...));
      }
      template<typename Single>
      std::tuple<Single> collect(Single f) {
        return std::make_tuple(f);
      }
      
      Overloaded(F f, Fns... others) {
        // сохраняем кортеж функций
        fns = collect(f, others...);
      }
    };
    
    template<typename F, typename... Fns>
    Overloaded<F,Fns...> make_overloaded(F f, Fns... fns) {
      return Overloaded<F,Fns...>(f,fns...);
    }
    
    //...
    
    void F1(int) {}
    void F2(int, float) {}
    // ...
    auto f = make_overloaded(F1, F2);

    Не хочется связываться с бустом ввиду его убогости громоздкости. Поэтому пытаюсь сделать сам на чистом C++11 без макросов.
    Не понятно теперь как перегрузить оператор ()?
    Задействовать enable_if? Ни чего в голову не приходит.
    Есть у кого идеи?

    Оттуда

    LispGovno, 03 Февраля 2014

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

    +24

    1. 1
    int f(int = 7, int * = nullptr, int (*(*)(double))[3] = nullptr){

    http://ideone.com/BcZ7Ja

    LispGovno, 02 Февраля 2014

    Комментарии (36)
  10. Java / Говнокод #14470

    +64

    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
    balance2N(nodeGet(0), nodeGet(0).getLine(0).getNodeConnectedWith(nodeGet(0)));
    
    class Node {
        private ArrayList<Line> children = new ArrayList<Line>();
        public Line getLine (int index) {
            return children.get(index);
        }
    }
    
    class Line {
        private Node[] parents = new Node[2];
        public Node getNodeConnectedWith(Node nodeA) {
                if (parents[0] == nodeA) {
                    return parents[1];  //return node another from this node (node on the other side)
                } else {                //if    parents[1] == nodeA     equals  !(parents[0] == nodeA)
                    return parents[0];
                }
            }
    }

    Метод balance2N делает что-то с двумя нодами.

    energetix_user, 02 Февраля 2014

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