1. PHP / Говнокод #5574

    +164

    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
    function price($cost)
    {
       if($cost > 0)
       {
          $tmp = explode('.', $cost);
          $cost = $tmp[0];
    
          if($cost >= 1000 && $cost <= 9999)
          {
             $cost = substr($cost, 0, 1)." ".substr($cost, 1);
          }
          elseif($cost >= 10000 && $cost <= 99999)
          {
             $cost = substr($cost, 0, 2)." ".substr($cost, 2);
          }
          elseif($cost >= 100000 && $cost <= 999999)
          {
             $cost = substr($cost, 0, 3)." ".substr($cost, 3);
          }
          $cost .= ' руб.';
       }
       else $cost = '';
    
       return $cost;
    }

    Вывод цены в форматированном виде) Ну да, зачем использовать автоформат по локализации, лучше поговнокодить)

    greevex, 08 Февраля 2011

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

    +146

    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
    В шапке:
    
      <script type="text/javascript">
        thisIsIE7 = false;
      </script>
      <!--[if IE 7]>
      <script type="text/javascript">
        thisIsIE7 = true;
      </script>
      <![endif]-->
      
    В JS-файле:
    
              $("#popup_hint")
                .show()
                .css("top", ev.pageY + 20)
                .css("left", ev.pageX + 20 + (thisIsIE7 ? 483 : 0))

    Что ж, пришёл и мой черёд...

    Проблема: в IE7 и только в нём некоторые абсолютно спозиционированные элементы съезжают влево почти на полэкрана.

    Ещё проблема: люто надоевший заказчик ругается в трубку и требует, чтобы через 10 минут всё работало нормально.

    Решение: опытным путём выясняем, что смещение влево происходит на 483 пикселя вне зависимости от размера окна и разрешения монитора. Лабаем детектор IE7 на кондишенал-комменте, в JS хардкодим магическое смещение. Проблемы решены...

    telnet, 08 Февраля 2011

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

    +160

    1. 1
    2. 2
    3. 3
    4. 4
    void IRQHandler(void)
    {
    ...
    WaitSemaphore(semH);

    Из кода для встроенного устройства реального времени.

    Говногость, 08 Февраля 2011

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

    +164

    1. 1
    i = j ? k : l = m;

    опять же с форума wasm.ru... пол дня объяснял почему с++ компилятор трактует это выражение как i = j ? k : (l = m), а никак по-другому... не пишите такую чушь никогда)

    ReL, 07 Февраля 2011

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

    +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
    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
    <?php
    
    //////////....................................
    
    	static function Request($module="__global",$action='__global',$route=null){
    		if(!$route && !empty(self::$route)) $route=self::$route;
            else $route=self::setRoute(APP_ModuleContext::getContext());
            $action=strtolower($action);
    		$module=strtolower($module);
    
    		$ro=array();
            if(!empty($route['allow'][$module])){
    			$ro=$route['allow'][$module];
                $dis=!empty($route['disallow'][$module])?$route['disallow'][$module]:array();
    			if(!empty($dis) && $dis['__global']===true) return new throw APP_Exceptions_PluginBox("Плагины для модуля '$module' отключены");
    			 
    			 if(empty($ro['__global'])) $ro['__global']=array();
    			 if(empty($ro[$action])) $ro[$action]=array();
    			 $ro=array_merge($ro['__global'],$ro[$action]);
                 if(!empty($ro)){
    				 $ro=array_unique($ro);
                     if(!empty($dis)){
    					 if(empty($dis['__global'])) $dis['__global']=array();
    					 if(empty($dis[$action])) $dis[$action]=array();
    					 $dis=array_merge($dis['__global'],$dis[$action]);
    					 if(!empty($dis)){
                            $dis=array_unique($dis);
    						$ro=array_diff($ro,$dis);
    					 }
    				 }
    				 if(!empty($ro)){
                        $res=array();
    		 	        foreach($ro as $plugin){
                            $res[$plugin]=self::getContents($plugin);
    			        }
    			        return $res;
    				 }else return new throw APP_Exceptions_PluginBox("Все плагины были отключены для '$module - $action'");
    			 }else return new throw APP_Exceptions_PluginBox("Нет плагинов для запроса '$module - $action'");
    		}
    		
    		return false;
    	}
    
    /////////////..........................................
    ?>

    Роутеры роутят

    Zho, 07 Февраля 2011

    Комментарии (28)
  6. ActionScript / Говнокод #5569

    −99

    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
    if (((vo.metricId == 3) && ((columnName == "A/c Balance CCY & Amount") || (columnName == "No. of Trades Impacted") || 
          (columnName == "Value of Trades") || (columnName == "Facility CCY & Amount") || (columnName == "MTM/ Net Position") || 
          (columnName == "Utilisation CCY & Amt"))) || 
          ((vo.metricId == 5) && (columnName == "Amount")) ||
          ((vo.metricId == 5) && (columnName == "Balance in Local")) ||
          ((vo.metricId == 5) && (columnName == "Balance in EUR")) ||
          ((vo.metricId == 5) && (columnName == "Sub Balance EUR")) ||
          ((vo.metricId == 5) && (columnName == "Unsub Balance EUR")) ||
          ((vo.metricId == 5) && (columnName == "PFE EUR")) ||
          ((vo.metricId == 5) && (columnName == "Provision EUR")) ||
          ((vo.metricId == 13) && ((columnName == "EUR Net Cost") || (columnName == "Nominal/ Position"))) ||
          ((vo.metricId == 14) && ((columnName == "CCY Value") || (columnName == "EUR Value"))) ||
          ((vo.metricId == 15) && ((columnName == "Value") || (columnName == "EUR Value"))) ||
          
          ((vo.metricId == 16) && ((columnName == "Value") || (columnName == "EUR Value"))) ||
          ((vo.metricId == 17) && ((columnName == "Value") || (columnName == "EUR Value"))) ||
          ((vo.metricId == 18) && ((columnName == "Value") || (columnName == "EUR Value"))) ||
          ((vo.metricId == 19) && ((columnName == "Value") || (columnName == "EUR Value"))) ||
          ((vo.metricId == 20) && ((columnName == "Value") || (columnName == "EUR Value"))) ||
          ((vo.metricId == 21) && ((columnName == "Value") || (columnName == "EUR Value"))) ||
          ((vo.metricId == 22) && ((columnName == "Value") || (columnName == "EUR Value")))

    Королевский IF!

    dimas_art, 07 Февраля 2011

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

    +146

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    class GridPanel extends JPanel {
    
      protected Point myLocation;
    
      @Override
      public Point location() {
        return this.myLocation;
      }
    
      }

    убивал бы за такое.

    Lure Of Chaos, 07 Февраля 2011

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

    +158

    1. 1
    2. 2
    3. 3
    4. 4
    $arTime = localtime();
    //формируем ядро номера заказа, которое будем подцеплять к разным префиксам
    
    $orderNumberCore = str_pad($arTime[4]+1, 2, "0", STR_PAD_LEFT).str_pad($arTime[3], 2, "0", STR_PAD_LEFT).str_pad($arTime[2], 2, "0", STR_PAD_LEFT).str_pad($arTime[1], 2, "0", STR_PAD_LEFT).str_pad($arTime[0], 2, "0", STR_PAD_LEFT);

    Формируется номер заказав интернет-магазине из даты/времени. Но при этом не учитывается год.

    $orderNumberCore -- это дата в формате dmhis.

    kost, 07 Февраля 2011

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

    +146

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    protected void displayBoard() {
        for (int i = 0; i < this.viewArea.getComponentCount(); i++) {
          Component next = this.viewArea.getComponent(i);
          next.paint(next.getGraphics());
        }
        try {
          Thread.currentThread();
          Thread.sleep(50);
        } catch (Exception e) {
        }
      }

    странный код. Особенно не понял строку 7

    Lure Of Chaos, 07 Февраля 2011

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

    +166

    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
    // 0. original version:
    struct Subscriber {
    	ServiceConfig *services;
    };
    
    struct ServiceConfig {
    };
    
    // reported problem: as per doc, Customer may have multiple service configurations, yet we can configure only one.
    
    // 1. next "fixed" version, as delivered to the customer:
    struct Subscriber {
    };
    
    struct ServiceConfig {
    	Subscriber *subs;
    };
    
    // ticket reopened: wtf. changing services for one customer, affects others!!
    
    // 2. next "fixed" version, as delivered to the customer:
    struct Subscriber {
    	ServiceConfig *services;
    };
    
    struct ServiceConfig {
    };
    
    // ticket reopened: @#$%^& [*BEEP*] @#$%^& [*BEEP*] @#$%^&*
    
    // 3. finally:
    struct Subscriber {
    };
    
    struct ServiceConfig {
    };
    
    struct SubscriberServiceConfig {
    	Subscriber *subs;
    	ServiceConfig *services;
    };

    если бы лично не лицезрел эту переписку (навечно задокументированую в аналах вершн контрол) между нашими разработчиками и консультантами работающими на инсталяции у кастомера, нивжисть бы не поверил что такое даже может иметь место.

    самое страшное в этой истории, что консультанты разработчикам с самого начала сказали что в коде данные организованы неправильно по сравнению с тем как данные хранятся в базе.

    Dummy00001, 07 Февраля 2011

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