1. PHP / Говнокод #14345

    +153

    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
    $db = new Db();
                    $db->prepare('SELECT `ID`, `Title`, `Date`, `Active` FROM `videos` WHERE `UserID` = :userId AND `is_temporary` = 0 ORDER BY `Date` DESC')
                            ->bindInt(':userId', $userId)
                            ->execute();
                    $dbResult = $db->fetchAll();
                    if (empty($dbResult)) return array();
                    $orderDir = strtoupper($orderDir);
                    if (!in_array($orderDir, array('DESC', 'ASC'))) $orderDir = 'DESC';
                    if (empty($filter) && $orderDir == 'DESC') return ArrayHelper::extract($dbResult, 'ID', ArrayHelper::INT);
                    $db->prepare('CREATE TEMPORARY TABLE `videos_tmp` (
                                            `id` INT(11),
                                            `title` VARCHAR(256),
                                            `date` DATETIME,
                                            `active` VARCHAR(1)
                                    ) ENGINE = MEMORY
                                CHARACTER SET utf8
                                COLLATE utf8_general_ci')
                            ->execute();
                    foreach ($dbResult as $row) {
                            $db->prepare('INSERT INTO `videos_tmp` (`id`, `title`, `date`, `active`) VALUES (:id, :title, :date, :active)')
                                    ->bindInt(':id', $row['ID'])
                                    ->bindStr(':title', $row['Title'])
                                    ->bindStr(':date', $row['Date'])
                                    ->bindStr(':active', $row['Active'])
                                    ->execute();
                    }
                    $sql = 'SELECT `id` FROM `videos_tmp` WHERE 1';
                    if (isset($filter['active'])) $sql .= ' AND `Active` = :active';
                    if (isset($filter['search'])) $sql .= ' AND `title` LIKE :search';
                    if (isset($filter['fromDate'])) $sql .= ' AND `Date` >= :fromDate';
                    if (isset($filter['toDate'])) $sql .= ' AND `Date` <= :toDate';
                    $sql .= ' ORDER BY `Date` ' . $orderDir;
                    $stmt = $db->prepare($sql);
                    if (isset($filter['active'])) $stmt->bindStr(':active', $filter['active']);
                    if (isset($filter['search'])) $stmt->bindStr(':search', '%' . $filter['search'] . '%');
                    if (isset($filter['fromDate'])) $stmt->bindStr(':fromDate', $filter['fromDate']);
                    if (isset($filter['toDate'])) $stmt->bindStr(':toDate', $filter['toDate']);
                    $stmt->execute();
                    $dbResult = $db->fetchAll();
                    $db->prepare('DROP TABLE `videos_tmp`')->execute();

    Извиняюсь, что так много, но какого слоника надо было делать выборку, создавать временную таблицу и делать выборку снова - загадка.

    begmst, 10 Января 2014

    Комментарии (29)
  2. JavaScript / Говнокод #14344

    +154

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    var i1id = setInterval(function () {
                $('#step-2 table.step-1-top-tabs td#images').addClass('tab-selected');
                $('#step-2 table.step-1-top-tabs td#images').click();
                clearInterval(i1id);
            }, 100);

    О функции setTimeout не слышали.

    begmst, 10 Января 2014

    Комментарии (25)
  3. Haskell / Говнокод #14343

    −83

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    11. 11
    12. 12
    setRegState :: RegisterStates -> M_Register -> Word8 -> RegisterStates
    setRegState rs r n =
      let (a, b, c, d, e, f, h, l, pc, sp) = rs in
      case r of
        M_A -> (n, b, c, d, e, f, h, l, pc, sp)
        M_B -> (a, n, c, d, e, f, h, l, pc, sp)
        M_C -> (a, b, n, d, e, f, h, l, pc, sp)
        M_D -> (a, b, c, n, e, f, h, l, pc, sp)
        M_E -> (a, b, c, d, n, f, h, l, pc, sp)
        M_F -> (a, b, c, d, e, n.&.0xF0, h, l, pc, sp)
        M_H -> (a, b, c, d, e, f, n, l, pc, sp)
        M_L -> (a, b, c, d, e, f, h, n, pc, sp)

    Haskell has no boilerplate.
    Из исходников заброшенного эмулятора GameBoy (https://github.com/bitc/omegagb/)

    Yuuri, 10 Января 2014

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

    +148

    1. 1
    <link rel="stylesheet" href="css/css.css" type="text/css" />

    Ехал Гитлер через Гитлер,
    Гитлер Гитлер Гитлер Гитлер!

    cahbtexhuk, 10 Января 2014

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

    +126

    1. 1
    Пони тред!

    Поняшки!

    kegdan, 10 Января 2014

    Комментарии (9)
  6. JavaScript / Говнокод #14340

    +155

    1. 1
    2. 2
    $(element).width($(element).width());
    $(element).height($(element).height());

    Просто нет слов.

    Diwms, 10 Января 2014

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

    +156

    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
    function t($text, $parameters = null) {
            $lang = empty($_COOKIE['lang']) ? 'ru' : $_COOKIE['lang'];
            $result = !array_key_exists($text, Application_Model_Translate::$lang_package) || ($lang == 'ru') ? $text :
                    Application_Model_Translate::$lang_package[$text][(int) ($lang == 'en')];
            if (isset($parameters)) {
                    if (!is_array($parameters))
                            $parameters = array($parameters);
                    foreach ($parameters as &$param)
                            $param = addslashes($param);
                    eval('$result = sprintf($result, "'. implode('","', $parameters) . '");');
            }
            return $result;
    }

    Groovy, 10 Января 2014

    Комментарии (43)
  8. C# / Говнокод #14338

    +137

    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
    public static string AddControlDigits(string input)
    {
          if (String.IsNullOrEmpty(input))
              return "";
          try
          {
              XDocument doc = XDocument.Parse(input.JavaSubString(input.IndexOf("<contracts>"), input.IndexOf("</contracts>") + "</contracts>".Length));
              String s = new String(doc.ToString().ToCharArray());
                    
              XElement rootElement = doc.Root.Element("list_item");
    
              string basicNumber = rootElement.Element("basicNumber").Value;
              string endNumber = rootElement.Element("endNumber").Value;
              string loanCaseNumber = rootElement.Element("loanCaseNumber").Value;
              string loanCaseComplementNumber = rootElement.Element("loanCaseComplementNumber").Value;
              string bridgeLoanComplementNumber = rootElement.Element("bridgeLoanComplementNumber").Value;
    
              int checkNumber = CalcCheckDigitCU(basicNumber + endNumber);
              int loanCaseCheckNumber = calcCheckDigitUP(loanCaseNumber);
              int bridgeLoanCheckNumber = CalcCheckDigitCU(basicNumber + bridgeLoanComplementNumber);
    
              rootElement.Add(new XElement("checkNumber", checkNumber));
              rootElement.Add(new XElement("loanCaseCheckNumber", loanCaseCheckNumber));
              rootElement.Add(new XElement("bridgeLoanCheckNumber", bridgeLoanCheckNumber));
    
              input = input.Replace(s, doc.ToString());
    
              return "";
         }
         catch (Exception ex)
         {
             throw;
          }
     }

    жопа

    taburetka, 10 Января 2014

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

    +73

    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
    79. 79
    80. 80
    81. 81
    82. 82
    83. 83
    84. 84
    85. 85
    public enum Action {
    
        ADD, DELETE, UPDATE, REFRESH;
    
        public static Action getEnum(String value) {
            for (Action current : values()) {
                if (current.name().equalsIgnoreCase(value)) {
                    return current;
                }
            }
            throw new IllegalArgumentException("Unknown input value. Input value is '" + value + "'");
        }
    
        @Override
        public String toString() {
            return this.name().toLowerCase();
        }
    }
    
    public enum Manager {
    
        USER, ROLE, SERVICE;
    
        public static Manager getEnum(String value) {
            for (Manager current : values()) {
                if (current.name().equalsIgnoreCase(value)) {
                    return current;
                }
            }
            throw new IllegalArgumentException("Unknown input value. Input value is '" + value + "'");
        }
    
        @Override
        public String toString() {
            return this.name().toLowerCase();
        }
    
        public boolean isUser() {
            return this == USER;
        }
    
        public boolean isRole() {
            return this == ROLE;
        }
    
        public boolean isService() {
            return this == SERVICE ;
        }
    }
    
    public class StringToEnumConverterFactory implements ConverterFactory<String, Enum> {
        @Override
        public <T extends Enum> Converter<String, T> getConverter(Class<T> targetType) {
            return new StringToEnumConverter<T>(targetType);
        }
    
        private final class StringToEnumConverter<T extends Enum> implements Converter<String, T> {
    
            private Class<T> enumType;
    
            private StringToEnumConverter(Class<T> enumType) {
                this.enumType = enumType;
            }
    
            @Override
            public T convert(String source) {
                if (enumType.getName().equalsIgnoreCase("com.finder.enumerator.manager")) {
                    return (T) Manager.getEnum(source);
                }
                if (enumType.getName().equalsIgnoreCase("com.finder.enumerator.action")) {
                    return (T) Action.getEnum(source);
                }
                return (T) Enum.valueOf(this.enumType, source);
            }
        }
    }
    
    /* -- Mapping -- */
    @RequestMapping(value = "manage/index/{manager}/{action}", method = RequestMethod.GET)
    public String addValueToEntity(@PathVariable("manager") Manager manager, @PathVariable("action") Action action) {
    ...
    
    @RequestMapping(value = "/manage/index", method = RequestMethod.GET)
    public String indexPage(ModelMap model, @RequestParam(value = "manager", required = true) Manager manager) {
    ...

    Spring MVC. Проблема в том что строка lovercase а значения Enum-ов uppercase

    govnoacc, 10 Января 2014

    Комментарии (14)
  10. C++ / Говнокод #14336

    +16

    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
    #include <iostream>
    using namespace std;
    struct T
    {
      int a, b, &c;
      T():a(0), b(1), c(a){cout<<"dc"<<endl;}
      T(const T& a):a(a.a), b(a.b), c(&a.c == &a.a ? this->a : b){cout<<"cc"<<endl;}
      T& operator=(T a)
      {
        ::new((void*)(&b+1)) int*(&a.c == &a.a ? &this->a : &b);
        //asm volatile ("" : : : "memory");
        cout<<"co"<<endl;
        return *this;
      }
      void Switch()
      {
        ::new((void*)(&b+1)) int*(&c == &a ? &b : &a);
        //asm volatile ("" : : : "memory");
        cout<<"sw"<<endl;
      }
    } __attribute__((aligned(1))) ;
    
    int main() {
      T a;
      cout<<a.a<<endl;
      cout<<a.b<<endl;
      cout<<a.c<<endl;
      a.Switch();
      cout<<a.c<<endl;
      T b;
      cout<<b.c<<endl;
      b=a;
      cout<<b.c<<endl;
      b.b=666;
      cout<<b.c<<endl;
      return 0;
    }

    Очевидно откуда это.

    LispGovno, 10 Января 2014

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