1. Куча / Говнокод #4803

    +141

    1. 1
    <input type="hidden" id="id1" name="id1" value="someVal" readonly="readonly" style="background-color:Transparent;border:none;" />

    Стилизованный readonly hidden

    zheka, 01 Декабря 2010

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

    +147

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    var n = Math.abs(((date2 - date1) / 86400000) + 1);	
    var frac = n - Math.floor(n);
    
    if (frac > 0.5) {
    	n = Math.ceil(n);
    } else if (frac < 0.5 && frac.toPrecision(2) != 0) {
    	n = Math.floor(n);
    	n--;
    }
    
    n++;

    Мой говнокод.
    Задача: найти количество дней между двумя датами, включая сами эти даты. Время в датах сброшено в 0
    Фишка в том "(date2 - date1) / 86400000) + 1", не работает когда есть перевод часов между двумя датами.
    И вот такое говно я написал, которое по некоторым дням НЕ РАБОТАЕТ.

    переписал вот так:
    var n = Math.abs(date2 - date1);
    n /= 3600000;
    var mod = n % 24;
    if (mod == 23) {
    n++;
    } else if (mod == 1) {
    n--;
    }
    n /= 24;
    n++;

    теперь не важно сколько переводов часов прошло между датами: 0, 1, 2 или 5.

    По поводу говнокода:
    За такой frac на авторе надо зарабатывать фраг!

    Oleg_quadro: автор, убей себя головой о клаву:
    Oleg_quadro: "vb fgrbfvgr bgfvrt rtuijnikjikni56trg5rt6g45t6rgyh hnjunh ujuuuuuuuuuuuuuuuuuuuy"

    Oleg_quadro, 01 Декабря 2010

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

    −196

    1. 1
    2. 2
    3. 3
    4. 4
    ....
        SELECT * BULK COLLECT INTO dbg FROM debug_codes;
        FOR i IN 1..dbg.COUNT LOOP
    ....

    PL/SQL
    Вся таблица запихивается в коллекцию.
    2 миллиона строк — серверу плохо, скрипт работает около 8 часов.
    после исправления (в коллекцию вставляются строки пачками по 10 000 штук) стал работать полчаса.

    Oleg_quadro, 01 Декабря 2010

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

    +163

    1. 1
    2. 2
    3. 3
    function GetPath(path){
     return path;
    }

    Коротко и ясно! Единственный метод в модуле.

    Scorpibear, 01 Декабря 2010

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

    +160

    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
    TINY.accordion=function(){
    	function slider(n){this.n=n; this.a=[]}
    	slider.prototype.init=function(t,e,m,o,k){
    		var a=T$(t), i=s=0, n=a.childNodes, l=n.length; this.s=k||0; this.m=m||0;
    		for(i;i<l;i++){
    			var v=n[i];
    			if(v.nodeType!=3){
    				this.a[s]={}; this.a[s].h=h=T$$(e,v)[0]; this.a[s].c=c=T$$('div',v)[0]; h.onclick=new Function(this.n+'.pr(0,'+s+')');
    				if(o==s){h.className=this.s; c.style.height='auto'; c.d=1}else{c.style.height=0; c.d=-1} s++
    			}
    		}
    		this.l=s
    	};
    	slider.prototype.pr=function(f,d){
    		for(var i=0;i<this.l;i++){
    			var h=this.a[i].h, c=this.a[i].c, k=c.style.height; k=k=='auto'?1:parseInt(k); clearInterval(c.t);
    			if((k!=1&&c.d==-1)&&(f==1||i==d)){
    				c.style.height=''; c.m=c.offsetHeight; c.style.height=k+'px'; c.d=1; h.className=this.s; su(c,1)
    			}else if(k>0&&(f==-1||this.m||i==d)){
    				c.d=-1; h.className=''; su(c,-1)
    			}
    		}
    	};
    	function su(c){c.t=setInterval(function(){sl(c)},20)};
    	function sl(c){
    		var h=c.offsetHeight, d=c.d==1?c.m-h:h; c.style.height=h+(Math.ceil(d/5)*c.d)+'px';
    		c.style.opacity=h/c.m; c.style.filter='alpha(opacity='+h*100/c.m+')';
    		if((c.d==1&&h>=c.m)||(c.d!=1&&h==1)){if(c.d==1){c.style.height='auto'} clearInterval(c.t)}
    	};
    	return{slider:slider}
    }();

    http://installauto.ru/ajax/script.js
    чья-то реализация аккордиона. и почему же оно хреново в ИЕ пашет?

    noRerih, 01 Декабря 2010

    Комментарии (3)
  6. Perl / Говнокод #4798

    −120

    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
    # Find out what mail program to use !! Terrible kludge !!
      $mailprogram = "/usr/bin/mail";
      if (! -x "$mailprogram") {
        if (-x "/bin/mail") {
          $mailprogram = "/bin/mail";
        } else {
          if (-x "/usr/sbin/sendmail") {
            $mailprogram = "/usr/sbin/sendmail";
          } else {
            if (-x "/usr/lib/sendmail") {
              $mailprogram = "/usr/lib/sendmail";
            } else {
              if (-x "/usr/bin/mutt") {
                $mailprogram = "/usr/bin/mutt";
              } else {
                if (-x "/usr/sbin/exim4") {
                  $mailprogram = "/usr/sbin/exim4";
                } else {
                  if (-x "/usr/bin/elm") {
                    $mailprogram = "/usr/bin/elm";
                  } else {
                    print "Cannot find a mail program to use\n";
                  }
                }
              }
            }
          }
        }
      }

    В changelog автор честно признался, что не знал, как реализовать иначе.

    Anderson, 01 Декабря 2010

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

    −145

    1. 1
    2. 2
    $ if [ "0" != "0" ]; then make i8086gui;else echo "GTK GUI is disabled - may be you lack of gtk!";fi;
    GTK GUI is disabled - may be you lack of gtk!

    Странная какая-то проверка наличия GTK в мєйкфайле...

    Anderson, 01 Декабря 2010

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

    +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
    <? 
    // Функция для того, чтобы иЗ***оВаТь текст 
    $str = 'бросайте вы корявить текст'; 
    
    function koryavka ($t){ 
    $c = strlen($t); 
    
    for($i=0;$i<$c;$i++) { 
    $t[$i] = (is_int($i/2)) ? strtoupper($t[$i]) : $t[$i]; 
    $ret[] =  $t[$i];  
    } 
    
    return implode('',$ret); 
    } 
    
    echo koryavka ($str); 
    ?>

    Aligan, 01 Декабря 2010

    Комментарии (52)
  9. SQL / Говнокод #4795

    −858

    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
    create function is_numeric (
    	@a varchar(100)
    ) returns int as begin
    	declare @retval int
    	set @a = replace(@a, '0', '')
    	set @a = replace(@a, '1', '')
    	set @a = replace(@a, '2', '')
    	set @a = replace(@a, '3', '')
    	set @a = replace(@a, '4', '')
    	set @a = replace(@a, '5', '')
    	set @a = replace(@a, '6', '')
    	set @a = replace(@a, '7', '')
    	set @a = replace(@a, '8', '')
    	set @a = replace(@a, '9', '')
    	set @a = replace(@a, '.', '')
    	if len(rtrim(ltrim(@a))) > 0 set @retval = 0
    	else set @retval = 1
    	return @retval
    end

    Вот такая хитрая скалярная функция была найдена в недрах сопровождаемой системы. Согласно ей "...42...42..." -- это число, такие дела.

    Zebr, 01 Декабря 2010

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

    +154

    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
    http://vkontakte.ru/
    <noscript><meta http-equiv="refresh" content="0; URL=/badbrowser.php"></noscript>
    
    
    http://vkontakte.ru/badbrowser.php
    <script type="text/javascript">
    <!--
    
    //window.checkbrowser = true;
    if (window.checkbrowser) {
      try {
        if (new XMLHttpRequest()) {
          location.replace('/');
        }
      } catch(e) {
        try {
          if (new ActiveXObject('Msxml2.XMLHTTP')) {
            location.replace('/');
          }
        } catch(e) {}
        try {
          if (new ActiveXObject('Microsoft.XMLHTTP')) {
            location.replace('/');
          }
        } catch(e) {}
      }
    }
    -->
    </script>

    Вот так суровые вконтактостроители отправляют на йуг пользователей NoScript.

    Vindicar, 30 Ноября 2010

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