1. bash / Говнокод #8261

    −133

    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
    #!/bin/bash
    
    ps -eo pid,ppid,comm > data
    
    #treeNet[0]=1
    
    depth=0
    
    init=0
    tree()
    {
    
    #echo $1
    let depth=depth+1
    treeNet[$depth]=1
    
    for ((i=1;i<depth-1;i++))
    do
    # echo ${treeNet[$depth]}
    if [[ ${treeNet[$i]} -eq 0 ]]
    then
    echo -n " "
    fi
    if [[ ${treeNet[$i]} -eq 1 ]]
    then
    echo -n "¦ "
    fi
    
    done
    
    if [[ $init -ne 0 ]]
    then
    echo -n '¦====='
    else
    init=1
    fi
    #let depth=depth+1
    # treeNet[depth]=1
    #prints process name
    echo $(cat data | awk '{ if ($1 == '$1') print $3}' )
    
    
    #printing branches
    local count=0 #amount of child branches
    for i in $(cat data | awk ' {if ($2 == '$1' ) print $1 } ')
    do
    let count=count+1
    #echo $i
    done
    
    #recursive call tree()
    local n=0;
    for child in $(cat data | awk ' {if ($2 == '$1' ) print $1 } ')
    do
    
    let n=n+1
    # echo -n " # child no $n of $count depth $depth debug ${treeNet[1]} ${treeNet[2]} ${treeNet[3]} ${treeNet[4]}"; 
    if [[ $n -eq $count ]]
    then
    #echo -n " last " 
    treeNet[$depth]=0
    fi
    # echo
    # let n=n+1
    tree $child
    done
    treeNet[$depth]=0
    
    let depth=depth-1
    return 0
    }
    
    
    tree 1

    kurganec, 21 Октября 2011

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

    +94

    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
    /**
     * Interface for string cleaners. Defines method that takes a string to perform cleaning and returns
     * cleaned string.
     * 
     * @author Король Абстракций.
     * @version 1.0 29.04.2011
     *
     */
    public interface StringCleaner {
    	//---------------------------------------------------------------------------------------------
    	/**
    	 * Cleans given string. Returns cleaned string.
    	 * @param string String to clean
    	 * @return Cleaned string
    	 * @throws NullPointerException <code>If string == null</code>
    	 * @since 1.0
    	 */
    	public String clean(String string);
    	//---------------------------------------------------------------------------------------------
    }
    
    // Далее реализации.
    
    public abstract class SymbolStringCleaner implements StringCleaner { ... }
    public final class AllSymbolStringCleaner extends SymbolStringCleaner { ... }
    public final class RepeatedSymbolStringCleaner extends SymbolStringCleaner { ... }
    public class TrimStringCleaner extends SymbolStringCleaner { ... }
    public final class CombinedStringCleaner implements StringCleaner { ... }
    
    // Пример использования.
    
    public class StringCleanerFactory {
    	private static final char END_OF_LINE_SYMBOL = '\n';
    	
    	public static synchronized StringCleaner createCommonStringCleaner() {
    		char[] symbolsToExclude = new char[] {' ', END_OF_LINE_SYMBOL};
    		StringCleaner repeatedSymbolsCleaner = new RepeatedSymbolStringCleaner(symbolsToExclude);
    		StringCleaner trimCleaner = new TrimStringCleaner(symbolsToExclude, true, true);
    		
    		CombinedStringCleaner resultCleaner = new CombinedStringCleaner();
    		resultCleaner.add(repeatedSymbolsCleaner);
    		resultCleaner.add(trimCleaner);
    		return resultCleaner;
    	}
    }
    
    // В реале выходит что-то вроде
    
    return str.trim().replace(" \n", '');

    Очистка строк огнем инквизиции еше никогда не была настолько абстрактной.


    P.S.

    Я удалял этот StringCleaner API 3 раза, и каждый раз наши адепты стринг клинеров под любым
    предлогом поднимали это г***о из анналов ада (svn history). Последний раз я сдался и этот
    ёжик теперь живет с нами.

    enikey, 21 Октября 2011

    Комментарии (61)
  3. C++ / Говнокод #8259

    +1003

    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
    #include <iostream>
    #include <math.h>
    using namespace std;
    long long h[104680];
    int main(){
        int wr,a2,a3,a5,a7,a11,a13,a17,a19,a23,a29,a31,a37,i,t;
        long long p,u,f1,c1,e,k,n,g,c,f,b2,b3,b5,b7,b11,b13,b17,b19,b23,b29,b31,b37,j;
    
        for (i=1;i<=104000;i++)h[i]=1000000000000000011;
        for (a2=0;a2<=8;a2++){
            b2=powf(2,a2);
            for (a3=0;a3<=4;a3++){
                if (a2<a3)break;
                b3=b2*powf(3,a3);
                for (a5=0;a5<=3;a5++){
                    if (a2<a5)break;
                    b5=b3*powf(5,a5);
                    for (a7=0;a7<=2;a7++){
                        if (a2<a7)break;
                        b7=b5*powf(7,a7);
                        for (a11=0;a11<=1;a11++){
                            if (a2<a11)break;
                            b11=b7*powf(11,a11);
                            for (a13=0;a13<=1;a13++){
                                if (a2<a13)break;
                                b13=b11*powf(13,a13);
                                for (a17=0;a17<=1;a17++){
                                    if (a2<a17)break;
                                    b17=b13*powf(17,a17);
                                    for (a19=0;a19<=1;a19++){
                                        if (a2<a19)break;
                                        b19=b17*powf(19,a19);
                                        for (a23=0;a23<=1;a23++){
                                            if (a2<a23)break;
                                            b23=b19*powf(23,a23);
                                            for (a29=0;a29<=1;a29++){
                                                if (a2<a29)break;
                                                b29=b23*powf(29,a29);
                                                for (a31=0;a31<=1;a31++){
                                                    if (a2<a31)break;
                                                    b31=b29*powf(31,a31);
                                                    for (a37=0;a37<=1;a37++){
                                                        k=b31*powf(37,a37);
    
                                                        g=(a2+1)*(a3+1)*(a5+1)*(a7+1)*(a11+1)*(a13+1);
                                                        g=g*(a17+1)*(a19+1)*(a23+1)*(a29+1)*(a31+1)*(a37+1);
                                                        if (g<=103680){
                                                            if ((0<k)&&(k<h[g])){
                                                                h[g]=k;
                                                            }
                                                        }
                                                    }
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        cin >> t;
        for (i=1;i<=t;i++){
            cin >> n;
            f1=0;c1=0;
            for (j=1;j<=103680;j++){
                if (h[j]<=n){
                    f1=h[j];
                    c1=j;
                }
            }
            cout << f1 << " " << c1 << endl;
        }
        cin >> i;
        return 0;
    }

    отсюда: http://acm.timus.ru/forum/thread.aspx?id=26703&upd=634473973997426 601
    типа решение одной олимпиадной задачки на теорию чисел
    типа неверное (что неудивительно)
    по ссылке можно увидеть другое не менее монструозное решение, которое проходит чуть больше тестов...

    rip, 21 Октября 2011

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

    +146

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    Вот (бывает) (посмотришь на то, какой бред пишут люди с серьезным лицом)
    И понимаешь какой бардак у тебя в голове.
    Если ты это не осознавал, то можешь забыть какой сегодня день.
    А это неделя лиспа на говнокод.ру
    
    Как известно, Лисп обратно-совместим с предприятийными системами (1С, Delphi)
    А также Лисп предоставляет простейший тип - список (двусторонний стек)
    Поэтому на лиспе рассмотрю решение моей задачи про забывчивый стек на лиспе.
    Будут построены всевозможные решения данной задачи, причем с константной сложностью
    Лисп. Стек.  Два.

    А знаете ли вы, что лисп позаимствовал зубодробительную систему предикатов из пролога?

    alexoy, 20 Октября 2011

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

    +169

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    if ( 1 ) { 
     //километровый говнокод 
    } else {
     exit("error");
    }

    Чуть со смеху не умер когда else увидел

    airrussia, 20 Октября 2011

    Комментарии (28)
  6. PHP / Говнокод #8256

    +161

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    reset($queue);
          $query = 'SELECT COUNT(*)'
          .' FROM #__datsogallery'
          .' WHERE (0 != 0';
          while (list($key, $cat) = each($queue)) {
            $query .= ' OR catid = '.$cat;
          }
          $query = $query
          .') AND published = 1'
          .' AND approved = 1';
          $db->setQuery($query);
          $result = $db->query();

    Очень возбуждает строка 4.
    Это в официальном релизе компонента com_datsogallery к Joomla 1.5

    airrussia, 20 Октября 2011

    Комментарии (20)
  7. Java / Говнокод #8255

    +78

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    // inside some method
    final DateFormat dateFormat = i18n.getDateFormat();
    synchronized (dateFormat) {
        formatedViolationDate = (violationDate != null) ?
        dateFormat.format(violationDate) : "";
    }

    i18n.getDateFormat() возвращает статический объект DateFormat, который может использоваться несколькими потоками. В руки бы накласть тому, кто это писал.
    Решение: getDateFormat() возвращает строку формата, объект формата создаем при каждом вызове.

    roman-kashitsyn, 20 Октября 2011

    Комментарии (42)
  8. Куча / Говнокод #8254

    +145

    1. 1
    2. 2
    неудачник тред:
    http://www.gamedev.ru/flame/forum/?id=153748

    я лежал в психушке у меня нет работы девушки и я бородат и живу с родителями...
    наболело
    что делать?

    AnimeGovno-_-, 20 Октября 2011

    Комментарии (21)
  9. C++ / Говнокод #8253

    +1005

    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
    memsize =
      strlen("cpy_dta.sh ");
    
    if ( memsize >= 4096 ) {
      sprintf( errMsg, "[%s] - ExecScript string too long", func);
      return -7;
    }
    
    sprintf( args, "cpy_dta.sh " );
    
    if ( 0 != ( rc = ::system ( args ) ) )
    {
      // ...
    }

    просто фейспалм.

    Dummy00001, 20 Октября 2011

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

    +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
    function get_uri()
    {
    	// Path corrector //
    	$path_correct = str_replace("http://","",$_SERVER['REQUEST_URI']);
    	
    	if (($path_correct[strlen($path_correct)-1] != "/") and (!preg_match("#[\.|\?]#i",$path_correct))) {
    	        header("Location: {$_SERVER['REQUEST_URI']}/"); exit;
    	    }
    	// Path parser //
    	$request = str_replace("http://","",$_SERVER['REQUEST_URI']);
    	$params = strpos($request,"?");
    	if ($params>0) { $request = substr($request,0,$params); }
    	@list($ignore,$path) = @explode("/",$request,2);
    	$CRT['PATH'] = @explode("/",$path);
    	if ($CRT['PATH'][count($CRT['PATH'])-1] == "") { unset($CRT['PATH'][count($CRT['PATH'])-1]); }
    	
    	return $CRT['PATH'];
    }

    Пиздец.
    Думаю, какого хрена я отсылаю форму постом, а приходит гет.
    Такое только на пиэйчпи могли написать.

    Nicklasos, 20 Октября 2011

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