1. Список говнокодов пользователя 0rt

    Всего: 11

  2. Java / Говнокод #19429

    −36

    1. 1
    2. 2
    3. 3
    public abstract interface Expression {
    public abstract Object evaluate(java.util.Map<String, Object> params);
    }

    0rt, 11 Февраля 2016

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

    +74

    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
    url = new URL("http://[FF01:0:0:0:0:0:0:0101]");
    String originalHostName = url.getHost();
    System.out.println(originalHostName);
    if (originalHostName.startsWith("[") && originalHostName.endsWith("]")) {
     i1 = originalHostName.indexOf("[");
     originalHostName = originalHostName.substring(i1 + 1);
     i2 = originalHostName.lastIndexOf("]");
     originalHostName = originalHostName.substring(0, i2);
     if (IPV6REGEX.matcher(originalHostName).matches()) {
      System.out.println(url + " is a ipv6 address");
      String hostName = InetAddress.getByName(originalHostName).getHostAddress().toLowerCase();
      if (hostName.contains(":")) {
       hostName = "[" + hostName + "]";
      }
     }
    }

    Взято отсюда: http://www.pretechsol.com/2013/05/ipv6-java-regular-expression-example.html#.VBtooLn69B0

    0rt, 19 Сентября 2014

    Комментарии (2)
  4. SQL / Говнокод #15568

    −126

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    CREATE TABLE `cpu` ( `id` mediumint(9) NOT NULL, `proc_name` varchar(250),  `proc_freq` varchar(250));
    CREATE TABLE `drive` ( `id` mediumint(9) NOT NULL, `controller` varchar(250), `model` varchar(250),  `drive_size` varchar(250),  `drive_type` varchar(250));
    CREATE TABLE `memory` (`id` mediumint(9) NOT NULL, `size` varchar(250),  `type` varchar(250),  `speed` varchar(250));
    CREATE TABLE `motherboard` (`id` mediumint(9) NOT NULL,  `motherboard` varchar(250),  `chipset` varchar(250),  UNIQUE KEY `id` (`id`));
    CREATE TABLE `network` (`id` mediumint(9) NOT NULL,  `net` varchar(250) COLLATE cp1251_general_cs NOT NULL);
    CREATE TABLE `passport` (`id` mediumint(9) NOT NULL AUTO_INCREMENT, `id_podrazdel` smallint(6) NOT NULL, `mesto` varchar(150) COLLATE cp1251_general_cs NOT NULL, `inv_nomer` varchar(150), `imya` varchar(30) COLLATE cp1251_general_cs NOT NULL, `ip` varchar(15), `date` varchar(16) COLLATE cp1251_general_cs NOT NULL, `plomba` varchar(1) COLLATE cp1251_general_cs NOT NULL, `dop_inf` text COLLATE cp1251_general_cs, `type` varchar(1) COLLATE cp1251_general_cs NOT NULL, `nout_model` varchar(50) COLLATE cp1251_general_cs NOT NULL, PRIMARY KEY (`id`));
    CREATE TABLE `podrazdel` (`id_podrazdel` smallint(6) NOT NULL AUTO_INCREMENT, `podrazdel` varchar(150) COLLATE cp1251_general_cs NOT NULL, PRIMARY KEY (`id_podrazdel`), UNIQUE KEY `podrazdel` (`podrazdel`));
    CREATE TABLE `program` (`id` mediumint(9) NOT NULL, `os` varchar(250) COLLATE cp1251_general_cs NOT NULL, `nod` varchar(1) COLLATE cp1251_general_cs NOT NULL, `office` varchar(250) COLLATE cp1251_general_cs NOT NULL, `spo` varchar(1) COLLATE cp1251_general_cs NOT NULL, UNIQUE KEY `id` (`id`));
    CREATE TABLE `sound` (`id` mediumint(9) NOT NULL, `audio` varchar(250) COLLATE cp1251_general_cs NOT NULL);
    CREATE TABLE `video` (`id` mediumint(9) NOT NULL, `video` varchar(250), `video_size` varchar(250));

    Творение практикантки. "Нормализация структуры БД? не, не слышала!"
    Главной является таблица passport. Остальные просто ссылаются на неё, кроме - внезапно! - таблицы podrazdel, которая таки имеет собственный ключ.

    0rt, 25 Марта 2014

    Комментарии (31)
  5. Куча / Говнокод #14294

    +125

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    def executeAfterDelay(t: Duration) (toExecute: => Unit): Future[Unit] = {
        future { 
          blocking { 
            Thread.sleep(t.toMillis)
          }
          toExecute
        }
      }

    Scala. Код работы с асинхронным фреймворком Akka. Говнонюанс в том, что есть встроенный класс Scheduler, делающий то же самое, только лучше.

    0rt, 28 Декабря 2013

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

    +121

    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
    package simplecms
    import auth.*
    
    class AuthFilters {
    
    	private checkPermission(def controller, def p, def session, def params) {
    		if (p) {
    			boolean result = session.user?.profile?.permissions?.contains(p)
    			if (p.delegate) {
    				result |=  controller.checkDelegation[p.name](session, params)
    			} else if (p.controllerChecked) {
    				result &= controller.checkPermission[p.name](session, params)
    			}
    			if (!result && p.parent) {
    				result = checkPermission(controller, p.parent, session, params)
    			}
    			return result
    		}
    		return true
    	}
    
    	def filters = {
    		main(controller:'*', action:'*') {
    			before = {
    				def mappings = PermissionMapping.findAllByControllerAndMethodInList(controllerName, [actionName, '*'])
    				boolean denied = mappings?.size() > 0
    				if (denied) {
    					def permissions = []
    					session.user?.attach()
    					mappings.each { mapping ->
    						if (mapping.permission?.guest) {
    							denied = false
    						} else if (permission.parent == null){
    							permissions << mapping.permission
    						}
    					}
    					if (denied) {
    						denied = !permissions.any { checkPermission(grailsApplication.mainContext.getBean(controllerName), it, session, params) }
    					}
    				}
    				return !denied
    			}
    		}
    	}
    }

    Нашёл у себя в проекте. Иерархия разрешений? ну так будем проверять только корневые, что заморачиваться?!

    0rt, 29 Февраля 2012

    Комментарии (14)
  7. Куча / Говнокод #9567

    +119

    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
    package simplecms
    import auth.*
    
    class AuthFilters {
    
    	private checkPermission(def controller, def p, def session, def params) {
    		if (p) {
    			boolean result = session.user?.profile?.permissions?.contains(p)
    			if (p.delegate) {
    				result |=  controller.checkDelegation[p.name](session, params)
    			} else if (p.controllerChecked) {
    				result &= controller.checkPermission[p.name](session, params)
    			}
    			if (!result && p.parent) {
    				result = checkPermission(controller, p.parent, session, params)
    			}
    			return result
    		}
    		return true
    	}
    
    	def filters = {
    		main(controller:'*', action:'*') {
    			before = {
    				def mappings = PermissionMapping.findAllByControllerAndMethodInList(controllerName, [actionName, '*'])
    				boolean denied = mappings?.size() > 0
    				if (denied) {
    					def permissions = []
    					session.user?.attach()
    					mappings.each { mapping ->
    						if (mapping.permission?.guest) {
    							denied = false
    						} else if (permission.parent == null){
    							permissions << mapping.permission
    						}
    					}
    					if (denied) {
    						denied = !permissions.any { checkPermission(grailsApplication.mainContext.getBean(controllerName), it, session, params) }
    					}
    				}
    				return !denied
    			}
    		}
    	}
    }

    Нашёл у себя в проекте. Иерархия разрешений? ну так будем проверять только корневые, что заморачиваться?!

    0rt, 29 Февраля 2012

    Комментарии (0)
  8. JavaScript / Говнокод #9348

    +148

    1. 1
    http://digest.subscribe.ru/inet/review/n763622828.html

    Статья прелесть. document.write() в наше-то время...

    0rt, 08 Февраля 2012

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

    +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
    int limit = 10;
            int countNews = daoService.getCountNews();
            int currentPage = 1;
            if (linkOffset != 0) {
                currentPage += linkOffset / limit;
            }
            int offset = countNews - (linkOffset + limit);
            if (offset < 0) {
                offset = 0;
                limit = (countNews - (linkOffset + limit)) + limit;
            }
    
            List newsList = daoService.getLimitNews(limit, offset);
            List news = new ArrayList();
            int index = 0;
            for (int i = newsList.size() - 1; i >= 0; i--) {
                news.add(index, newsList.get(i));
                index++;
            }
    
    //DaoService.getLimitNews:
        public List getLimitNews(String owner, int limit, int offset) {
            return super.getSimpleJdbcTemplate().query(
                    "SELECT * FROM news WHERE owner=? AND apply=? AND local=? "
                    + "ORDER BY created limit ? offset ?",
                    new NewsMapper(),
                    owner, true, true, limit, offset);
        }

    Получение списка новостей в ленте в обратном хронологическом порядке.

    0rt, 25 Января 2012

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

    +65

    1. 1
    2. 2
    3. 3
    4. 4
    public int getSysEmailId() {
            return super.getJdbcTemplate().queryForInt(
                    "SELECT id FROM sys_email");
        }

    Коллега порадовал. Говнонюанс в том, что sys_email имеет структуру (id SERIAL PRIMARY KEY, login text NOT NULL UNIQUE, password text NOT NULL).

    0rt, 20 Января 2012

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

    +74

    1. 1
    String.format("USR-БГПУ", new Object[] { new SimpleDateFormat("dd MMMM yyyy", new Locale("ru", "RU")) })

    Нашёл в самолично написанной утильке (из серии блиц-[говно]кодинга). Думал.

    0rt, 19 Января 2012

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