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

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

    +67

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    /**
         * Удаляет "плохие" символы в пути и заменяет пробелы на символ подчеркивания.
         * Двойные кавычки заменяются на одинарные.
         * @param path путь.
         * @return путь с удаленными недопустимыми символами.
         */
    public static String correctPath(String path) {
            return correctPath(path);
    }

    Moloth, 06 Сентября 2013

    Комментарии (21)
  3. Java / Говнокод #12821

    +67

    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
    System.out.println(randomString(-229985452) + " " + randomString(-147909649));
    
    Функция randomString() реализуется примерно вот так:
    public static String randomString(int i)
    {
        Random ran = new Random(i);
        StringBuilder sb = new StringBuilder();
        for (int n = 0; ; n++)
        {
            int k = ran.nextInt(27);
            if (k == 0)
                break;
    
            sb.append((char)('`' + k));
        }
    
        return sb.toString();
    }

    Оригинальный hello world на java

    tsovak, 28 Марта 2013

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

    +67

    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
    public final class SomeActivity extends Activity {
           @Override
    	protected Dialog onCreateDialog(int id) {
    		Dialog dialog = null;
    		if (id == DialogGenerator.SETTINGS_DIALOG) {
    			dialog = mDialogGenerator.createSettingsDialog();
    		}  {
    			dialog = super.onCreateDialog(id);
    		}
    		return dialog;
    	}
    
    	@Override
    	protected void onPrepareDialog(int id, Dialog dialog) {
    		super.onPrepareDialog(id, dialog);
    		if (id == DialogGenerator.SETTINGS_DIALOG) {
    			mDialogGenerator.prepareSettingsDialog((AlertDialog) dialog, someBoolValue, someObjectValue);
    		} 
    	}
    }
    
    public final class DialogGenerator {
    	public Dialog createSettingsDialog() {
    		int dialogId = SETTINGS_DIALOG;
    		int titleId = R.string.settingsTitle;
    		String[] itemsArray = getStringArray(R.array.settings);
    		ThreeTypeOptionsAdapter adapter = new ThreeTypeOptionsAdapter(mControllerAsActivity, itemsArray,
    				mCheckableOptions, mTwoTextOptions);
    		AlertDialogCallback dialogCallback = new AlertDialogCallback(mControllerAsDialogHost, dialogId);
    		AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(mControllerAsActivity);
    		dialogBuilder.setTitle(titleId);
    		// костыль
    		dialogBuilder.setSingleChoiceItems(itemsArray, 0, null);
    		// конец костыля
    		dialogBuilder.setAdapter(adapter, dialogCallback);
    		AlertDialog dialog = dialogBuilder.create();
    		setMainListenersOnDialog(dialog);
    		dialog.getListView().setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
    		return dialog;
    	}
    	
    	public void prepareSettingsDialog(AlertDialog dialog, boolean someBoolValue, String someStringValue) {
    		//костыль
    		ListView dialogList = dialog.getListView();
    		dialogList.clearChoices();
    		dialogList.setItemChecked(POSITION_FOR_BOOL, someBoolValue);
    		//конец костыля
    		ThreeTypeOptionsAdapter adapter = (ThreeTypeOptionsAdapter) dialogList.getAdapter();
    		adapter.setAdditionalValue(POSITION_FOR_STRING, someStringValue);	
    	}
    }

    Задача: показать диалог, внутри которого есть 3 типа ячеек: выделяемые с чекбоксом справа, невыделяемые с дополнительной надписью справа, обычные невыделяемые.
    Примерно так:
    Use GPS checkbox
    Selected country Russia
    Launch some activity

    В комментах к методам я описал костыль:
    Здравствуйте, дорогие друзья. Сегодня мы с вами поговорим об уникальном виде животных, которых открыли только в конце XX века. Это, дорогие друзья, Ява-обезьяны. Давайте дружно откроем сырцы Андроид-СДК, а именно - класс com.android.internal.app.AlertController .AlertParams - и метод createListView(AlertController). Видите, одна обезьяна решила, что нам будет удобней, если диалог автоматом задисмиссится, когда мы щёлкнем по элементу списка в CHOICE_MODE_NONE, и OnClickListener будет не null? А теперь давайте перейдём в android.app.AlertDialog.Builder. Видите, там другая обезьяна решила, что для multi-choice списка нам не потребуется хитроумный адаптер? Поэтому, дорогие друзья, когда мы поставили кастомный адаптер (setAdapter()) и сопроводили его слушателем, то какой бы мы choice mode не ставили после AlertDialog.Builder.create(), диалог дисмиссился. Поэтому, дорогие друзья, пришлось пойти на хитрость и вначале установить single choice (чтобы флаг mIsSingleChoice стал true), а потом уже ставить адаптер.

    QuickNick, 20 Февраля 2013

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

    +67

    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
    //разделяем даты на день, месяц, год
    $date_one=$_POST['date_one'];
    $date_two=$_POST['date_two'];
    
    $mounth_one=substr($date_one,0,2);
    $day_one=substr($date_one,3,2);
    $year_one=substr($date_one,6,4);
    $mounth_two=substr($date_two,0,2);
    $day_two=substr($date_two,3,2);
    $year_two=substr($date_two,6,4);
    //смотрит какая дата больше чтоб передать функции в правильном порядке
    if ($year_one>$year_two || ($year_one==$year_two &&$mounth_one>$mounth_two)||($year_one==$year_two&&$mounth_one==$mounth_two&&$date_one>$date_two)){
        echo 'первая дата больше<br/>';
        counting_days($date_one,$date_two);
    }else{
        echo 'вторая дата больше<br/>';
        counting_days($date_two,$date_one);
    }

    забыл что сравнить даты можно гораздо проще

    loki, 06 Февраля 2013

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

    +67

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    class IntegerUtils
    {
        public static function isInteger($value)
        {
            return preg_match('/[0-9]+/', $value);
        }
    }

    Must have класс, который должен быть у каждого в его библиотеке "велоприседов". Поистине краткий, лаконичный, гениальный. Даешь 100% говнокод!

    SunnyMagadan, 22 Января 2013

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

    +67

    1. 1
    2. 2
    3. 3
    4. 4
    /**Not related to Cosmos and Space-ships
     * */
    public class SpaceListener {
    ...

    Просто шутка в комментарии к лисенеру нажатий пробела.

    alexcom, 18 Декабря 2012

    Комментарии (8)
  8. Pascal / Говнокод #12185

    +67

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    9. 9
    function IntToHex(N: integer): string;
    const
      S = '0123456789ABCDEF';
    var
      i: integer;
    begin
      SetLength(Result, 8);
      for i := 0 to 7 do Result[8 - i] := S[N shr (i shl 2) and $0F + 1];
    end;

    Носки менял, ноги мыл, все равно воняет хаккирством.

    И оно почему-то в модуле WinAPI.pas у Тараса лежит о_О

    PascalGovno, 23 Ноября 2012

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

    +67

    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
    BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
            System.out.println("Введите число:");
            String data = "";
            Integer x;
            try {
                data = in.readLine();
            } catch (IOException ex) {
                System.err.println(ex.getLocalizedMessage());
                return;
            }
            try {
                x = Integer.parseInt(data);
            } catch(NumberFormatException ex) {
                System.out.println("Вы ввели  не число!");
                return;
            }
            if(x <= 0) {
                System.out.println("Число должно быть положительным!");
                return;
            }
            HashMap friends_nums = new HashMap<Integer, Integer>();
            for(int i = 0; i <= x; i++) {
                int s = 0;
                for(int y = 1; y < i; y++) {
                    if(i % y == 0) { s += y; }
                }
                int t = 0;
                for(int y = 1; y < s; y++) {
                    if(s % y == 0) { t += y; }
                }
                if(t == i && s != i && !friends_nums.containsValue(i)) { friends_nums.put(i, s); }
            }
            if(friends_nums.isEmpty()) {
                System.out.println("Дружественных пар не найдено!");
            } else {
                System.out.println("Найдены следующие дружественные числа:");
                Object[] one = friends_nums.keySet().toArray();
                Object[] two = friends_nums.values().toArray();
                for(int i = 0; i<friends_nums.size(); i++) {
                    System.out.println(one[i] + " и " + two[i]);
                }
            }
        }

    Дружественными числами называются два различных натуральных числа, для которых сумма всех собственных делителей первого числа (сумма всех делителей, отличных от самого числа) равна второму числу и сумма всех собственных делителей второго числа равна первому числу. Примеры дружественных чисел: 220 и 284. Делители числа 220: 1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110 (в сумме дают число 284); делители числа 284: 1, 2, 4, 71, 142 (в сумме 220). Примеры других пар дружественных чисел: 2620 и 2924, 17296 и 18416. Написать программу, которая по заданному натуральному числу N находит все пары дружественных чисел, не превосходящих N.

    JavaCoder, 06 Ноября 2012

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

    +67

    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
    if( $proverka === true )
        $_SESSION['id'] = $user['id'];
    if( $proverka === true )
        $_SESSION['milo'] = $user['milo'];
    if( $proverka === true )
        $_SESSION['parol'] = $user['parol'];
    if( $proverka === true )
        $_SESSION['prava'] = $user['prava'];
    if( $proverka === false )
        echo 'Ввиденные вами данные неверны!';
    if( $proverka === false )
        $_SESSION['id'] = '';
    if( $proverka === false )
        $_SESSION['milo'] = '';
    if( $proverka === false )
        $_SESSION['parol'] = '';
    if( $proverka === false )
        $_SESSION['prava'] = '';

    0-0 //-0 //-\\

    Snickers, 19 Октября 2012

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

    +67

    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
    if ($is_past == "1")
    	{
    	if ($disable_sections == "1")
    		mysql_query("update setting set disable_sections = 1");
    		else
    		mysql_query("update setting set disable_sections = 0");
    	if ($disable_katalog_on_main_page == "1")
    		mysql_query("update setting set disable_katalog_on_main_page = 1");
    		else
    		mysql_query("update setting set disable_katalog_on_main_page = 0");
    	if ($disable_news_on_main_page == "1")
    		mysql_query("update setting set disable_news_on_main_page = 1");
    		else
    		mysql_query("update setting set disable_news_on_main_page = 0");
    	if ($disable_help_on_main_page == "1")
    		mysql_query("update setting set disable_help_on_main_page = 1");
    		else
    		mysql_query("update setting set disable_help_on_main_page = 0");
    	if ($disable_vote_on_main_page == "1")
    		mysql_query("update setting set disable_vote_on_main_page = 1");
    		else
    		mysql_query("update setting set disable_vote_on_main_page = 0");
    	if ($disable_zakaz_on_main_page == "1")
    		mysql_query("update setting set disable_zakaz_on_main_page = 1");
    		else
    		mysql_query("update setting set disable_zakaz_on_main_page = 0");
    	if ($disable_reklama_on_main_page == "1")
    		mysql_query("update setting set disable_reklama_on_main_page = 1");
    		else
    		mysql_query("update setting set disable_reklama_on_main_page = 0");
    	if (issets($main_page))
    		mysql_query("update setting set main_page = '$main_page'");
    	if (issets($count_news))
    		mysql_query("update setting set count_news = $count_news");
    	if (issets($count_spec))
    		mysql_query("update setting set count_spec = $count_spec");
    	if (issets($sort_type))
    		mysql_query("update setting set sort_type = $sort_type");
    	if (issets($email))
    		mysql_query("update setting set email = '$email'");
    	
    	if (issets($formmail))
    		mysql_query("update setting set formmail = '$formmail'");
    	
    	if (issets($techmail))
    		mysql_query("update setting set techmail = '$techmail'");
    	if (issets($tel2))
    		mysql_query("update setting set tel2 = '$tel2'");
    	if (issets($tel3))
    		mysql_query("update setting set tel3 = '$tel3'");
    	if (issets($tel4))
    		mysql_query("update setting set tel4 = '$tel4'");
    	if (issets($info))
    		mysql_query("update setting set info = '$info'");	
    	}

    Админка моей мечты! Здоровенная!!! :D

    kindofbear, 27 Августа 2012

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