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

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

    +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
    // https://docs.docker.com/engine/api/v1.24/#create-a-container
    
    POST /v1.24/containers/create HTTP/1.1
    Content-Type: application/json
    Content-Length: 12345
    
    {
           "Hostname": "",
           "Domainname": "",
           "User": "",
           "AttachStdin": false,
           "AttachStdout": true,
           "AttachStderr": true,
           "Tty": false,
           "OpenStdin": false,
           "StdinOnce": false,
           "Env": [
                   "FOO=bar",
                   "BAZ=quux"
           ],
           ...
    }

    Ядро предоставляет сисколл execve. Execve принимает переменные окружения в виде массива строк A=B -
    не знаю конкретных причин, почему так сделано, но скорее всего просто потому что писать хэшмапу под
    это дело, которая еще и будет выкинута из памяти через относительно небольшое время - дело дорогое и
    ненужное, плюс наверняка какой-нибудь лишний пердолинг со стеком.
    https://man7.org/linux/man-pages/man2/execve.2.html

    Го, "человеческий язык" с поддержкой обычных мап из коробки, ничтоже сумляшеся не замечает никакой
    проблемы и заставляет пользователя передавать переменные окружения в том же формате, потому что у
    языка не только синтаксис должен быть таким же тупым, как программист на нём и вообще мы же тут
    делаем вид, что мы C, только лучше.
    https://golang.org/pkg/os/exec/#example_Command_environment

    Докер, "человеческий сервис" с HTTP API, использующим формат JSON с поддержкой обычных мап из коробки,
    ничтоже сумляшеся не замечает никакой проблемы и заставляет пользователя передавать переменные
    окружения в том же формате, потому что на программист на языке должен быть тупым, как этот язык.
    https://docs.docker.com/engine/api/v1.24/#create-a-container

    В результате мы имеем пачку долбоебов, из-за которых оперирующие (мапами / объектами / словарями / как угодно назовите)
    нормальные люди должны вести себя как типичные гошники.

    Fike, 17 Февраля 2021

    Комментарии (42)
  3. 1C / Говнокод #27064

    +6

    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
    Функция РазрешеноМенятьЗаявкуПоПравилу9Утра()    
    	
     	_Год    = Год  ( Объект.Дата);
    	_Месяц  = Месяц( Объект.Дата);
    	_День   = День ( Объект.Дата) + 1;
    	
    	Если _День = 29 Тогда
    		Если _Месяц = 2 Тогда
    			
    			Если (_Год - 2016)%4 <> 0 Тогда	
    				
    				_Месяц = 3; _День = 1;
    			КонецЕсли;  
    		КонецЕсли;
    	КонецЕсли;
    	
    	Если _День = 30 Тогда
    		Если (_Месяц = 4) ИЛИ (_Месяц = 6) ИЛИ (_Месяц = 9) ИЛИ (_Месяц = 11) Тогда
    			
    			_Месяц = _Месяц + 1;
    			_День  = 1;
    		КонецЕсли;
    	КонецЕсли;
    	
    	Если _День = 31 Тогда
    		Если (_Месяц = 1) ИЛИ (_Месяц = 3) ИЛИ (_Месяц = 5) ИЛИ (_Месяц = 7) ИЛИ
    			(_Месяц = 8)        Тогда
    			
    			_Месяц = _Месяц + 1;
    			_День  = 1;
    		ИначеЕсли _Месяц = 12  Тогда
    			
    			_Месяц = 1;
    			_День  = 1; 
    		КонецЕсли;
    	КонецЕсли;
    	
    	_9УтраСледующегоДня = Дата( _Год , _Месяц, _День,9,0,0);
    	
    	Если ТекущаяДата() < _9УтраСледующегоДня Тогда
    		
    		Возврат Истина;
    	Иначе
    		
    		Возврат Ложь;
    	КонецЕсли;
    	  
    КонецФункции

    По-моему, достойно Вашего внимания ;)

    ShilkovNikolay, 27 Октября 2020

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

    +4

    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
    /etc/network/interfaces: ща сделаем норм
    ifupdown: вы неправильно управляете интерфейсами, ща сделаем норм
    ifconfig: парень выше сосет, ща сделаем норм
    ip: опять ссанина получилась, ща сделаем норм
    isc-dhcp-server: ща сделаем норм
    udhcpd: вы слишком жирно раздаёте адреса, ща сделаем норм
    dnsmasq: DHCP? да, это по моей части, ща сделаем норм
    /etc/hosts: во, вот это норм!
    /etc/resolv.conf: поговори мне тут, ща сделаем норм
    генераторы /etc/resolv.conf: вот теперь-то хорошо!
    /etc/nsswitch.conf: да не, ща сделаем норм
    iptables: вы неправильно обрабатываете пакеты, ща сделаем норм
    nftables: вы неправильно делаете норм, ща сделаем байткодно-норм
    wpa_supplicant: у вас нет вай-фая, ща сделаем норм
    hostapd: у вас нет раздачи вай-фая, ща сделаем норм
    network-manager: вы неправильно управляете всем, ща сделаем норм
    systemd: вы неправильно называете интерфейсы, ща сделаем норм
    systemd: вы неправильно раздаёте адреса, ща сделаем норм
    systemd: вы неправильно делаете dns, ща вкомпилим без возможности конфигурировать и будет норм
    systemd: вы неправильно делаете nat, ща сделаем норм
    
    netplan: привет, я тут новенький )))

    какой пятнадцатый стандарт )))

    Fike, 14 Апреля 2020

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

    +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
    Сообщаю, что я пытался воскресить эту ебучую хуету на php4. Сначала пытался
    воспользоваться docker'ом, чтобы заполучить нужные дистрибутивы мускуля и
    пыхи, в связи с чем огрёб следующие траблы:
    1) все готовые докерфайлы для четвёртой пыхи как минимум трёхлетней давности,
        поэтому в них:
          а. попадаются уже мёртвые GPG ключи
          б. попадаются уже мёртвые ссылки на различные файлопомойки, откуда предпо-
              лагалось тащить исходники или пакеты для всякого старья
        через эти пункты мне удалось прорваться, и сделать живой контейнер с пыхой, но тут
    2) оказалось, что проект представляет из себя настолько бессистемную кучу пыхофайлов,
        непредсказуемо поименованных и состоящих из смеси вёрстки, кода и запросов к базе,
        что мне понадобился отладчик xdebug либо zend debugger, в связи с чем я с радостью
        узнал, что
           а. xdebug вообще не сущетсвует для линукса на php4.4, если только не попытаться со-
               брать его из сырцов для винды
           б. zend debugger такой старый просто само по себе очень сложно найтй, и в докер его
               по всей видимости никто никогда не пихал, и я не буду :)
    В связи со всем вышеперечисленным, сейчас я скачиваю образ свинёрки, чтобы гонять
    её в виртуалке, потому что промелькнула надежда на denver, который вроде как из ко-
    робки предлагает такое говно мамонта.
    Держите за меня кулачки.

    vistefan, 14 Января 2020

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

    +2

    1. 01
    2. 02
    3. 03
    4. 04
    5. 05
    6. 06
    7. 07
    8. 08
    9. 09
    10. 10
    /**
     * @api
     * @var int $id the numeric WordPress id of a post
     */
    public $id;
    
    /**
     * @var string 	$ID 			the numeric WordPress id of a post, capitalized to match WP usage
     */
    public $ID;

    WordPress, страна чудес!

    https://github.com/timber/timber/blob/a08370165c9240a33b977b037574181d3e1fa5a1/lib/Post.php#L107

    jufer, 16 Сентября 2019

    Комментарии (42)
  7. C# / Говнокод #25773

    +5

    1. 1
    2. 2
    3. 3
    4. 4
    public class clsActMarriage
    {
       ...
    }

    Трудности перевода из серии "Ясные печеньки".

    Как вам название сущности? Буквально "Акт женитьбы".
    Оглянулся на 300+ строк вокруг и понял что это на самом деле "Акт брака" в контексте товара.
    Класс занимается созданием и наполнением документа о наличии брака по утвержденной форме.

    Ну кто так называет? Откуда это: лень, глупость или неграмотность? Как это пропустили на ревью?
    Почему не "FlawReport" не "DefectBulletin" или
    на худой конец "DocumentOfUnquality" если по инглишу в школе неуд был.
    Кто-то в прошлом сэкономил 1 минуту, а в настоящем это обернулось потерей 20 минут на раскуривание.
    Плохие имена переменных которые нельзя изменить - боль кровавого энтерпрайза.

    Ух, пичот! (╯°□°)╯︵┻━┻

    Gilbert, 23 Августа 2019

    Комментарии (42)
  8. Swift / Говнокод #25669

    +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
    50. 50
    51. 51
    52. 52
    53. 53
    54. 54
    55. 55
    56. 56
    57. 57
    58. 58
    59. 59
    60. 60
    import SwiftUI
    
    
    struct LandmarkDetail: View {
        @EnvironmentObject var userData: UserData
        var landmark: Landmark
    
    
        var landmarkIndex: Int {
            userData.landmarks.firstIndex(where: { $0.id == landmark.id })!
        }
    
    
        var body: some View {
            VStack {
                MapView(landmark: landmark)
                    .frame(height: 300)
    
    
                CircleImage(image: landmark.image(forSize: 250))
                    .offset(y: -130)
                    .padding(.bottom, -130)
    
    
                VStack(alignment: .leading) {
                    HStack {
                        Text(landmark.name)
                            .font(.title)
    
    
                        Button(action: {
                            self.userData.landmarks[self.landmarkIndex].isFavorite.toggle()
                        }) {
                            if self.userData.landmarks[self.landmarkIndex].isFavorite {
                                Image(systemName: "star.fill")
                                    .foregroundColor(Color.yellow)
                            } else {
                                Image(systemName: "star")
                                    .foregroundColor(Color.gray)
                            }
                        }
                    }
    
    
                    HStack(alignment: .top) {
                        Text(landmark.park)
                            .font(caption)
                        Spacer()
                        Text(landmark.state)
                            .font(.caption)
                    }
                }
                .padding()
    
    
                Spacer()
            }
            .navigationBarTitle(Text(landmark.name), displayMode: .inline)
        }
    }

    https://developer.apple.com/tutorials/swiftui/handling-user-input

    Принципиально новый нескучный "декларативный" UI от компании Apple. В наличии:
    * магические константы
    * спагетти из замыканий
    * биндинги, страшные как атомная война
    * где-то внутри модная хипстерская реактивная либа

    На фоне этого кошмара qml кажется вершиной инженерной мысли

    Desktop, 08 Июня 2019

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

    +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
    ### WindowsSpyBlocker - Hosts spy rules
    ### License: MIT
    ### Updated: 2019-03-02T02:05:00Z01:00
    ### More info: https://github.com/crazy-max/WindowsSpyBlocker
    
    0.0.0.0 a.ads1.msn.com
    0.0.0.0 a.ads2.msads.net
    0.0.0.0 a.ads2.msn.com
    0.0.0.0 a.rad.msn.com
    0.0.0.0 ac3.msn.com
    0.0.0.0 activity.windows.com
    0.0.0.0 adnexus.net
    
    ...
    
    0.0.0.0 watson.live.com
    0.0.0.0 watson.microsoft.com
    0.0.0.0 watson.ppe.telemetry.microsoft.com
    0.0.0.0 watson.telemetry.microsoft.com
    0.0.0.0 web.vortex.data.microsoft.com
    0.0.0.0 wes.df.telemetry.microsoft.com
    0.0.0.0 win10.ipv6.microsoft.com
    0.0.0.0 win1710.ipv6.microsoft.com
    0.0.0.0 win8.ipv6.microsoft.com
    0.0.0.0 www.msedge.net

    https://github.com/crazy-max/WindowsSpyBlocker/blob/master/data/hosts/spy.txt

    Как вообще дошло до того, что появилась необходимость защищать личную инфу от системы на которой она находиться?

    govnokod3r, 14 Мая 2019

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

    0

    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
    using System;
    using System.Linq;
    using s = System.String;
    using i = System.Int32;
    class Player
    {
        static i sgn(i x) => x < 0 ? -1 : x > 0 ? 1 : 0;
        static s g(ref i z, i Z, s S)
        {
            i t = sgn(z - Z);
            if (t < 0) z++;
            else if (t > 0) z--;
            return S[t + 1] + "";
        }
        static void Main()
        {
            var a = Console.ReadLine().Split().Select(i.Parse).ToArray();
            i X = a[0], Y = a[1], x = a[2], y = a[3];
            while (true)
            {
                Console.ReadLine();
                Console.WriteLine(g(ref y, Y, "S N") + g(ref x, X, "E W"));
            }
        }
    }

    Поиск пути на плоскости от первой точки координат до второй. Выводит направление следующего передвижения.

    groser, 08 Апреля 2019

    Комментарии (42)
  11. Куча / Говнокод #25486

    +2

    1. 1
    2. 2
    3. 3
    Админ, добавь язык "J".
    Я собираюсь начать учить этот язык и пейсать на нём говнокоды.
    Давайте пейсать в коменты кому ещё что нужно.

    _PHP_, 29 Марта 2019

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