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

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

    +69

    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
    public static void main(String[] args) throws Exception {
    	// ProblemFactory in action...
    	DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
    	docBuilderFactory.setValidating(false);
    	docBuilderFactory.setNamespaceAware(false);
    	DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
    
    	// I really don't want to download that stupid DTD from w3c.org
    	docBuilder.setEntityResolver(new EntityResolver() {
    		public InputSource resolveEntity(String publicId, String systemId)
    				throws SAXException, IOException {
    			return new InputSource(new StringReader(""));
    		}
    	});
    
    	// Just fine
    	Document doc = docBuilder.parse("http://govnokod.ru/comments");
    
    	// ProblemFactory again
    	XPathFactory xpathFactory = XPathFactory.newInstance();
    	XPath xpath = xpathFactory.newXPath();
    
    	// Just fine
    	NodeList nodes = (NodeList)xpath.evaluate("//li[@class='hentry']", doc, XPathConstants.NODESET);
    	Pattern topicUriRegex = Pattern.compile("^.*/(\\d+)$");
    
    	// This is Java, not C. Why I need to write that shitty loop?!
    	for (int i=0, n=nodes.getLength(); i<n; i++) {
    		Node node = nodes.item(i);
    		String author = xpath.evaluate(".//strong[@class='entry-author']/a/text()", node);
    		String language = xpath.evaluate(".//a[@rel='chapter']/text()", node);
    		String topicUri = xpath.evaluate(".//a[@rel='bookmark'][@class='entry-title']/@href", node);
    		Matcher m = topicUriRegex.matcher(topicUri);
    		String topicId = m.matches() ? m.group(1) : "неизвестный говнокод";
    		String text = xpath.evaluate(".//div[@class='entry-comment']", node);
    		
    		System.out.println("==== " + author + " наложил в " + topicId + " (" + language + ") ====");
    		System.out.println(text);
    		System.out.println("");
    	}
    }

    Треш угар и содомия.Java, DOM и парсер уютненького.

    bormand, 24 Августа 2012

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

    +69

    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
    public abstract class SomeActivity extends Activity implements SomeEventListener {
        private volatile Integer someEventAnswer;
    
        @Override
        public Integer onSomeEvent(final Collection<String> someData) {
            final CountDownLatch latch = new CountDownLatch(1);
    
            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    showSomeDialog(someData, latch);
                }
            });
    
            try {
                latch.await();
            } catch (InterruptedException ignored) {
            }
    
            Integer ret = someEventAnswer;
            someEventAnswer = null;
            return ret;
        }
    
        private void showSomeDialog(final Collection<String> someData, final CountDownLatch latch) {
            String[] items = someData.toArray(new String[someData.size()]);
    
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setTitle("Select some data");
            builder.setItems(items, new OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {
                    someEventAnswer = which;
                    latch.countDown();
                }
            });
    
            Dialog dialog = builder.create();
            dialog.setOwnerActivity(this);
            dialog.show();
        }

    Android API Level 8
    Суть: из фонового потока задать вопрос пользователю

    rat4, 08 Июля 2012

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

    +69

    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
    String sXLTName = template;
            String[] fileNames = new File(templatePath).list();
            try {
              if (fileNames != null) {
                for (String fileName : fileNames) {
                  if (fileName.equalsIgnoreCase(template)) {
                    sXLTName = fileName;
                    break;
                  }
                }
              }
            } finally {
              tmpBook = POIHelper.openRepBook(templatePath + sXLTName);
            }

    Вместо tmpBook = POIHelper.openRepBook(templatePath + template);

    glprizes, 15 Июня 2012

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

    +69

    1. 1
    $file[] = $_FILES[''.$key.''];

    Подобное "приведение типов (?)" для $key просто убивает. Размазано по всему проекту...

    domaster, 13 Июня 2012

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

    +69

    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
    if ($autor->name != 'webred') {
    $role = ",<br />Народный корреспондент";
    if(isset($user->roles['3']) || isset($user->roles['5']) || isset($user->roles['6']))
    {
    	$role = ",<br />Редактор";
    	if(isset($user->roles['7']))
    	{
    		$role = ",<br />Корреспондент";
    	}
    	//глред
    	if(isset($user->roles['8']))
    	{
    		$role = ",<br />Главный редактор";
    	}
    	//глобоз
    	if(isset($user->roles['9']))
    	{
    		$role = ",<br />Обозреватель";
    	}
    	//шефред
    	if(isset($user->roles['10']))
    	{
    		$role = ",<br />Шеф-редактор";
    	}
    	if(isset($user->roles['12']))
    	{
    		$role = ",<br />Спортивный обозреватель";
    	}
    	if(isset($user->roles['11']))
    	{
    		$role = ",<br />Редакция сайта";
    	}
    	//блоггер
    	if(isset($user->roles['13']))
    	{
    		$role = ",<br />Блоггер";
    	}
    }

    Как вам такое?:)

    ikenfin, 07 Июня 2012

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

    +69

    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
    //проверка фамилии
    if ($tmp['fam'] == ""):
     $_SESSION["er_mes_registr"] = "Не заполнено поле `Фамилия`.";
     header ("Location: /register/");
     die();
    endif;
    if (strlen($tmp['fam'])>20):
     $_SESSION["er_mes_registr"] = "Длина фамилии не может быть более 20 букв.";
     header ("Location: /register/");
     die();
    endif; 
    
    //проверка имени
    if ($tmp['name'] == ""):
     $_SESSION["er_mes_registr"] = "Не заполнено поле `Имя`.";
     header ("Location: /register/");
     die();
    endif;
    if (strlen($tmp['name'])>20):
     $_SESSION["er_mes_registr"] = "Длина имени не может быть более 20 букв.";
     header ("Location: /register/");
     die();
    endif; 
    
    //проверка email
    if ($tmp['email'] == ""):
     $_SESSION["er_mes_registr"] = "E-mail не может быть пустым!";
     header ("Location: ".$_SERVER['HTTP_REFERER']);
     die();
    endif;
    if (!ereg("^([a-z0-9_]|\\-|\\.)+@(([a-z0-9_]|\\-)+\\.)+[a-z]{2,4}\$",$tmp['email'])):
     $_SESSION["er_mes_registr"] = "Неверно указан e-mail!";
     header ("Location: ".$_SERVER['HTTP_REFERER']);
     die();
    endif;

    Правильная валидация...

    MAXakaWIZARD, 25 Мая 2012

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

    +69

    1. 1
    2. 2
    3. 3
    4. 4
    function all_sorting(
        $ids, //!< Массив ID элемента в карте сайта
        $_POST //!< Значения сортировки элементов
    ) {

    Определение локальной переменной с именем суперглобального массива вызывает ошибку "Fatal error: Cannot re-assign auto-global variable _POST in" в PHP 5.4

    Lblss, 22 Мая 2012

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

    +69

    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
    if (!class_exists('Memcache')) {
    
            class Memcache {
    
                function connect($l, $p) {
                    echo "НЕТ МЕМКЕША";
                    return true;
                }
    
                function get($n) {
                    return false;
                }
    
                function set($a, $b, $v, $g) {
                    return true;
                }
    
            }
    
        }

    улыбнуло )

    Sulik78, 17 Мая 2012

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

    +69

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    //JAVA
    request.setAttribute("sexForRegi", person.getSex().getLogicConstant());
    //А теперь и JSTL: 
    <c:choose>
       <c:when test="${sexForRegi == 'MALE'}">
          <div class="sys-icon-128x128 icon-128x128-RegEndMan"></div>
       </c:when>
       <c:when test="${sexForRegi == 'FEMALE'}">
          <div class="sys-icon-128x128 icon-128x128-RegEndWoman"></div>
       </c:when>                  
    </c:choose>

    Sex - это у меня сущность, которая определяет половую принадлежность.
    Regi - Action, отвечающий за регистрацию.
    Вот и назвал переменную, чтобы определять какую картинку выводить "sexForRegi".
    Вдумавшись, такое название наталкивает на мнение, что регистрация возможна только через секс =)

    Dvelopp, 12 Мая 2012

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

    +69

    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
    if(isset($_POST['submit'])){
    				$cat = $_POST['cat'];
    				
    				/** Определяем переменную дириктории */
    				if($cat == 1) :
    				$uploaddir = '../uploads/poli/'; 
    				elseif($cat == 2) : $uploaddir = '../uploads/site/';
    				elseif($cat == 3) : $uploaddir = '../uploads/style/';
    				elseif($cat == 4) : $uploaddir = '../uploads/illustration/';
    				endif;
    				
    				$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
    				$file_name = $_FILES['userfile']['name'];
    				$desc = trim(htmlspecialchars($_POST['desc']));
    				$position = $_POST['pos'];
    				
    				if (!file_exists($uploadfile)){
    					/** Перемещаем фаил из временной дириктории в папку uploads */
    					if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
    						/** НИКашерное обрезание  да бля стыдно ,но конец рабочего дня в голову не чего не лезит */
    						$uploadfile = substr($uploadfile,3);
    						$result = $db->INSERT('pfolio',array('img','description','cat','position'),array($uploadfile,$desc,$cat,$position));
    						if($result) : echo '<h2 style="color:green;"> Фаил успешно загружен </h2> <a href="admin.php?am=mod[portfolio]&add">Назад</a>'; else: echo 'Не удачно'; endif;
    					} else {
    						echo "Возможная атака с помощью файловой загрузки!\n";
    					}
    				}else{
    					echo '<h2 style="color:red;"> Фаил с таким именем уже сущевствует !</h2> <br /> <p style="text-decoration:underline; color : red; cursor:pointer;" onClick="history.back()">Назад</a>';
    				}

    НИкашерно обрезал

    ilussion, 12 Мая 2012

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