1. Лучший говнокод

    В номинации:
    За время:
  2. ActionScript / Говнокод #8806

    −118

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    //reassign the dataprovider in order to trigger chart update
    var tempArrayColl:ArrayCollection = new ArrayCollection();
    tempArrayColl.addAll(costChartDataProvider);
    costChartDataProvider.removeAll();
    costChartDataProvider.addAll(tempArrayColl);

    Можно было обойтись

    costChartDataProvider.refresh()
    . Но проблема глубже, флексовые биндинги которые и приводят к появлению такого кода.

    wvxvw, 13 Декабря 2011

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

    −114

    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
    DECLARE 
      CURSOR get_col1 IS
        SELECT DISTINCT 
    	a.constraint_name, 
      a.constraint_type,
      a.table_name,
      a.r_constraint_name,
      b.column_name
        FROM all_constraints a, all_cons_columns b
        WHERE a.table_name = b.table_name
      AND a.constraint_type in ('P', 'R')
      AND a.constraint_name = b.constraint_name
      --AND rownum < 20
        ORDER by 1;
      
      CURSOR get_col2 IS
        SELECT table_name, column_name 
        FROM all_cons_columns
        WHERE constraint_type = 'R';
        
    BEGIN
      dbms_output.ENABLE;
      dbms_output.put_line(rpad('Имя ограничения', 30)
                ||rpad('Тип', 5)
                ||rpad('Имя столбца', 20)
                ||rpad('Имя таблицы', 20)
                ||rpad('Имя таблицы', 20)
                ||rpad('Имя столбца', 20));
      dbms_output.put_line(rpad('-', 115, '-'));
      
      FOR main_col IN get_col1 LOOP
        dbms_output.put_line(rpad(to_char(main_col.constraint_name), 30)
          ||rpad(to_char(main_col.constraint_type), 5)
          ||rpad(to_char(main_col.column_name), 20)
          ||rpad(to_char(main_col.table_name), 20));
        
        /*IF (main_col.constraint_type = 'R') THEN
          dbms_output.put_line(lpad(rpad('Comment', 11), 37)||': '||main_col.comments);
        END IF;*/
        
        FOR sec_col IN get_col2 LOOP
          IF (main_col.constraint_type = 'R') THEN
            dbms_output.put_line(rpad('Index', 10)
            ||rpad('Index', 10)': '||ind_col.index_name);
          END IF;
        END LOOP;
        dbms_output.new_line();  
      END LOOP;
    END;
    /

    kikis, 09 Декабря 2011

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

    +159

    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
    notify: function(evt) {
    	var state = this.prevFirst === null ? 'init' : (this.prevFirst < this.first ? 'next' : 'prev');
    
    	// Load items
    	this.callback('itemLoadCallback', evt, state);
    
    	if (this.prevFirst !== this.first) {
    		this.callback('itemFirstInCallback', evt, state, this.first);
    		this.callback('itemFirstOutCallback', evt, state, this.prevFirst);
    	}
    
    	if (this.prevLast !== this.last) {
    		this.callback('itemLastInCallback', evt, state, this.last);
    		this.callback('itemLastOutCallback', evt, state, this.prevLast);
    	}
    
    	this.callback('itemVisibleInCallback', evt, state, this.first, this.last, this.prevFirst, this.prevLast);
    	this.callback('itemVisibleOutCallback', evt, state, this.prevFirst, this.prevLast, this.first, this.last);
    },

    Популярный jQuery плагин - "jCarousel"
    http://sorgalla.com/projects/jcarousel/

    2 часа пытался реализовать инициализацию элементов "конвеера" до появления их на экране.
    Но не тут-то было. Все 7 событий, регулирующих смену позиции - вызываются в один момент времени (при занятии элементом итогового положения).
    • itemLoadCallback
    • itemFirstInCallback
    • itemFirstOutCallback
    • itemLastInCallback
    • itemLastOutCallback
    • itemVisibleInCallback
    • itemVisibleOutCallback

    *this.callback сводится до fn.call()

    Centry, 06 Декабря 2011

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

    +145

    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
    <?php
    $tmp = mcc_get_contacts();
    if (!empty($tmp)) {
      $i = 0;
      foreach ($tmp as $k => $v) {
        if (empty($v['coords'])) {
          echo '<div class="s_adr" style="width: 275px;">' . "\r\n";
          echo 'г. <span>' . $v['city'] . '</span><br /><br />' . "\r\n";
          if (!empty($v['telfax'])) foreach ($v['telfax'] as $v_t) {
            echo 'Тел/факс: <span>' . $v_t . '</span><br />' . "\r\n";
          }
          if (!empty($v['tel'])) foreach ($v['tel'] as $v_t) {
            echo 'Телефон: <span>' . $v_t . '</span><br />' . "\r\n";
          }
          echo 'e-mail: <a href="mailto:' . $v['email'] . '">' . $v['email'] . '</a><br />' . "\r\n";
          echo '</div>' . "\r\n";
        } else {
          echo '<div class="s_cont">' . "\r\n";
          if ($i === 0) {
            echo '<div class="print-icon"><a href="#print" onclick="window.print(); return false;">Печать</a></div>' . "\r\n";
          }
          echo '<div class="map" id="map' . $k . '">' . $v['coords'] . '</div>' . "\r\n";
          echo '<div class="s_adr" >' . "\r\n";
          echo 'г. <span>' . $v['city'] . '</span><br /><br />' . "\r\n";
          echo '<p>';
          if (!empty($v['telfax'])) foreach ($v['telfax'] as $v_t) {
            echo 'Тел/факс: <span>' . $v_t . '</span><br />' . "\r\n";
          }
          if (!empty($v['tel'])) foreach ($v['tel'] as $v_t) {
            echo 'Телефон: <span>' . $v_t . '</span><br />' . "\r\n";
          }
          echo 'e-mail: <a href="mailto:' . $v['email'] . '">' . $v['email'] . '</a></p>' . "\r\n";
          echo '<p>';
          if (!empty($v['metro'])) {
            echo 'м. &quot;' . implode('&quot; / &quot;', $v['metro']) . '&quot;,<br />' . "\r\n";
          }
          echo $v['address'] . '</p>' . "\r\n";
          echo '</div>' . "\r\n";
          echo '</div>' . "\r\n";
          echo '<div class="hr"></div>' . "\r\n";
        }
        $i++;
      }
    }
    ?>
    
    <div class="hr"></div>
    
    <script src="<?php bloginfo('stylesheet_directory'); ?>/jquery-1.4.2.min.js" type="text/javascript"></script>
    <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;key=ABQIAAAAY78XWK5-Zy3qhkiV3w_m0hTPoZqTU4uhKIMSNHImBFQOd4WjahSr_Q8JwRSdhkeCWJkgoFFnVWj2Aw" type="text/javascript"></script>
    <script type="text/javascript"><!--
    $(document).ready(function(){
      var show_map = function(o, p3, p2, p1, p0, p4) {
        if (o.length) {
          o.empty().show();
    
          var s = $('<img class="print" />').attr('alt', '');
          s.attr('src', 'http://maps.google.com/staticmap?center=' + p0 + ',' + p1 + '&zoom=' + p4 + '&size=580x312&maptype=roadmap&markers=' + p2 + ',' + p3 + '&hl=ru&key=ABQIAAAAY78XWK5-Zy3qhkiV3w_m0hTPoZqTU4uhKIMSNHImBFQOd4WjahSr_Q8JwRSdhkeCWJkgoFFnVWj2Aw');
          o.next().after(s);
    
          var map = new GMap2(o.get(0));
          map.addControl(new GSmallMapControl());
          map.setCenter(new GLatLng(p0, p1), p4);
          var marker = new GMarker(new GLatLng(p2, p3));
          map.addOverlay(marker);
        }
      };
      if (GBrowserIsCompatible()) {
        $('div.map').each(function () {
          var p = $(this).text().split(',');
          show_map($(this), parseFloat(p[1]), parseFloat(p[0]), parseFloat(p[3]), parseFloat(p[2]), parseInt(p[4]));
        });
      }
    });
    //--></script>

    varg242, 01 Декабря 2011

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

    +148

    1. 1
    eval(' ~ function ( __ , ___ ) {  _  =  __ ( ___ ( "__",  "return __ ") ({}) ) } (eval, Function) ,  _[("_")] = _ ');

    не могу понять как работает =(

    __proto__, 28 Ноября 2011

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

    +136

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    <ui:param name="success_style" value="color:green;"/>
    <ui:param name="error_style" value="color:red;"/>
    
    <!-- some code -->
    
    <h:outputText rendered="#{model.successSubmitted}"
        value="#{membershipReportsLabels.serviceSucceed}"
        style="#{success_style}"/>
    
    <h:outputText rendered="#{model.unSuccessSubmitted}"
        value="#{membershipReportsLabels.serviceUnSucceed}"
        style="#{error_style}"/>

    Вроде jsf тут ещё не было. Яркое подтверждение того, что CSS придумали трусы.

    roman-kashitsyn, 25 Ноября 2011

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

    +147

    1. 1
    if(($c>0 or $pusto) <...>) ...

    Нашел тут в недрах компьютера своего какое-то говноподелие, открыл index.php, ужаснулся.
    Но тут мой взгляд остановился на переменной-флаге (наверное) с отличным названием.

    7ion, 24 Ноября 2011

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

    +71

    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
    public class AuthorizedUserObservervable implements Runnable {
    
        private long sleepTime = 1000;
        private HashMap<AuthorizedUserObserver, HashMap<AuthorizedUser, Integer>> observers = new HashMap<AuthorizedUserObserver, HashMap<AuthorizedUser, Integer>>();
        
        
        private void setSleepTime(long sleepTime) {
            this.sleepTime = sleepTime;
        }
        
        
        public void add(AuthorizedUserObserver auo) {
            HashMap<AuthorizedUser, Integer> userCache = new HashMap<AuthorizedUser, Integer>();
            for (AuthorizedUser user : auo.getUsers()) {
                userCache.put(user, null);
            }
            observers.put(auo, userCache);
        }
    
        public void beginObservation() {
            new Thread(this).start();
        }
    
        @Override
        public void run() {
            while (true) {
                try {
                    for (Map.Entry<AuthorizedUserObserver, HashMap<AuthorizedUser, Integer>> observer : observers.entrySet()) {
                        for (Map.Entry<AuthorizedUser, Integer> user : observer.getValue().entrySet()) {
                            int newPostsCount = user.getKey().getNewPostsCount();
                            if (user.getValue() == null || newPostsCount != user.getValue()) {
                                HashMap<AuthorizedUser, Integer> userCache = new HashMap<AuthorizedUser, Integer>();
                                userCache.put(user.getKey(), newPostsCount);
                                observers.put(observer.getKey(), userCache);
                                observer.getKey().notify(user.getKey(), newPostsCount);
                            }
                        }
                    }
    
    
                    Thread.sleep(sleepTime);
                } catch (InterruptedException ex) {
                    Logger.getLogger(UserObservervable.class.getName()).log(Level.SEVERE, null, ex);
                } catch (AuthenticationException e) {
                    Thread.currentThread().stop(e);
                }
            }
        }
    }

    Чего стоит гибкость.

    manyrus, 13 Ноября 2011

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

    −112

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    function READ_MAIL() {
    	if (mc_MESS._currentframe==1) {
    		if (mails_body.substr((mails_num - 1) * 9, 1) == "1") {// sys mail
    			GET_SYS_MAIL(mails_body.substr((mails_num - 1) * 9 + 1, 8))
    		}else if (mails_body.substr((mails_num - 1) * 9, 1) == "2") {// user mail
    			GET_USER_MAIL(mails_body.substr((mails_num - 1) * 9 + 1, 8))
    		}else if (mails_body.substr((mails_num - 1) * 9, 1) == "5") {//present
    			GET_PRESENT_MAIL(mails_body.substr((mails_num - 1) * 9 + 1, 8))
    		}
    	}
    }

    Читаем данные...

    kyzi007, 11 Ноября 2011

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

    +123

    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
    public static string ConvertToBinary( ushort value )
    {
    	StringBuilder builder = new StringBuilder( 19 );
    
    	int mask = (1 << 15);
    
    	for ( int j = 0; j < 4; j++ )
    	{
    		for ( int i = 0; i < 4; i++ )
    		{
    			builder.Append( ((value & mask) != 0) ? ("1") : ("0") );
    
    			mask = mask >> 1;
    		}
    
    		if ( j < 3 )
    		{
    			builder.Append( " " );
    		}
    	}
    
    	return builder.ToString();
    }

    ivan-petrov, 08 Ноября 2011

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