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

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

    −97

    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
    class Thread:
        ... other methods ...
        def SerializeXml(self,f):
            sp = sorted(self.postnumbers)
            f.write("<thread><number>%d</number>\n<posts>"%self.GetNumber())
            for i in sorted(self.postnumbers):
                f.write(self.posts[self.postnumbers_dict[i]].SerializeXml()+"\n")
            f.write("</posts></thread>")
        def CreatePost(self):
            return Parser.Post()
        def DeserializeXml(self,value):
            try:
                try:
                    self.number = int(re.findall(r"""<number>(\d+)</number>""",value)[0])
                except :
                    self.number = 0
                posts = re.findall(r"""<post>(.+?)</post>""",value,re.DOTALL)
                for p in posts:
                    po = self.CreatePost()
                    po.DeserializeXml(p)
                    self.posts.append(po)
                    self.postnumbers_dict[po.GetNumber()] = len(self.posts)-1
                    self.postnumbers.add(po.GetNumber())
                return True
            except:
                return False
    class Post:
        ... other methods ...
        def safexml(self,string):
            return string.replace("<","&lt;").replace(">","&gt;")
        def _unescape_xml(self,string):
            return string.replace("&lt;","<").replace("&gt;",">")
        def SerializeXml(self):
            return """<post><postnumber>%d</postnumber>\n<sage>%d</sage>\n<deleted>%d</deleted>\n<subj>%s</subj>\n<name>%s</name>\n<trip>%s</trip>\n<attachments>%s</attachments>\n<comment>%s</comment></post>"""% \
        (self.GetNumber(),self.GetSage(),self.GetDeleted(),self.safexml(self.GetSubject()),self.safexml(self.GetPostername()),self.safexml(self.GetPostertrip()), \
         "\n".join(["<attachment><filename>%s</filename><filelink>%s</filelink></attachment>"%(l,self.safexml(n)) for ((n,l)) in self.attachments]),(self.safexml(self.GetComment())))
        def DeserializeXml(self,string):
            try:
                self.number = int(self._GetVal(string,"postnumber")[0])
            except:
                self.number = None
            ...
            try:
                self.postertrip = self._unescape_xml(self._GetVal(string,"trip")[0])
            except:
                self.postertrip = None
            try:
                self.comment = self._unescape_xml(self._GetVal(string,"comment")[0])
            except:
                self.comment = None
            self.attachments = []
            try:
                string = self._GetVal(string,"attachments")[0]
                string = self._GetVal(string,"attachment")
                for att in string:
                    (l,n) = re.findall(r"""<filename>(.+?)</filename><filelink>(.+)</filelink>""",att,re.DOTALL)[0]
                    self.attachments.append((urllib2.quote(n),n))
            except :
                pass
                    
        def _GetVal(self,string,value):
            return re.findall(r"""<%s>(.*?)</%s>"""%(value,value),string,re.DOTALL)

    Всем xml, посоны!
    https://github.com/hashme33/BoardToJabber/blob/master/src/main/Parser.py#L24

    pythonic, 26 Июля 2011

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

    +164

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    if(isset( $out[1][2]) &amp;&amp;  trim($out[1][2]) !='') $arr['ns'].=', '. $out[1][2];
    if(isset( $out[1][3]) &amp;&amp;  trim($out[1][3]) !='') $arr['ns'].=', '. $out[1][3];
    if(isset( $out[1][4]) &amp;&amp;  trim($out[1][4]) !='') $arr['ns'].=', '. $out[1][4];
    if(isset( $out[1][5]) &amp;&amp;  trim($out[1][5]) !='') $arr['ns'].=', '. $out[1][5];
    if(isset( $out[1][6]) &amp;&amp;  trim($out[1][6]) !='') $arr['ns'].=', '. $out[1][6];
    if(isset( $out[1][7]) &amp;&amp;  trim($out[1][7]) !='') $arr['ns'].=', '. $out[1][7];

    Нашел на фри-ланс.ру

    Jesus, 25 Июля 2011

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

    +973

    1. 1
    2. 2
    3. 3
    Bool IsNumber (string str) {
    return (str.Replace ("0", "").Replace ("1", "").Replace ("2", "").Replace ("3", "").Replace ("4", "").Replace ("5", "").Replace ("6", "").Replace ("7", "").Replace ("8", "").Replace ("9", "").Length == 0);
    }

    http://bash.org.ru/quote/396194

    1_and_0, 22 Июля 2011

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

    +166

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    public static function isMobile()
        {
            $useragent = $_SERVER['HTTP_USER_AGENT'];
            if (preg_match('/android|avantgo|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|symbian|treo|up\.(browser|link)|vodafone|wap|windows (ce|phone)|xda|xiino/i',$useragent) ||
                preg_match('/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|e\-|e\/|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(di|rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|xda(\-|2|g)|yas\-|your|zeto|zte\-/i', substr($useragent,0,4))
            )
                return true;
    
            // default
            return false;
        }

    kovel, 21 Июля 2011

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

    +137

    1. 1
    2. 2
    3. 3
    -define(NO_AGE_GROUP, "0").
    -define(BELOW_18, "1").
    -define(ABOVE_18, "2").

    Это Erlang если что...
    Если не в курсе, то двойные кавычки в Erlang это короткая запись создания списка, естественно, как списки эти константы никогда не используются.

    wvxvw, 18 Июля 2011

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

    +161

    1. 1
    document.getElementById('popup_pic').innerHTML=document.getElementById('popup_pic').innerHTML; // no ie users

    код в моем случае ложит ie

    EnTaroAdun, 11 Июля 2011

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

    −352

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    #!/bin/bash
    function f() {
        sleep "$1"
        echo "$1"
    }
    while [ -n "$1" ]
    do
        f "$1" &
        shift
    done
    wait

    example usage:
    ./sleepsort.bash 5 3 6 3 6 3 1 4 7

    Метод сортировки :)
    Взято с:
    http://dis.4chan.org/read/prog/1295544154

    ramzes_2, 06 Июля 2011

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

    +147

    1. 1
    2. 2
    3. 3
    <div class="form-item" id="edit-user1-date-year-wrapper"> 
     <select name="user1_date[year]" class="form-select" id="edit-user1-date-year" ><option value="1900">1900</option><option value="1901">1901</option><option value="1902">1902</option><option value="1903">1903</option><option value="1904">1904</option><option value="1905">1905</option><option value="1906">1906</option><option value="1907">1907</option><option value="1908">1908</option><option value="1909">1909</option><option value="1910">1910</option><option value="1911">1911</option><option value="1912">1912</option><option value="1913">1913</option><option value="1914">1914</option><option value="1915">1915</option><option value="1916">1916</option><option value="1917">1917</option><option value="1918">1918</option><option value="1919">1919</option><option value="1920">1920</option><option value="1921">1921</option><option value="1922">1922</option><option value="1923">1923</option><option value="1924">1924</option><option value="1925">1925</option><option value="1926">1926</option><option value="1927">1927</option><option value="1928">1928</option><option value="1929">1929</option><option value="1930">1930</option><option value="1931">1931</option><option value="1932">1932</option><option value="1933">1933</option><option value="1934">1934</option><option value="1935">1935</option><option value="1936">1936</option><option value="1937">1937</option><option value="1938">1938</option><option value="1939">1939</option><option value="1940">1940</option><option value="1941">1941</option><option value="1942">1942</option><option value="1943">1943</option><option value="1944">1944</option><option value="1945">1945</option><option value="1946">1946</option><option value="1947">1947</option><option value="1948">1948</option><option value="1949">1949</option><option value="1950">1950</option><option value="1951">1951</option><option value="1952">1952</option><option value="1953">1953</option><option value="1954">1954</option><option value="1955">1955</option><option value="1956">1956</option><option value="1957">1957</option><option value="1958">1958</option><option value="1959">1959</option><option value="1960">1960</option><option value="1961">1961</option><option value="1962">1962</option><option value="1963">1963</option><option value="1964">1964</option><option value="1965">1965</option><option value="1966">1966</option><option value="1967">1967</option><option value="1968">1968</option><option value="1969">1969</option><option value="1970">1970</option><option value="1971">1971</option><option value="1972">1972</option><option value="1973">1973</option><option value="1974">1974</option><option value="1975">1975</option><option value="1976">1976</option><option value="1977">1977</option><option value="1978">1978</option><option value="1979">1979</option><option value="1980">1980</option><option value="1981">1981</option><option value="1982">1982</option><option value="1983">1983</option><option value="1984">1984</option><option value="1985">1985</option><option value="1986">1986</option><option value="1987">1987</option><option value="1988">1988</option><option value="1989">1989</option><option value="1990">1990</option><option value="1991">1991</option><option value="1992">1992</option><option value="1993">1993</option><option value="1994">1994</option><option value="1995">1995</option><option value="1996">1996</option><option value="1997">1997</option><option value="1998">1998</option><option value="1999">1999</option><option value="2000">2000</option><option value="2001">2001</option><option value="2002">2002</option><option value="2003">2003</option><option value="2004">2004</option><option value="2005">2005</option><option value="2006">2006</option><option value="2007">2007</option><option value="2008">2008</option><option value="2009">2009</option><option value="2010">2010</option><option value="2011" selected="selected">2011</option></select> 
    </div>

    Это вообще все так пишут и я чего-то не понимаю в этой жизни?..

    VenCarbon, 05 Июля 2011

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

    +174

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    if ($_GET['action'] === 'POST'){
     $site['action'] = 'post';
    } else {
     if($_GET['action'] == 'GET'){
      if($_GET['action'] === 'GET'){
       $site['action'] = strtolower($_GET['action']);
     }}
    }

    stuffort, 05 Июля 2011

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

    +84

    1. 1
    2. 2
    double speed = ....;
    this.speed = new Double(speed).floatValue();

    Оригинальный способ преобразования double в float.

    lucidfox, 05 Июля 2011

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