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

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

    +3

    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
    Решил я значит от нехуй делать нарисовать свой пиксельный шрифт
    (кому интересно - вот промежуточный результат https://i.imgur.com/2vIJoio.png)
    и решил посмотреть, какие там вообще бывают под GNU/Linux редакторы для
    шрифтов, и какие вообще шрифты бывают
    Так вот, нашел я вот такую хрень http://mensis.sourceforge.net/overview.html
    Вижу, что там какой-то ассемблер http://mensis.sourceforge.net/ttfcv-all.png или
    байткод ебаный. Погуглил по этим говноинструкциям со скриншота:
    Оказывается в TTF шрифтах есть встроенный тьюринг-полный ЯП, используемый
    для всяких там подсказок, типа "куда дорисовать пиксель вот при таком-то условии"
    и прочая подобная херота
    А еще в шиндошс (до Windows 10) этот шрифтоговнобайткод интерпретировался в
    пространстве ядра (ну тупыыые..) и разумеется таким образом удалось винду хакнуть
    https://security.stackexchange.com/a/91395 (разве могло быть иначе?)
    
    про шрифтоговнобайткод можно почитать например тут
    https://docs.microsoft.com/en-us/typography/opentype/spec/tt_instructions
    https://developer.apple.com/fonts/TrueType-Reference-Manual/RM05/Chap5.html#instructions
    
    На кой вообще хер делать тьюринг-полный язык для отрисовки глифов? Ну и раз вы его уже
    делаете, то заебошьте там что-нибудь на основе LLVM байткода, чтоб JIT, или вообще все глифы
    сразу компилировать в натив, или даже (чего мелочиться) под GPU. Типа мы хотим
    нарисовать какую-то букву с размером 10 - вызываем функцию
    drawA(10, bufptr, x, y); - рисуется десятого размера буква в буфер. И никаких непонятных
    говнобайткодов. Четко и дерзко!

    j123123, 01 Апреля 2019

    Комментарии (31)
  3. PHP / Говнокод #25212

    +1

    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
    if($form_action=="register") {
       if($coo_coo=="tootoo") {
       if($myusername) {
          if($mypassword) {
             if($mypassword==$myrepeat) {
                $uLength = strlen($myusername);
                $pLength = strlen($mypassword);
                if($uLength >= 3 && $uLength <= 30) {
                   $return_error = "";
                } else {
                   $return_error = "Username must be between 3 and 30 characters.";
                }
                if($pLength >= 3 && $pLength <= 30) {
                   $return_error = "";
                } else {
                   $return_error = "Password must be between 3 and 30 characters.";
                }
                if($return_error == "") {
                   if($db_found) {
                      $mypassword = md5($mypassword);
                      $SQL = "SELECT * FROM users WHERE username='$myusername'";
                      $result = mysql_query($SQL);
                      $num_rows = mysql_num_rows($result);
                      if($num_rows==1) {
                         $return_error = "Username already taken.";
                      } else {
                         if(!mysql_query("INSERT INTO users (id,date,ip,username,password) VALUES ('','$date','$ip','$myusername','$mypassword')")){
                            $return_error = "System error.";
                         } else {
                            $return_error = "Logged in.";
                            $_SESSION['user_session'] = $myusername;
                            header ("Location: index.php");
                         }
                      }
                   }
                }
             } else {
                $return_error = "Passwords did not match";
             }
          } else {
             $return_error = "No password was entered.";
          }
       } else {
          $return_error = "No username was entered.";
       }
       } else {
          $return_error = "Registrations are disabled.";
       }
    }

    "Сам кусок регистрации"
    Ошибка начинается с первой строки...

    MouseZver, 21 Декабря 2018

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

    −3

    1. 1
    2. 2
    Надобно бы реализовать здесь такое же подтверждение аккаунта, как во влажном "Google Adsense" - путём отправки
    бумажного письма по физическому адресу пользователя - дабы местный шизофреник не вёл диалоги сам с собою.

    0BEH, 27 Октября 2018

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

    +1

    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 int GetWorkOrder(...)
    {
    	var wait = 0;
    	const int stepWait = 30;
    	var marker1 = false;
    
    	do
    	{
    		if (marker1 == true) wait = wait + stepWait;
    		...
    		do
    		{
    			marker1 = false;
    			...
    			if (ChoosenWO.Count == 0)
    			{
    				if (counter == postalAreas.Count)
    				{
    					marker1 = true;
    					break;
    				}
    				...
    				counter = counter + 1;
    			}
    			else
    			{
    				...
    			}
    		} while (ChoosenWO.Count == 0);
    
    	} while (wait < ((endDayTime.Hour - DateTime.UtcNow.Hour) * 60 + (endDayTime.Minute - DateTime.UtcNow.Minute)));
    
    	return -1;
    }

    Очень важный алгоритм, работающий на продакшене... Разработанный менеджером и написанный аналитиком...

    Moses, 11 Октября 2018

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

    −2

    1. 1
    https://habr.com/post/412603/

    Оператор []=

    Короткий оператор добавления нового элемента в массив. Он работает так, вы ожидаете, добавляя элемент на правой части в левую частью массива.

    Штоблядь???

    minusinho, 29 Мая 2018

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

    0

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    ...
         F = fun(S) ->
                  ets:give_away(Table, NewOwner),
                  S
              end,
          sys:replace_state(OldOwner, F)
    ...

    Паттерн steal

    CHayT, 15 Мая 2018

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

    0

    1. 1
    2. 2
    var lol = (timeout) => setTimeout(lol, setTimeout(console.log, timeout, 'kek'), timeout);
    lol();

    inho, 30 Января 2018

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

    0

    1. 1
    2. 2
    3. 3
    https://imgur.com/a/UoyMX
    
    Планирую вести себя как прикрелейтед, какие подводные?

    Давайте обсудим в ИТТ треде git, работу с ним, почему каждый раз всё превращается в пикрелейтед и как этого избежать.

    А лоу-левелщики, кстати юзают? Есть вообще тенденция, что веб-макаки используют сабж чаще крестобогов, или наоборот?

    Отдельно предлагаю обсудить алгоритм, по которому gitk рисует историю коммитов. Никак не могу придумать, что ж там за алгоритм, коммити не отсортированы жестко по даже, а если слишком долго в какой-то ветке нет коммитов, то она прерывается стрелочкой, а потом продолжается выше, но трудно сказать, по каким правилам. Причем схожие утилиты рисуют историю по-разному. В код ещё не смотрел.

    З.Ы. Капча 2k16

    vistefan, 22 Января 2018

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

    −4

    1. 1
    2. 2
    3. 3
    https://news.mail.ru/society/31667144/?frommail=1
    
    Как думаете, соски, могут ли семь поездов по шесть вагонов каждый стоить четыре миллиарда рублей? Или это какая-то наёбка?

    COWuTEJIbTBOEuMAMKu, 17 Ноября 2017

    Комментарии (31)
  11. C++ / Говнокод #23440

    +5

    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
    #include <iostream>
    #include <type_traits>
    #include <list>
    #include <vector>
    
    using std::cout;
    using std::endl;
    using function = int;
    
    struct Console {
    private:
        template<typename SS, typename TT>
        static auto test(int)
            -> decltype(std::declval<SS&>() << std::declval<TT>(), std::true_type());
        template<typename, typename>
        static auto test(...) -> std::false_type;
        template<typename T>
        static const bool canCout = decltype(test<decltype(cout), T>(0))::value;
    public:
        template<typename T>
        typename std::enable_if<std::is_same<decltype(std::declval<T>().begin()),
            decltype(std::declval<T>().end())>::value && !canCout<T>>::type
        log(T arg) {
            log('[');
            for (typename T::const_iterator it = arg.begin(); it != arg.end(); ++it) {
                auto nextIt = it;
                ++nextIt;
                if (nextIt != arg.end()) {
                    log(*it);
                    log(", ");
                } else {
                    log(*it);
                    log(']');
                }
            }
        }
        template<typename T>
        typename std::enable_if<canCout<T>>::type
            log(T arg) {
            cout << arg;
        }
        template<typename H, typename ... T>
        void log(H arg, T... rest) {
            log(arg);
            log(' ');
            log(rest...);
        }
    };
    static Console console;
    
    function main()
    {
        console.log(std::vector<int>({ 1, 2, 3 }), "Hello World!", 100.1, "\n");
        console.log(std::string("std::string"), std::list<std::string>({ "one", "two", "three" }), '\n');
    
        return 0;
    }

    Javascript++.
    https://ideone.com/NykL0u

    gost, 21 Октября 2017

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