1. JavaScript / Говнокод #17673

    +158

    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
    this.addItem = function(item) {
        if (item.id == null & item.Name != null & item.Name != '')  {
            item.id = uid++;
            items.push(item);
            $window.sessionStorage.setItem('items', JSON.stringify(items));
        } else {
            for (i in items) {
                if (items[i].id == item.id) {
                    items[i] = item;
                }
            }
        }
    }

    nya-nya-ma, 20 Февраля 2015

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

    −119

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    РасходныйКассовыйОрдер ГДЕ (НЕ РасходныйКассовыйОрдер.ВидОперации В
    					(ВЫБРАТЬ
    						ВидыОперацийРКО.Ссылка
    					ИЗ
    						Перечисление.ВидыОперацийРКО КАК ВидыОперацийРКО
    					ГДЕ
    						ВидыОперацийРКО.Ссылка = ЗНАЧЕНИЕ(Перечисление.ВидыОперацийРКО.ВыплатаЗаработнойПлатыРаботнику)))

    Обнаружил вот это чудо в ограничении почти всех ролей на ЧТЕНИЕ.
    Древняя УПП 1.2 сильно допиленная.
    Теперь сижу и горюю о том, сколько времени придётся потратить удаляя это из всех ролей...

    Goggy, 20 Февраля 2015

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

    +62

    1. 1
    2. 2
    3. 3
    4. 4
    if( state != !val ) 
    {
       state = !val;
    }

    Переключение. Обе переменные булевские.

    absolut, 20 Февраля 2015

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

    +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
    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
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    68. 68
    69. 69
    70. 70
    71. 71
    72. 72
    73. 73
    74. 74
    75. 75
    76. 76
    void main() {
    	system("color 04");
    
    	setlocale(LC_ALL, "rus");
    
    
    
    	if (start == false)  {
    		logos();
    		loading();
    		start = true;
    		system("cls");
    	}
    
    
    
    	if (get_hero_s == false)  {
    		get_hero();
    		get_hero_s = true;
    	}
    
    
    
    
    	menu();
    	map();
    	if (go_went_gone == 1) {
    		system("cls");
    		cout << "\nВы напали на оборотня в тёмном лесу\n";
    		loading();
    		Sleep(1400);
    		fight("werewolf");
    
    
    		go_went_gone = 0;
    
    		main();
    	}
    	else if (go_went_gone == 3) {
    		system("cls");
    		cout << "\nВы напали на лучника в мрачном поле\n";
    		loading();
    		Sleep(1400);
    		fight("archer");
    
    
    		go_went_gone = 0;
    
    		main();
    	}
    
    
    	if (go_went_gone == 2) {
    		system("cls");
    		cout << "\nВы напали на гоблина в тёмном лесу\n";
    		loading();
    		Sleep(1400);
    		fight("werewolf");
    
    
    		go_went_gone = 0;
    
    		main();
    	}
    	else if (go_went_gone == 4) {
    		system("cls");
    		cout << "\nВы напали на лучника на костяного лучника в подземелье \n";
    		loading();
    		Sleep(1400);
    		fight("archer");
    
    
    		go_went_gone = 0;
    
    		main();
    	}

    Рекурсия мейна, и это курсовая работа!!

    BoMo, 20 Февраля 2015

    Комментарии (14)
  5. 1C / Говнокод #17669

    −119

    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
    Процедура ДействияФормыДействие5(Кнопка)
    	
    	ТекущиеДанные = ЭлементыФормы.СправочникСписок.ТекущиеДанные;
    	Если ТекущиеДанные = Неопределено Тогда 
    		Возврат;
    	КонецЕсли;
    	
    	ТекПометкаУдаления = ТекущиеДанные.Ссылка.ПометкаУдаления;
    	
    	КонтрагентОбъект = ТекущиеДанные.Ссылка.ПолучитьОбъект();
    	КонтрагентОбъект.ПометкаУдаления = Не ТекПометкаУдаления;
    	Попытка
    		КонтрагентОбъект.записать();
    	Исключение 
    		Сообщить("Не удалось " + ?(ТекПометкаУдаления, "снять", "установить") + " пометку удаления.");
    	КонецПопытки;	
    	
    КонецПроцедуры

    На форме списка справочника "Контрагенты" добавлена кнопка со значком "непосредственное удаление". А это её обработчик.
    НАХРЕНА???

    doom2good, 20 Февраля 2015

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

    +126

    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
    // На самом деле это пока только псевдокод. Real code will be on C/C++
    //Lock-free non blocking and anatomic operation only if IP was changed 
    // IN SHARED MEMORY
    non_atomic_in_shmem bad_IP_flag_non_atomic_in_shmem[64][16]; // in real code it will be uint64_t array[16] and bits operations with it
    some_ip_class IPs_non_atomic_in_shmem[64][16]                   //  
    std::atomic<uint64_t> version_holder_atomic_in_shmem[64][16];   // it is debatable "whether to do it the Atomic" but for reinsurance 
    
    // IN WRITER PROCESS
    void worker_reassign_IP_by_num(new_IP, back_end_server_ID, num)
     if  bad_IP_flag_non_atomic_in_shmem[back_end_server_ID][num]   // in real code this check will be not here but will have same sense
        version_holder_atomic_in_shmem[back_end_server_ID][num] ++ //it is increment of atomic var version and version become NOT even
        __sync_synchronize(); //TODO may be we can use something better here ?
        IPs_non_atomic_in_shmem[back_end_server_ID][num] = new_IP   //it  copy assignment
        __sync_synchronize();  //TODO may be we can use something better here ?
        version_holder_atomic_in_shmem[back_end_server_ID][num] ++ //it is increment of atomic var version and version become even
        __sync_synchronize();  //TODO may be we can use something better here ?
        bad_IP_flag_non_atomic_in_shmem[back_end_server_ID][num] = 0
    
    // IN READER PROCESS
    some_ip_class get_valid_ip_by_num(back_end_server_ID,num){
    //TODO  version_holder is atomic for now, may we do it non atomic? I think YES. Are any arguments in opposites?
    // Instead of atomic can we possible use volatile?
        uint64_t version_before = version_holder_atomic_in_shmem[back_end_server_ID][num] //it is atomic copy assignment
        //if (version_befor & 1)    // is not even  it will work too instead of checking flags
        // but checking flags it is less expensive operation than checking version because the version var is atomic 
         if  bad_IP_flag_non_atomic_in_shmem  //
                return 0;
         
        some_ip_class ip = IPs_non_atomic_in_shmem[back_end_server_ID][num]     
        uint64_t version_after = version_holder_atomic_in_shmem[back_end_server_ID][num] // it is atomic copy assignment
    
        if  version_before != version_after  // versions is not sames
                // we may add extra check of version evenest but it will cost us 1 slow atomic operation and excessively
    //OR  (version_after & 1) //or versions is not even ip is not correct
                return 0    
        return ip
    }
    some_ip_class get_valid_ip(back_end_server_ID)
        while(time_not_expaired) {
            for (n=0; n<16; n++){
                   some_ip_class ip = get_valid_ip_by_num(back_end_server_ID, n)
                   if ip 
                           return ip
            }
         //"it will never happened" "if it happened and time expired do something but it is problems on the back end servers site"
        //”it is similar situation with situation when back end server just down ”     
        }
        return 0 // or some server_down_ip ;)
    
    some_ip_class check_or_get_new_ip( curent_ip, back_end_server_ID,  num)
        if NOT bad_IP_flag_non_atomic_in_shmem
                    if current_ip == shmem_array_of_IP_non_atomic[back_end_server_ID][num] // maybe need copy but I think it's not necessary
                return current_ip

    Задача: есть reader(ы) Это процессы 20 - 30 -64, которые обращаются к web-серверу. У web-сервера может быть несколько ip (не больше 16). Переодически (1 раз в ~30 секунд) пара (1-2) IP может отвалиться и вместо них может появится пара 1-2 новых. reader обнаружив bad IP выставляет флаг bad_IP_flag. Writer (только 1 единственный процесс не reader) Переодически (1 раз в ~1 сек) проверяет флаг, увидев bad_IP_flag запускает DNS-lookup который длиться примерно (30mks - 1s). Обновляет массив ip Readers при попытке соединиться проверяют не стал ли IP плохим если стал пробуют другой из массива Но суть не в этом Суть в том как безопасно работать с shared memory? Где что не так в предложенной задумке?

    apgurman, 20 Февраля 2015

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

    +157

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function getMinQueueOrdering()
      {
        $sql="SELECT MAX(ordering)
              FROM priceloaddata_queue";
      .........
      }

    нет слов.

    Vasiliy, 19 Февраля 2015

    Комментарии (21)
  8. PHP / Говнокод #17666

    +168

    1. 1
    define("OUTPUT_DIR_CSV", "kokoko/kukarek/files" . DIRECTORY_SEPARATOR);

    Stallman, 19 Февраля 2015

    Комментарии (103)
  9. PHP / Говнокод #17665

    +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
    public function set_debug($fparam) {
         $this->set_debug_mode($fparam);
    }
    
    protected function set_debug_mode($fparam) {
          $this->set_localization_debug_mode($fparam);
    }
    
    private function set_localization_debug_mode($fparam) {
          $this->set_localization_debug_mode_log_service($fparam);
    }
    
    private function set_localization_debug_mode_log_service($fparam) {
          $conf = //...тут уже что-то делает, наконец-то
    }

    Я понимаю, если бы они просто были алиасами... Но почему protected/private?

    Lowezar, 18 Февраля 2015

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

    +85

    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
    int[] pirates = {
                    R.drawable.final_0001, R.drawable.final_0002, R.drawable.final_0003, R.drawable.final_0004,
                    R.drawable.final_0005, R.drawable.final_0006, R.drawable.final_0007, R.drawable.final_0008,
                    R.drawable.final_0009, R.drawable.final_0010, R.drawable.final_0011, R.drawable.final_0012,
                    R.drawable.final_0013, R.drawable.final_0014, R.drawable.final_0015, R.drawable.final_0016,
                    R.drawable.final_0017, R.drawable.final_0018, R.drawable.final_0019, R.drawable.final_0020,
                    R.drawable.final_0021, R.drawable.final_0022, R.drawable.final_0023, R.drawable.final_0024,
                    R.drawable.final_0025, R.drawable.final_0026, R.drawable.final_0027, R.drawable.final_0028,
                    R.drawable.final_0029, R.drawable.final_0030, R.drawable.final_0031, R.drawable.final_0032,
                    R.drawable.final_0033, R.drawable.final_0034, R.drawable.final_0035, R.drawable.final_0036,
                    R.drawable.final_0037, R.drawable.final_0038, R.drawable.final_0039, R.drawable.final_0040,
                    R.drawable.final_0041, R.drawable.final_0042, R.drawable.final_0043, R.drawable.final_0044,
                    R.drawable.final_0045, R.drawable.final_0046, R.drawable.final_0047, R.drawable.final_0048,
                    R.drawable.final_0049, R.drawable.final_0050, R.drawable.final_0051, R.drawable.final_0052,
                    R.drawable.final_0053, R.drawable.final_0054, R.drawable.final_0065, R.drawable.final_0056,
                    R.drawable.final_0057, R.drawable.final_0058, R.drawable.final_0059, R.drawable.final_0060,
                    R.drawable.final_0061, R.drawable.final_0062, R.drawable.final_0063, R.drawable.final_0064,
                    R.drawable.final_0065, R.drawable.final_0066, R.drawable.final_0067, R.drawable.final_0068,
                    R.drawable.final_0069, R.drawable.final_0070, R.drawable.final_0071, R.drawable.final_0072,
                    R.drawable.final_0073, R.drawable.final_0074, R.drawable.final_0075, R.drawable.final_0076,
                    R.drawable.final_0077, R.drawable.final_0078, R.drawable.final_0079, R.drawable.final_0080,
                    R.drawable.final_0081, R.drawable.final_0082, R.drawable.final_0083, R.drawable.final_0084,
                    R.drawable.final_0085, R.drawable.final_0086, R.drawable.final_0087, R.drawable.final_0088,
                    R.drawable.final_0089, R.drawable.final_0090, R.drawable.final_0091, R.drawable.final_0092,
                    R.drawable.final_0093, R.drawable.final_0094, R.drawable.final_0095, R.drawable.final_0096,
                    R.drawable.final_0097, R.drawable.final_0098, R.drawable.final_0099, R.drawable.final_0100,
                    R.drawable.final_0101, R.drawable.final_0102, R.drawable.final_0103, R.drawable.final_0104,
                    R.drawable.final_0105, R.drawable.final_0106, R.drawable.final_0107, R.drawable.final_0108,
                    R.drawable.final_0109, R.drawable.final_0110, R.drawable.final_0111, R.drawable.final_0112,
                    R.drawable.final_0113, R.drawable.final_0114, R.drawable.final_0115, R.drawable.final_0116,
                    R.drawable.final_0117, R.drawable.final_0118, R.drawable.final_0119, R.drawable.final_0120
            };

    Погромист на Ондроид наговнокодил это...

    argamidon, 18 Февраля 2015

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