1. Список говнокодов пользователя Xom94ok

    Всего: 33

  2. Python / Говнокод #17655

    −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
    22. 22
    23. 23
    24. 24
    class Node:
        def __init__(self):
            pass
    
        def __str__(self):
            return self.prn()
    
        def prn(self):
            ret = ''
            if hasattr(self, 'field_list'): # struct
                ret += 'struct ' + self.id + '{\n'
                for fld in self.field_list:
                    ret += '\t' + str(fld) + '\n'
                ret += '\n}\n'
            elif hasattr(self, 'type'): # field list of single type
                fld_str_l = []
                for f in self.fields:
                    fld_str_l += [str(f)]
                ret += self.type + '\t' + ', '.join(fld_str_l) + ';'
            elif hasattr(self, 'sizes'): # variable (maybe array)
                ret += self.id
                for s in self.sizes:
                    ret += '[' + s + ']'
            return ret

    Фрагмент парсера сишных структур для последующей генерации (де)сериализатора.
    Не заходит что-то в у меня питон.

    Xom94ok, 16 Февраля 2015

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

    +50

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    #include <iostream>
     
    void koko() { return throw "kook"; }
     
    int main() try {
    	koko();
    } catch(const char * e) {
    	std::cout << e;
    }

    когда никто не видит, throw возвращает void
    http://ideone.com/VDMPwE

    Xom94ok, 22 Декабря 2014

    Комментарии (1)
  4. Куча / Говнокод #17304

    +123

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    KoKoKoKoKoKoKoKoKoKo Kud-Kudah KoKoKoKoKoKoKoKo kudah kO kud-Kudah Kukarek
    kudah KoKoKo Kud-Kudah kOkOkOkO kudah kO kud-Kudah Ko Kukarek
    kudah KoKoKoKo Kud-Kudah KoKoKoKo kudah kO kud-Kudah kO Kukarek
    kOkOkOkOkO Kukarek Kukarek
    kOkOkOkOkOkOkO Kukarek

    Публикации уже два дня, а на говнокоде ни одного упоминания. Ну как так?

    https://github.com/Ky6uk/PETOOH
    http://habrahabr.ru/post/245443/

    Xom94ok, 12 Декабря 2014

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

    +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
    function kevinTheNumberMentioner(_){
      l=[]
      /* mostly harmless --> */ with(l) {
      	
      	//Sorry about all this, my babel fish has a headache today...
      	for (ll=!+[]+!![];ll<_+(+!![]);ll++) {
      	  lll=+!![];
      	  while (ll%++lll);
      	  //I've got this terrible pain in all the semicolons down my right-hand side
      	  (ll==lll)&&push(ll);
      	}
      	forEach(alert);
      	
      }
      
      //You're really not going to like this...
      return [!+[]+!+[]+!+[]+!+[]]+[!+[]+!+[]];
    }

    Открыл твитор, а там - это.

    http://arstechnica.com/information-technology/2014/11/holiday-reading-for-a-certain-sort-if-hemingway-wrote-javascript/

    Xom94ok, 30 Ноября 2014

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

    +51

    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
    template<typename T>
    class com_ptr {
    // ...
    
        // HRESULT ID2D1RenderTarget::CreateSolidColorBrush(
        //   const D2D1_COLOR_F &color,
        //   [out]  ID2D1SolidColorBrush **solidColorBrush   // нормальный, типизированный петух
        // );
        T ** get_init_ptr() {
            if(ptr) {
                ptr->Release();
                ptr = 0;
            }
            return &ptr;
        }
    
        // HRESULT DWriteCreateFactory(
        //   _In_   DWRITE_FACTORY_TYPE factoryType,
        //   _In_   REFIID iid,
        //   _Out_  IUnknown **factory   // петух неизвестен!
        // );
        IUnknown ** get_unknown_init_ptr() {
            return reinterpret_cast<IUnknown**>(get_init_ptr());
        }
    
        // HRESULT CoCreateInstance(
        //   _In_   REFCLSID rclsid,
        //   _In_   LPUNKNOWN pUnkOuter,
        //   _In_   DWORD dwClsContext,
        //   _In_   REFIID riid,
        //   _Out_  LPVOID *ppv    // соломка, где петух будет лежать
        // );
        void ** get_void_init_ptr() {
            return reinterpret_cast<void**>(get_init_ptr());
        }
    
    //...
    };

    Ко-ко-ком. Чтоб его за ногу.

    Xom94ok, 22 Сентября 2014

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

    +16

    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
    // https://github.com/mono/moon/blob/master/src/list.h#L87
    
    class Queue {
    protected:
            MoonMutex lock;
            List *list;
            
    public:
            Queue ();
            ~Queue ();
            
            // convenience properties
            bool IsEmpty ();
            int Length ();
            
            // convenience methods
            void Clear (bool freeNodes);
            
            void Push (List::Node *node);
            List::Node *Pop ();
            
            void Lock ();
            void Unlock ();
            
            // accessing the internal linked list directly requires manual Locking/Unlocking.
            List *LinkedList ();
    
            // copies the queue and empties the original
            void  MoveTo (Queue &queue);
    };
    
    // https://github.com/mono/moon/blob/master/src/list.cpp#L391
    
    Queue::Queue ()
      : lock (true)
    {
            list = new List ();
    }
    
    int
    Queue::Length ()
    {
            int length;
            
            Lock ();
            length = list->Length ();
            Unlock ();
            
            return length;
    }
    
    void
    Queue::MoveTo (Queue &queue)
    {
            List::Node *node;
            while ((node = list->First ())) {
                    list->Unlink (node);
                    queue.Push (node);
            }
    }

    Во имя луны!

    Xom94ok, 07 Января 2014

    Комментарии (93)
  8. Куча / Говнокод #14291

    +119

    1. 1
    2. 2
    3. 3
    Мы
    сдали
    ЭТО

    Я видел ЭТО изнутри, я в ЭТОМ участвовал.
    Мы с ЭТО теперь едины.

    У каждого из нас есть своё ЭТО.

    Xom94ok, 27 Декабря 2013

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

    +12

    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
    #include <iostream>
    
    class base
    {
    	virtual void on_create() { }
    public:
    	int value;
    	float another_value;
    
    	void create()
    	{
    		static base test;
    		if(*reinterpret_cast<unsigned int *>(this) != *reinterpret_cast<unsigned int *>(&test))
    		{
    			std::cout << "please, do not override on_create()\n";
    		}
    		on_create();
    	}
    };
    
    class derived : public base
    {
    	virtual void on_create(){}
    };
    
    int main(int argc, char * argv[])
    {
    	std::cout << "base\n";
    	base b;
    	b.create();
    
    	std::cout << "derived\n";
    	derived d;
    	d.create();
    }

    Родилось в попытке ограничить переопределение виртуального метода.
    Работает, цуко.
    http://ideone.com/gUN9OA

    Xom94ok, 20 Ноября 2013

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

    +12

    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
    // Вопрос: как сгенерировать в рантайме предупреждение от компилятора?
    // http://stackoverflow.com/q/4187967
    
       void f(int*p = nullptr)
        {
        if (!p)
    {
    //HERE I WOULD LIKE TO HAVE AN MSG THAT WOULD BE DISPLAYED DURING COMPILATION AS A WARNING POSSIBLY
    }
        }
    
    
    // Ответ: очевидно же, вызвать компилятор для соответствующего кода.
    // http://stackoverflow.com/a/4188155
    
    void f(int *p = nullptr) {
        if (!p) {
            system("gcc -Wall warning.c");
        }
    }

    Каков вопрос - таков ответ.

    Xom94ok, 01 Сентября 2013

    Комментарии (3)
  11. Си / Говнокод #13470

    +142

    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
    // main.cpp
    #include <stdio.h>
    #include <stdlib.h>
    //...
    #include "tcp.h"
    //...
    #include "tcp.c"
    //...
    int main(int argc, char ** argv)
    {
    //...
    		receive_tcp_message(sock, &tcp_msg);
    		switch(tcp_msg.type)
    		{
    #include "cases.h"
    		default:
    			break;
    		}
    //...
    }

    Имелась небольшая утилита, написанная матёрым сишником. Имелся еще меньший шаблонный проект для таких утилит, написанный на плюсах с простым makefile. Таким вот нехитрым способом этот сишник влил первое во второе. Он не пользуется makefile, т.к. обычно пишет шелл-скрипт, собирающий весь проект. А еще он знает кучу анекдотов и историй, выпить не дурак и вообще отличный дядька.

    Xom94ok, 24 Июля 2013

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