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

    +161

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    bool CheckP_packet1(byte source[65536],int packettype)
    {
    	//Packet types:
    	//0 - first packet from client (authentication)
    	//1 - second packet (for getting server list)
    	//2 - to connect some server
    	//3 - to get custom skin
    	return true;
    }

    mingebag, 17 Августа 2011

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

    +115

    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
    //1
    directory = WebConfigurationManager.ConnectionStrings[Page.Server.MachineName.ToUpper() + Request.QueryString["number"]].ConnectionString;
    //2
    web.config:
    <connectionStrings>
      <add name="ServerName1" connectionString="D:\bla\incoming\" /> 
      <add name="ServerName2" connectionString="D:\bla\outcoming\" /> 
      ...
     </connectionStrings>
    //3
    function Upload(currFile) {
    if (grafWin == null || grafWin.closed) {
    	grafWin = open('UpLoad.aspx?number=' + currFile,'Attachment','width=300,height=150,scrollbars=no,left=800,top=400');
    	self.name = "winPARENT";
    }
    }
    //4
    <input type="button" name="filePlus1" value=" + " style="visible;" onclick="javascript: Upload('1')">

    1) Сохранение документов на стороне сервера выбор папки назначения
    2) web.config
    3) js-function для вызова страницы
    4) html контрол для вызова страницы которая сохранит документ в папку D:\bla\incoming

    TasmX, 17 Августа 2011

    Комментарии (1)
  3. SQL / Говнокод #7571

    −857

    1. 1
    CREATE DOMAIN D_TRIBOOL AS SMALLINT DEFAULT 0 NOT NULL CHECK (VALUE IN (-1,0,1));

    Возможно, вопрос о говнокодистости этой строчки является холиварным. Но меня приведённый отрывок по крайней мере немало удивил.

    konsoletyper, 17 Августа 2011

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

    +160

    1. 1
    typedef _My unsigned int UINT_PTR, *PUINT_PTR;

    Говногость, 17 Августа 2011

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

    +169

    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
    // Конструктор
    [...]
    $this->Messages = array(
            1 => 'Card succesfull edited !',
            2 => 'Error, edited card !',
            3 => 'Was change succesfull.', // Тут индекс = 3
            4 => 'Was change succesfull.', // А тут = 4. Сечешь разницу?
            5 => 'Change status...',
            6 => 'Comment added succesful',
            7 => 'Comment expediated !', // Коммент ушел в экспедицию 
            8 => 'The card was droped succesgul.', // succesGul
            9 => 'Can\'t to delete this card.', // I don't to know php and to have no idea about english
            10 => 'Can\'t do upload file.',
            11 => 'File was uploaded successful.',
            12 => 'The eacuation was succesfull.', // Успешная эякуляция :O
            13 => 'Eacuation !' // Эякуляция !
        );
    [...]
    
    // Сохранение в базу
    // - Папа, папа, а SQL Injection существует? - Нет сынок..........
    $this->SUA_DB->query("INSERT INTO cards SET type='{$_POST['selector_type']}',name='{$_POST['card']}',user = '{$this->user_id}', description='{$_POST['descr']}', project='{$_POST['selector_project']}', category='{$_POST['selector_category']}' ") &
    $this->Msg->SetMsg (vsprintf($this->Messages[7],$_POST['card'])) :
    $this->Msg->SetMsg ($this->Messages[6]) &
    $this->Msg->SetError(true);
    // Из область фантастики

    Сказали чинить код парня которого недавно уволили... Пришлось переписать все заново.

    Особенно понравившиеся строки прокомментировал

    cephuo, 17 Августа 2011

    Комментарии (11)
  6. Python / Говнокод #7568

    −85

    1. 1
    (1 if not i%2 else 2)

    Fai, 17 Августа 2011

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

    +78

    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
    public class LoadManager
    {
        public static Integer DEFAULT_MAX_LOAD_COUNTER = 2;
    
        private ConcurrentHashMap<Class, Integer> loadCounters = new ConcurrentHashMap<Class, Integer>();
    
        public void incLoadCounter(Class clazz)
        {
            synchronized (loadCounters)
            {
                if (!loadCounters.containsKey(clazz))
                {
                    loadCounters.put(clazz, 0);
                }
    
                if (loadCounters.get(clazz) <= DEFAULT_MAX_LOAD_COUNTER)
                {
                    loadCounters.put(clazz, loadCounters.get(clazz) + 1);
                }
            }
        }
    
        public void testLoadCounterAndWait(Class clazz)
        {
            synchronized (loadCounters)
            {
                if (!loadCounters.containsKey(clazz))
                {
                    loadCounters.put(clazz, 0);
                }
            }
            
            try
            {
                while (loadCounters.get(clazz) > DEFAULT_MAX_LOAD_COUNTER)
                {                
                    Thread.sleep(3000L + (long)Math.floor(5000 * Math.random()));
                }
            }
            catch (InterruptedException e) {}        
        }
    
        public void decLoadCounter(Class clazz)
        {
            synchronized (loadCounters)
            {
                if (!loadCounters.containsKey(clazz))
                {
                    loadCounters.put(clazz, 0);
                }
    
                if (loadCounters.get(clazz) > 0)
                {
                    loadCounters.put(clazz, loadCounters.get(clazz) - 1);
                }
            }
        }
    }

    Наверное, нужно было вот это: http://download.oracle.com/javase/1,5.0/docs/api/java/util/concurrent/Semaphore.html
    Ну и ещё порадовал способ постановки потоков в "очередь".

    konsoletyper, 17 Августа 2011

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

    +147

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    Сори что сюды, но тут быстрее всего получить ответ)))
    Можете заслуженно ставить минусы.
    Как мне получить доступ к типу обьявленному и зависящему от параметров по имени переменной?
    Хочу сделать что то типа:
    const typeof(c->active)::entry * const e = c->active.GetEntry(i);
    вместо
    const structs::local_db<package, 64, type>::entry *const (на практике символов больше)
    
    взять к примеру те же итераторы.
    
    P.S больше не буду, но мне показалось это говнокодом)

    Enelar, 17 Августа 2011

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

    +169

    1. 1
    2. 2
    var elemID = ui.item.attr('id');
    var elemClass = $("#"+elemID).attr('class');

    Self made!

    Nemez, 17 Августа 2011

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

    −92

    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
    def clean_node(node, debug=False):
        """
            Этот пример скопипащен из книги
            "Как не должен выглядеть код"
        """
        if node['sub']:
            sub = []
            num = 1
            for item in node['sub']:
                i = clean_node(item, debug)
                if i:
                    sub.append(i)
                    num += i['num']
            node['sub'] = sub
            node['num'] = num
        else:
            node['num'] = 1
        if node['deleted']:
            if node['sub']:
                return node
        else:
            return node
    
        return None

    Мне достался в наследство большой проект, в котором порой встречается вот такое. Единственное, что радует это подобные комментарии )

    kvex, 17 Августа 2011

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