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

    В номинации:
    За время:
  2. Куча / Говнокод #13689

    +134

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    private static final String IPADDRESS_PATTERN =  
    "^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + 
    "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + 
    "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + 
    "([01]?\\d\\d?|2[0-4]\\d|25[0-5])$";

    Сначала статья по регуляркам, а потом хороший, годный пример для ip)

    kegdan, 28 Августа 2013

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

    +152

    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 actionAddnumber()
    {
    	$model = $this->loadUser();
    	 
    	if(!$model->profile->mobile1)	  {$model->profile->mobile1=$_POST['number'];
    	}elseif(!$model->profile->mobile2){$model->profile->mobile2=$_POST['number'];
    	}elseif(!$model->profile->mobile3){$model->profile->mobile3=$_POST['number'];
    	}elseif(!$model->profile->mobile4){$model->profile->mobile4=$_POST['number'];
    	}elseif(!$model->profile->mobile5){$model->profile->mobile5=$_POST['number'];
    	}elseif(!$model->profile->mobile6){$model->profile->mobile6=$_POST['number'];
    	}else{ echo "Больше нет свободны номеров"; yii::app()->end(); }
    	echo " Сохранено";
    	$model->profile->save();
    	yii::app()->end();
    }

    Yii

    flashbag, 27 Августа 2013

    Комментарии (4)
  4. Java / Говнокод #13660

    +64

    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
    77. 77
    78. 78
    79. 79
    import java.util.ArrayList;
    import java.util.LinkedList;
    import java.util.Scanner;
    
    public class Chapter4 {
    	/*
    	 * find minimal difference symbols words in line; if words count > 0, print
    	 * first word;
    	 */
    	public LinkedList<String> wordsList = new LinkedList<>();
    	public ArrayList<String> minUniqueSimbolWords = new ArrayList<String>();
    	final int wordsCount = 3; 
    
    	public void run() {
    
    		System.out.println("Iveskite " + wordsCount + " zodzius: ");
    		Scanner scan = new Scanner(System.in);
    		for (int i = 0; i < wordsCount; i++) {
    			wordsList.add(scan.nextLine());
    		}
    
    		scan.close();
    
    		addMinUniqueSimbolCountWordsToList();
    		if (minUniqueSimbolWords.isEmpty()) {
    			System.out.println("not unique words");
    			return;
    		}
    
    		printUniqueSimbolWords();
    
    	}
    
    	private void printUniqueSimbolWords() {
    		System.out
    				.println("");
    		for (String s : minUniqueSimbolWords) {
    			System.out.println(s);
    		}
    	}
    
    	private void addMinUniqueSimbolCountWordsToList() {
    		for (String word : wordsList) {			
    			if (minUniqueSimbolWords.isEmpty()) { 
    				minUniqueSimbolWords.add(word); 
    			} else {
    				int count = getUniqueSimbolCount(word.toCharArray());
    				addMinUniqueSimbolsCountWord(word, count);
    			}
    		}
    	}
    
    	
    	private void addMinUniqueSimbolsCountWord(String word, int count) {
    		int countOfFirstFromList = getUniqueSimbolCount(wordsList.getFirst()
    				.toCharArray());
    		if (count < countOfFirstFromList) {
    			minUniqueSimbolWords.clear();
    			minUniqueSimbolWords.add(word);
    
    		} else if (count == countOfFirstFromList) {
    			minUniqueSimbolWords.add(word); 
    		}
    
    	}
    
    	
    	private int getUniqueSimbolCount(char[] str) {
    		ArrayList<Character> lst = new ArrayList<Character>();
    		for (char c : str) {
    			if (!lst.contains(c)) { 
    				lst.add(c);
    			}
    		}
    
    		return lst.size();
    	}
    
    } // end class

    еще одно задание

    spivti, 24 Августа 2013

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

    +138

    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
    Object.valuesNP = function(obj){
        var result = [];
        for (var i in obj)
            if (obj.hasOwnProperty(i))
                result.push(obj[i]);
        return result;
    };
    
    function findCSS(name){
        var css = document.styleSheets;
        var flag = false;
        var result = null;
        Object.valuesNP(css).each(function(content,index){
            if (!flag && content instanceof Object)
                Object.valuesNP(content.cssRules).each(function(content,index){
                    if (content instanceof Object && content.selectorText == name && !flag ){
                        flag = true;
                        result = content;
                    }
                })
            });
        return result;
    }

    Надо было поменять параметры некоторого класса(стиль). Ну и за пару минут было накидано вот енто.
    Самое смешное, что через неделю это уже не потребовалось.
    Вызывать так:
    var buttonClass = findCSS('.buttonClass') || console.log('CSS .buttonClass not found');

    Dart_Sergius, 16 Августа 2013

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

    +124

    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
    <!-- Вот люблю я HTML. Смотри, есть 2 страницы, которые лепятся скриптом в одну. Нам нужно скрыть часть второй на первой. -->
    <!-- Как поступит нормальный вебмастер? Правильно, напишет скрипт, и доработает движок, чтоб не шёл инклюд в нужных местах. -->
    <!-- Как поступлю я? Я добавлю лишний тег закрытия коммента в эту самую вторую страницу, а в нужном месте открою коммент, чтоб -->
    <!-- он закрыл эту часть. Учись. Ох, и понаписал... --> 
    <!--  
    
    </table> 
    <table width="630" border="1" class="main">
    <tr><td>
    <form name="form">
    <select name="site" size="1" class="menu_opt">
    <option class="blu" value="">Навигация по сайту
    <option class="red" value="index.html">Главная
    
    ....
    
    </select>
    <input type=button value="Go!" onClick="javascript:formHandler(this)">
    </form> 
    </td></tr>
    </table>
    <!-- 1 -->

    Как скрыть менюху внизу? Да очень просто, хоть и не валидно. Такой ужас удалось найти в одном из обслуживаемых порталов.

    lionovsky, 10 Августа 2013

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

    +148

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    function proton_username( $object ) {
      if( $object->uid && $object->name ) {
        $name = ( drupal_strlen( $object->name ) > 20 ) ? drupal_substr( $object->name, 0, 15 ) . '...' : $object->name;
        $output = ( user_access( 'access user profiles' ) ) ? l( $name, 'pathTo/'. $object->uid, array() ) : ( ( $name === 'HideMe' ) ? '<a title="myNameIsNotAname" href="/pathTo" rel="hiddenMan">Fake Face</a>' : check_plain( $name ) );
    
      }

    Защита личной жизни

    Stealth, 09 Августа 2013

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

    +154

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $birthDate = "".($_POST['birthday'])."";
             //explode the date to get month, day and year
                       $birthDate = explode("/", $birthDate);
       
             //get age from date or birthdate
             $age = (date("md", date("U", mktime(0, 0, 0, $birthDate[0], $birthDate[1], $birthDate[2]))) > date("md") ? ((date("Y")-$birthDate[2])-1):(date("Y")-$birthDate[2]));

    узнайСвойВозраст,%userName%

    nonamez, 09 Августа 2013

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

    +144

    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
    77. 77
    78. 78
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    86. 86
    87. 87
    88. 88
    89. 89
    90. 90
    91. 91
    92. 92
    93. 93
    94. 94
    95. 95
    96. 96
    97. 97
    98. 98
    (function() {
    	var appBase = function( appId ) {
     		appId = appId || Math.floor( Math.random() * ( 1000 - 1 ) + 1 );
     		this.stack = {
     			methods: [ ],  extends: { },
     			init: function( cfg ) {
     				this.creator( cfg );
    				this.bootstrap();
     			},
    			bootstrap: function() {
    				this.methods.init = null;
    				var param = new Object();
     				param.app = this.methods, 
    				param.opt = this.setup;
    				param.__proto__ = null;
    				for( var i in this.setup.inits ) {
    					this.methods[ this.setup.inits[i] ].apply( param );
    				};	
    			},
    			creator: function( cfg ) {
    				for( var mtd in cfg ) {
     					var flag = cfg[ mtd ].options[ 1 ] || null,
    						name = cfg[ mtd ].options[ 0 ] + "",
    						func = cfg[ mtd ].func;
    					this.methods[ name ] = func;
    					this.methods[ name ].name = name;
    					if( flag ) {
     					flag = flag.split('|');
    						if( flag[0] ) {
    							switch( flag[0] ) {
    								case 'init': this.setup.inits.push( name ); break;
    								case 'defer': 
    									this.setup.defer.push( name );
    									this.setupTimer( [ flag[ 1 ], name, flag[ 2 ] - 0 ] );
    								break;
    							};
    						};
    					};
    				};
    			},
    			setupTimer: function( opt ) {
     				var tf = this.setup.timer[ opt[1] ],
    					tt = this.methods[ opt[1] ],
    					tm = opt[ 2 ] || 500;
     				switch( opt[0] ) {
    					case 'interval': tf = setInterval( tt, tm ); break; 
    					case 'timeout':  tf = setTimeout( tt, tm ); break;
    				};
     
    			},
    			flushTimer: function( id ) {
    				clearInterval( this.setup.defer[ id ] );
    				console.log( 'Interval '+ id +' Stoped!');
    			},
    			setup: {
    				appId: 'BiO Kernel' + appId, param: [ ], inits: [ ], defer: [ ],timer: [ ], flags: { }
    			}
    		};
    		this.stack.__proto__ = null; this.__proto__ = null;
    	};
    		var application = new appBase();
    		var	app = application.stack;
    		var cfg = [
    			{ 
    				func: function() {
    					console.log( 'RUN [mtd_1] AT [init stage] => force [mtd_3]' );
    					this.app['mtd_3'].apply(this);
    				},
    				options: [ 'mtd_1' , 'init' ]
    			},
    			{ 
    				func: function() {
    					console.log( 'RUN [mtd_2] AT [init stage]' );
    				},
    				options: [ 'mtd_2' , 'init' ]
    			},
    			{ 
    				func: function() {
     
    					console.log( 'RUN [mtd_3] BY [mtd_1] FROM [init stage]' );
    				},
    				options: [ 'mtd_3' ]
    			},
    			{ 
    				func: function() {
    					console.log( 'run defered method #1 in timeout' );
    				},
    				options: [ 'deferedMethod_1', 'defer|timeout|8500' ]
    			},
    			{ 
    				func: function( ) {
    					console.log( 'run defered method #2 in interval' );
    				},
    				options: [ 'deferedMethod_2', 'defer|interval|500' ]
    			},
    		];
    		app.init( cfg, true ); 
    })();

    Съебаться из страны не получилось ): Оно не взламывалось вообще ... лимон так и не дали, а в жопу выебали через кого-то.

    Stealth, 09 Августа 2013

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

    +144

    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
    $( '.video', tl ).each( function() {
    
                        if( this.id !== target ) {
                            
                            // get other objects props
                            var snaper = $(this);
                            var left   = getLeft( snaper );
                            var swidth = snaper.width();
    
                            // calculate snap positions
                            var leftSpan  = left + swidth;
                            var rightSnap = cPos + swidth; 
    
                            // if snap performed
                            if( cPos === leftSpan || rightSnap === left ) { 
                                
                                var mouse = getMouse( event, floater ); 
                                var shift = 5;                           
    
                                // if cursor goes out snaped object
                                if( shift === ( -1 * mouse ) || mouse === shift + swidth ) {   
    
                            
                                // difference in sizes
                                var diff = ( (fwidth - swidth) > 0 ) ? fwidth - swidth : swidth - fwidth;
    
                                    // setup new positions
                                    var fl = getLeft( floater );
                                    var sl = getLeft( snaper );
    
                                    // fix smaller position 
                                    if( fwidth > swidth ) {
                                        fl += diff;  
                                    } else {
                                        sl += diff;
                                    }
    
                                    // apply overlay to prevent blinking "dragable"
                                    var overlay = $('<div id="overlay"></div>');
                                    $('body').append(overlay);
                                    $('#overlay').focus();
       
                                    // reverse animation dock object
                                    snaper.animate({'left': fl}, 1000);
    
                                    // reverse animation floater
                                    floater.animate({'left': sl}, 1000,
                                    function(){
                                        // unset overlay
                                        $('#overlay').remove();
                                        // return focus to floater object
                                        floater.focus();
                                    });
    
    
                                }                                                             
    
                            }                     
                        }
    
                    });

    Обозвали лисповским червяком … Че сделать с плавной геометрической инверсией?

    Stealth, 08 Августа 2013

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

    +12

    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
    void FileCreate(const char *name)
    {
    	ofstream F;
    	F.open(name); // Create file 
    	F.close(); //close the file
    }
    
    void InputProduct(Product &b) //function for entering product
    {
    	char c; int i=0;
    
    	cout<<"Input name of product \n"; 
    	// enter the string until you meet the character \n or EOF or until a limit is the number of symbols
    	for ( i=0; i<l_name && (c = getchar())!= EOF && c!='\n';++i ) 
    		b.name[i] = c ; 
    	b.name[i]='\0'; // at the end of the line write the terminating line \0
    
        // rest of code ...
    }

    Студенты такие студенты ...

    denis90, 03 Августа 2013

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