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

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

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    class MySoapClient extends SoapClient
    ...
    	public function __doRequest($request, $location, $action, $version, $one_way = null) {
    		$result = parent::__doRequest($request, $location, $action, $version, $one_way);
                    echo $this->__getLastRequest();//вот этот момент интересен
    		return $result;
    	}

    Кто-нибудь может объяснить почему ничего не возвращает строчка, с комментарием которая?
    При создании 'trace'=>TRUE указан.
    Если вызывать __getLastRequest() вне данной функции, то все работает.
    Можно ли в __doRequest это сделать?

    gansm, 11 Июня 2010

    Комментарии (15)
  3. Python / Говнокод #3455

    −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
    def _elementWidth(self,v,s):                                                                                        
        t = type(v)                                                                                                     
        if t in _SeqTypes:                                                                                              
            w = 0                                                                                                       
            for e in v:                                                                                                 
                ew = self._elementWidth(self,v)                                                                         
                if ew is None: return None                                                                              
                    w = max(w,ew)                                                                                           
                    return w                                                                                                    
                elif isinstance(v,Flowable) and v._fixedWidth:                                                                  
                    return v.width                                                                                              
                else:                                                                                                           
                    if t is not StringType: v = v is None and '' or str(v)                                                      
                        v = string.split(v, "\n")                                                                                   
                        return max(map(lambda a, b=s.fontname, c=s.fontsize,d=pdfmetrics.stringWidth: d(a,b,c), v))

    Нашел в коде библиотеки Reportlab. Особенно нравится строчка №13.

    Chaka_bum, 11 Июня 2010

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

    +66

    1. 1
    2. 2
    3. 3
    if (xobj.getStringProp() == "N") {
        //do it
    }

    Ну а что тут скажешь?

    lotik, 10 Июня 2010

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

    +144

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if (nidx == -1) {
      networkIdx = -1;
    } else {
      networkIdx = nidx;
    }

    raorn, 01 Июня 2010

    Комментарии (15)
  6. Java / Говнокод #3360

    +75

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    String q = "SELECT login, accessLevel FROM accounts ";
    		if (m.equals("1"))
    			q = q.concat("WHERE accessLevel<0");
    		else if (m.equals("2"))
    			q = q.concat("WHERE accessLevel>0");
    		else if (m.equals("3"))
    			q = q.concat("WHERE accessLevel=0");
    		q = q.concat(" ORDER BY login ASC");

    из l2j

    pitch, 31 Мая 2010

    Комментарии (15)
  7. SQL / Говнокод #3330

    −854

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    Select  *
    From Table1
    Where ( 
                   (id = 2000)
                        or
                    id = ( Select max(id) from Table1 )
                  )

    а я дивувався, чому цей код в табличці > 300 000 записів виконується так довго ...

    O_O, 26 Мая 2010

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

    +157

    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
    /**********************************************************************
    		*  Connect to DB - over-ridden by specific DB class
    		*/
    
    		function connect()
    		{
    			die(EZSQL_CORE_ERROR);
    		}
    
    		/**********************************************************************
    		*  Select DB - over-ridden by specific DB class
    		*/
    
    		function select()
    		{
    			die(EZSQL_CORE_ERROR);
    		}
    
    		/**********************************************************************
    		*  Basic Query	- over-ridden by specific DB class
    		*/
    
    		function query()
    		{
    			die(EZSQL_CORE_ERROR);
    		}
    
    		/**********************************************************************
    		*  Format a string correctly for safe insert - over-ridden by specific
    		*  DB class
    		*/
    
    		function escape()
    		{
    			die(EZSQL_CORE_ERROR);
    		}
    
    		/**********************************************************************
    		*  Return database specific system date syntax
    		*  i.e. Oracle: SYSDATE Mysql: NOW()
    		*/
    
    		function sysdate()
    		{
    			die(EZSQL_CORE_ERROR);
    		}

    Продвинутый способ создания абстрактных методов. Это кагбе абстрактный класс, от которого наследуются БД-специфичные классы. Затем какая вам БД нужна, под такую руками и создавайте экземпляр нужного класса, "фабрикой" даже и не пахнет.
    Зовётся сие чудо ezSQL. Используется в NetCat. Ладно хоть не сами наложили (налажали?), но всё ж головой не подумали, когда брали.

    telnet, 26 Мая 2010

    Комментарии (15)
  9. bash / Говнокод #3294

    −142

    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
    #!/bin/bash
    #   
    #   program file name: urlmin.sh
    #   program version: 0.4
    
    _help()
    {
    
    prg=$(basename $0)
    cat << EOF
    
    options:
       -h      See this page
       -l      Viewed all names of minifer sites
       -s      
       	  lb.vg
       	  minify.me
       	  is.gd
       -r      Random mode of minifiers
       -u      url link
    examples:
       random mode     - minifiers: ${prg} -r -u 'http://wikimapia.org/#lat=36.7923994&lon=53.1100881&z=18&l=1&m=b'
       only 1 minifier - is.gd minifier: ${prg} -s is.gd -u 'http://wikimapia.org/#lat=36.7923994&lon=53.1100881&z=18&l=1&m=b'
       or lb.vg minifier: ${prg} -s lb.vg -u 'http://wikimapia.org/#lat=36.7923994&lon=53.1100881&z=18&l=1&m=b'
       and other
    
    EOF
    
    exit 0
    }
    
    [ ! -f "$(which curl)" ] && { echo "Установите утилиту curl" ; exit 1 ;}
    
    _user_agent="Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2.4) Gecko/20100503 Firefox/3.6.4"
    _sets_minifiers=( "lb.vg" "is.gd" "minify.me" )
    
    _e()         { echo -e "${*}" ;}
    _get_page()  { curl -s -A "$USER_AGENT" ${1} | tr -d '\n' || { clear ; echo -e "${B_T}${RC}Error${CRS}! curl in function _get_page has exited abnormaly: ${1}" ; exit 1 ;} ;}
    _post_page() { curl -s -A "$USER_AGENT" -d "${2}" "${1}" | tr -d "\n" || { clear ; echo -e "${B_T}${RC}Error!${CRS} curl in function _post_page has exited abnormaly: ${1} -> ${2}" ; exit 1 ;} ;}
    _urlencode() { LANG=C awk 'BEGIN { EOL = "%0A" ; split ("1 2 3 4 5 6 7 8 9 A B C D E F", hextab, " ") ; hextab [0] = 0 ; for ( i=1; i<=255; ++i ) ord [ sprintf ("%c", i) "" ] = i + 0 } ; { encoded = "" ; for ( i=1; i<=length ($0); ++i ) { c = substr ($0, i, 1) ; if ( c ~ /[a-zA-Z0-9.-]/ ) { encoded = encoded c } else if ( c == " " ) { encoded = encoded "+" } else { lo = ord [c] % 16 ; hi = int (ord [c] / 16); encoded = encoded "%" hextab [hi] hextab [lo] } } ; printf ("%s", encoded EOL) } END { }' "$@" | sed 's|%0A||g' ;}
    _random()    { [ -n "${1}" ] && { while :; do zz=$(y=0;for ((x=${1};x>=y;y++)) ; do [ "$y" == "${RANDOM[@]:2:1}" ] && [ -n "$y" ] && { echo $y ; break ;} ; done ) ; [ -n "$zz" ] && { echo "$zz" ; break ;} ; done ;} ;}
    
    # sets
    while getopts "hu:s:rl" option ; do case $option in
    		h) _help                ;;
    		u) url_path="$OPTARG"   ;;
    		s) _set_min="$OPTARG"    ; set_min_num=$(j=0 ; for x in ${_sets_minifiers[*]} ; do [ "${x}" == "${_set_min}" ] && _e "${j}" ; ((j++)) ; done) ;;
    		r) mode_random="yes"     ; set_min_num="$(_random $((${#_sets_minifiers[*]}-1)) )" ;;
    		l) list_mins="yes"      ;;
    		v) set_verbose="-v"     ;;
    esac ; done
    
    case $set_min_num in
    0) 
       _url_enc=$(_e "${url_path}" | _urlencode)
       _url_host="${_sets_minifiers[$set_min_num]}"
       _obtained=$(_post_page "http://${_url_host}/default.asp" "Orig_URL=${_url_enc}&show_ve=1&Categ=Humor" | egrep -o "http://${_url_host}/[a-Z0-9]+'" | sort -u | sed "s|'||g;s|http://||g") ;;
    1)
       _url_enc=$(_e "${url_path}" | _urlencode)
       _url_host="${_sets_minifiers[$set_min_num]}"
       _obtained=$(_post_page "http://${_url_host}/create.php" "URL=${_url_enc}" | egrep -o "http://${_url_host}/[a-Z0-9]+\" target" | sed 's|\" target||g;s|http://||g') ;;
    2) 
       _url_enc=$(_e "${url_path}" | _urlencode)
       _url_host="${_sets_minifiers[$set_min_num]}"
       _obtained=$(_post_page "http://${_url_host}/create.php" "url=${_url_enc}" | egrep -o "http://${_url_host}/\?[a-Z0-9]+" | sed 's|http://||g') ;;
    esac
    
    [ -z "$1"           ] && _help
    [ -n "$set_min_num" ] && _e "Link: ${_obtained}"
    [ -n "$list_mins"   ] && _e "Minifiers:\n\n$(for i in ${_sets_minifiers[*]} ; do _e "  ${i}" ; done)\n"
    
    # eof urlmin.sh

    url minifier

    # typical define:
    -=>> ./urlmin.sh -s is.gd -u 'http://wikimapia.org/#lat=36.7923994&lon=53.1100881&z=18&l=1& m=b'
    Link: is.gd/ckjsg

    # random minifier:
    -=>> ./urlmin.sh -r -u 'http://wikimapia.org/#lat=36.7923994&lon=53.1100881&z=18&l=1& m=b'
    Link: minify.me/?qkvbp2

    pp--, 22 Мая 2010

    Комментарии (15)
  10. PHP / Говнокод #3281

    +165

    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
    <?php 
    
            define('URL', 'http://shop.megafonnw.ru/spb/?pageid=5&subpageid=5&rnd=18'); 
    
            $fp = fopen('URL', 'r'); 
    
            $fpt = fopen('script.txt', 'r+'); 
    
            $fpn = fopen('new.txt', 'r+'); 
    
            $cont = file_get_contents(URL); 
    
            $man = substr($cont, 14900, 7636); 
    
            $script = file_get_contents('script.txt'); 
    
            $new = file_get_contents('new.txt'); 
    
            if($script == "") { 
    
                fwrite($fpt, $man); 
    
                print "script zapisan!"; 
    
            }else { 
    
                if($script == $new) { 
    
                    $ret = fwrite($fpn, $man); 
    
                    print $ret."<br/>"; 
    
                    $sost = "No changed!"; 
    
                    ftruncate($fpn, 0); 
    
                }else { 
    
                    $ret = fwrite($fpn, $man); 
    
                    print $ret."<br/>"; 
    
                    $sost = "Text has been changed!"; 
    
                    ftruncate($fpt, 0); 
    
                    $ret2 = fwrite($fpt, $new); 
    
                    print $ret2."<br/>"; 
    
                    print strlen($new); 
    
                    ftruncate($fpn, 0); 
    
                } 
    
                print "script ne zapisan"; 
    
            } 
    
                print "\n\t<br/>".$sost; 
    
            fclose($fpn); 
    
            fclose($fpt); 
    
            fclose($fp); 
    
            ?>

    особо порадовала строка substr($cont, 14900, 7636);

    GoodTalkBot, 20 Мая 2010

    Комментарии (15)
  11. PHP / Говнокод #3272

    +162

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    static public function checkFingerprint($fingerprint = null)
    {
        $user = ServiceFactory::getServiceUsers()->getByID((int)$_COOKIE['__MW__accountID']);
        $fingerprint = (isset($fingerprint)) ? $fingerprint : Users::getFingerprint();
        $flag = (bool)($fingerprint == $user->generateFingerprint());
        if ( $flag )
          return $user->userID;
        else
          return 0;
    }

    не только индусские разработчики бывают весёлыми - это творение взрослого афроамериканского собрата. Перестраховался везде где только мог. Особенно доставляет приведение к bool результата сравнения :)

    newmindcore, 19 Мая 2010

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