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

    Всего: 54

  2. PHP / Говнокод #25529

    0

    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
    // table for cart must have unique index for both columns for correct effect of this function
        function save() {
            if ($this->errno_ || !$this->db_link_)
                return;
                
            // optimized loop
            $n = count($this->products_) - 1;
            $s_query = "REPLACE INTO `". Config::DB_CART_TABLE_NAME ."` VALUES ";
            for($i = 0; $i < $n; ++$i) {
                $s_query .= "('". $this->phpsessid_ ."',". $this->products_[$i]->getId() .",". $this->counts_[$i] .",'". $this->sizes_[$i] ."')"; 
            }
            if ($n + 1) 
                $s_query .= "('". $this->phpsessid_ ."',". $this->products_[$n]->getId() .",". $this->counts_[$n] .",'". $this->sizes_[$n] ."')";
            
            print($s_query);
            $res = mysqli_query($this->db_link_, $s_query);
            if (!$res)
                $this->errno_ = IModel::E_DB_QUERY;
        }
    
    // Запрос сформирован некорректно, нету запятых между кортежами значений:/
    // REPLACE INTO `cart` VALUES ('cbn1c7ljjd3gglb2lmpa96grnq3prq2iefb2elvcb4fhr9r0qls1',700,4,'')('cbn1c7ljjd3gglb2lmpa96grnq3prq2iefb2elvcb4fhr9r0qls1',701,2,'')

    Опять мой говнокод.
    И это как-то србатывало О_о

    OlegUP, 10 Апреля 2019

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

    +1

    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
    function getCartMiniViewDisplayString($cart_entries) {
        $count = $cart_entries->getProductCount();
        $suffix = "";
        $remainder = $count % 10;
        switch($remainder) {
            case 1:
                $suffix = " товар";
                break;
            case 2:
            case 3:
            case 4:
                $suffix = " товара";
                break;
            case 5:
            case 6:
            case 7:
            case 8:
            case 9:
            case 0:
                $suffix = " товаров";
                break;
        }
        return $count . $suffix;
    }

    Мой, переписывать с if в лень.

    OlegUP, 06 Апреля 2019

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Гуглил, ничего не нашел.
    Есть ли такая программа (кроме yacc), которой можно подать на вход структуру или класс, а она сгенерит (опционально):
    - парсер конфигов в нужном формате.
    - геттеры\сеттеры приватных полей.
    - методы взаимодействия с БД (запрос\сохранение\удаление\изменение таблиц|записей) а-ля Django Models.
    - ну и прочие удобные плюшки чтобы меньше вбивать код в редактор.
    
    гуглил как "Генераторы исходного кода" ничего толкового не нашел.

    OlegUP, 03 Апреля 2019

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

    +1

    1. 1
    https://en.cppreference.com/w/cpp/language/lambda

    > Explanation
    > > <tparams>
    > Like in a template declaration, the template parameter list may be followed by an optional requires-clause, which specifies the constraints on the template arguments.
    > optional requires-clause
    небязательные обязательные пункты.

    Переводил почти час.

    OlegUP, 02 Апреля 2019

    Комментарии (26)
  6. JavaScript / Говнокод #25494

    −2

    1. 1
    Веб Программирование - это такая хуйня.

    OlegUP, 01 Апреля 2019

    Комментарии (31)
  7. Куча / Говнокод #24880

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    Давайте обсудим документацию для программ на GNU/Linux, и документацию MSDN.
    
    Я считаю, что по архитектуре и по документации GNU/Linux намного лучше.
    Потому что в man обычно декларативный стиль, и описывается поведение.
    Если же читать о windows программах -- то я обычно натыкаюсь на тупо гайды, где не описано конкнетно для чего такие действия нужно делать, 
    и как это будет обработано внутренней логикой программы.
    
    Linux -- ОС для разработчиков и инженеров ПО. Windows -- сомневаюсь что нацелена на это.

    OlegUP, 08 Октября 2018

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

    −9

    1. 1
    2. 2
    3. 3
    Как называется свод правил, к примеру таких, как заключение необязательных параметров программы\функции в квадратные скобки.
    Есть ли документ или стандарт на их применение?
    Такое часто встречается и в python help, и в man pages, например.

    OlegUP, 17 Сентября 2018

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

    +2

    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
    #include <malloc.h>
    #include <string.h>
    
    void print( void **p, int n ) {
    	int i = 0;
    	for(; i < n; ++i ) {
    		printf( "%x ", *( p + i ) );
    	}
    	printf( "\n" );
    }
    
    void get( void** pp, void** p ) {
    	*p = *pp;
    }
    
    void set( void** pp, void **p ) {
    	*pp = *p;
    }
    
    int main() {
    	printf( "sizeof: void* = %d, void** = %d\n", sizeof( void* ), sizeof( void** ) );
    
    	void ** pv = malloc( sizeof( void* ) * 8 ), **pp2;
    	memset( pv, 1, 8 * sizeof( void* ) );
    	printf( "pv = %x\n", pv );
    	print( pv, 8 );
    	
    	pp2 = pv + 2 * sizeof( void** );
    	void *p = (void*)0x01020304c, *p2  = p;
    	*pp2 = p;
    
    	printf( "pv = %x, pp2 = %x, p=%x, p2 = %x\n", pv, pp2, p, p2 );
    
    	get( pv + 1, &p );
    	printf( "result get( pv + 1, &p ) -> *( pv + 1 ) = %x, p = %x\n", *( pv + 1 ), p );
    	
    	set( pv + 2, &p2 );
    	printf( "result set( pv + 2 *, p2 ) ->  *( pv + 2 ) = %x, p2 = %x\n",  *( pv + 2 ), p2 );
    	print( pv, 8 ); 
    
    	free( pv );
    	return 0;
    }

    Просто оставлю это здесь, на будущее.
    О том, как работать с void**.

    OlegUP, 07 Сентября 2018

    Комментарии (83)
  10. Куча / Говнокод #24723

    −2

    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
    Установил вчера вечером OpenSuse Leap 15.0 в VirtualBox.
    В инет сейчас выход только через USB модем от МТС (он же Huawei).
    Сутки потратил на чтение и эксперименты по пробросу модема в виртуалку.
    Дали архив с программой МТС Коннект под Linux.
    Устанавливал (с ручной доставкой зависимостей на чистую систему) драйвер из этого пакета,
    пробовал расшарить из винды адаптер USB на другие интерфейсы. 
    Ничего не помогало.
    
    И тут, я подключил модем к виртуалке и случайно ткнул в апплет "Network Manager", 
    который предложил установить мне соединение через модем.
    Пару кликов, и всё заработало. Он даже знал, какую точку доступа надо юзать. 
    Не предложив даже вбить телефонный номер (модем всё-же).
    
    То бишь, мастдай глубоко sosnool?

    OlegUP, 05 Сентября 2018

    Комментарии (32)
  11. Куча / Говнокод #24707

    −4

    1. 1
    2. 2
    3. 3
    Как называется физическая сеть, разбитая на подсети?
    
    (man dhcpd.conf)

    OlegUP, 01 Сентября 2018

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