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

    В номинации:
    За время:
  2. Куча / Говнокод #23544

    −1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    Как думаете, гландопродавцы, какого хуя подавляющее большинство держателей каких-либо API продолжают отчаянно
    цепляться за устаревший формат "XML", отказываясь признавать простоту и удобство (для обеих сторон) формата "JSON"? 
    Как "simplexml_load_file(...)" с неебическим количеством мусора типа "@attributes" может быть лучше приятненького
    "json_decode(..., true)", учитывая, что первый, в случае, если дочерний тег с определённым именем у "родителя" один,
    возвращает по этому тегу одномерный массив, а в случае, если их несколько - многомерный? Где предсказуемость?

    COWuTEJIbTBOEuMAMKu, 16 Ноября 2017

    Комментарии (126)
  3. C++ / Говнокод #23066

    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
    #include <bits/stdc++.h> 
            
    using namespace std;
              
    int B[105], N, k, u, v, i, z;
    map<int, int> A;
            
    main()
    {
        for(cin >> N; cin >> k; B[i++] = k)
            ++A[k] > v ? v = A[u = k] :
                A[k] ^ v ?: u = min(u, k);
               
        for(; z < N; z++)
            B[z] == u || cout << B[z] << " ";
                                         
        while(v--) cout << u << " ";
    }

    Решение задачи из acmp, первое место по количеству символов, обогнав других участников на 30 и более символов.

    Обычное решение задачи, тех которые не участвовали у конке, количество символов от 600-700 символов, тут же 208 символов

    aat, 24 Мая 2017

    Комментарии (126)
  4. 1C / Говнокод #18279

    −106

    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
    //*****************************************************************************************
    Запрос9 = Новый Запрос;
    Запрос9.УстановитьПараметр("ТекущийЭлемент", Спецификация);
    Запрос9.Текст =
    "ВЫБРАТЬ
    |		СпецификацииНоменклатуры.Ссылка.Код 		 			КАК Код,
    |		СпецификацииНоменклатуры.Ссылка.Наименование 			КАК Обозначение,
    |		СпецификацииНоменклатуры.ХарактеристикаНоменклатуры 	КАК Характеристика
    |	ИЗ
    |		Справочник.СпецификацииНоменклатуры.ВыходныеИзделия КАК СпецификацииНоменклатуры
    |	ГДЕ
    |		СпецификацииНоменклатуры.Ссылка = &ТекущийЭлемент";
    ЗапросТовары9 = Запрос9.Выполнить().Выгрузить();
    Для Каждого ВыборкаСтрок9 Из ЗапросТовары9 Цикл
    	Харка = ВыборкаСтрок9.Характеристика;
    КонецЦикла;
    ТоЧтоНужно = РегистрыСведений.ЗначенияСвойствОбъектов.Получить(Новый структура("Объект,Свойство",Харка,ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду ("00000000033"))).Значение;
    Если ЗначениеЗаполнено(ТоЧтоНужно) ТОгда 
    	Область.Параметры.Вид = ТоЧтоНужно;
    КонецЕсли;
    //*****************************************************************************************

    Когда в наследство достается процедура печати, написанная одним, дополненная другим и порученная тебе переписать.

    lyakusha, 03 Июня 2015

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

    +14

    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
    [code=cpp]
    #include <iostream>
    #include <cmath>
    
    void foo(double x, double y)
    {
        if (std::cos(x) != std::cos(y)) 
            std::cout << "Я знаю точно невозможное возможно";
    }
    
    int main()
    {
        foo(1.0, 1.0);
        return 0;
    }
    [/code]

    floatы и нуб.

    igumnovf, 16 Ноября 2012

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

    +158

    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
    String.prototype.toCamelCase = function () {
    	var symbols = [], ready = '';
    	for (var z = 0; z < this.length; z++) {
    		symbols[z] = this.charAt(z);
    	} 
    	for (var i = 0; i < symbols.length; i++) {
    		if (symbols[i] == '-') {
    			symbols[i + 1] = symbols[i + 1].toUpperCase();
    		}
    	}
    	for (var q = 0; q < symbols.length; q++) {
    		ready = ready + symbols[q];
    	}
    	ready = ready.replace('-', '');
    	return ready;
    };

    margin-left => marginLeft

    eval, 25 Июня 2010

    Комментарии (126)
  7. JavaScript / Говнокод #28026

    −2

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function toHex(this: TypeOf<1>) {
    	return "hex";
    }
    
    function main() {
        print((5).toHex());
        print("done.");
    }

    решил добавить прикольного кода из C# в TypeScript Compiler ... красиво получилось? (тем кто еще не знает где искать компилятор https://github.com/ASDAlexander77/TypeScriptCompiler)

    ASD_77, 17 Февраля 2022

    Комментарии (125)
  8. Куча / Говнокод #27576

    +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
    // And then I replaced the idiomatic Rust code for working with block like
    
        for (dline, (sline0, sline1)) in dst.chunks_mut(dstride).zip(tmp.chunks(TMP_BUF_STRIDE).zip(tmp2.chunks(TMP_BUF_STRIDE))).take(h) {
            for (pix, (&a, &b)) in dline.iter_mut().zip(sline0.iter().zip(sline1.iter())).take(w) {
                *pix = ((u16::from(a) + u16::from(b) + 1) >> 1) as u8;
            }
        }
    
    // with raw pointers:
    
        unsafe {
            let mut src1 = tmp.as_ptr();
            let mut src2 = tmp2.as_ptr();
            let mut dst = dst.as_mut_ptr();
            for _ in 0..h {
                for x in 0..w {
                    let a = *src1.add(x);
                    let b = *src2.add(x);
                    *dst.add(x) = ((u16::from(a) + u16::from(b) + 1) >> 1) as u8;
                }
                dst = dst.add(dstride);
                src1 = src1.add(TMP_BUF_STRIDE);
                src2 = src2.add(TMP_BUF_STRIDE);
            }
        }

    What do you know, the total decoding time for the test clip I used shrank from 6.6 seconds to 4.9 seconds. That’s just three quarters of the original time!

    And here is the problem. In theory if Rust compiler knew that the input satisfies certain parameters i.e. that there’s always enough data
    to perform full block operation in this case, it would be able to optimise code as good as the one I wrote using pointers or even better.
    But unfortunately there is no way to tell the compiler that input slices are large enough to perform the operation required amount of times.
    Even if I added mathematically correct check in the beginning it would not eliminate most of the checks.

    https://codecs.multimedia.cx/2021/05/missing-optimisation-opportunity-in-rust/

    3.14159265, 17 Августа 2021

    Комментарии (125)
  9. C++ / Говнокод #24050

    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
    #include <stdlib.h>
    #include <time.h>
    #include <random> 
    #include <algorithm>
    .........
    .........
    double
    js::math_random_no_outparam(JSContext* cx)
    {
    	if JSContext* == "Math.floor(Math.random() * (max - min + 1) + min)"
    	{
                  return Math.floor(Math.random() * (max - min + 1) + min);
    	}
           return random_nextDouble(&cx->compartment()->rngState);
    }
    ........

    Доброго времени
    хочу заставить Лису(FF) вычислять math функцию внутри браузера, а не через Windows (ADVAPI32.DLL Function36).
    Но при компиляции измененного кода постоянно получаю ошибки.
    Я конечно кривые коды пишу, но пытаюсь подстроиться под исходный С++.
    ...........................
    в итоге не видит и не распознает ни рандом, ни фло, ни мат, ни джиэс контекст
    Подскажите в каком направлении копать.

    DrAli, 01 Апреля 2018

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

    +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
    61. 61
    62. 62
    63. 63
    64. 64
    65. 65
    66. 66
    67. 67
    import java.lang.*;
    
    public class Password {
        static char[] ch = {'a', 'b'};
        static byte length = 2;
        static int m = ch.length;
        static int n = length;
        static int l = (int) (Math.pow(ch.length, length));
        static String[] arr = new String[l];
    
        public static void main(String[] args) {
            for (int xyu = 0; xyu < l; xyu++) {
                arr[xyu] = "";
            }
            String[] output = generator(ch, length);
            for (String password : output) {
                System.out.println(password);
            }
        }
    
        public static String[] generator(char[] ch, byte length) {
    
            for (int i = 0; i < l; i++) {
                arr[i] = M(i);
            }
            return arr;
        }
    
    
        public static String M(int i) {
            String a = Perevod(i, m);
    
            for (int j = 0; j < n; j++) {
                arr[i] += ch[Character.getNumericValue(a.charAt(j))];
    
            }
            return arr[i];
        }
                //FIXME
        public static String Perevod(int i, int base) {
            String r = "";
            if (i == 0) {
                for (int counter = 0; counter < n; counter++) {
                    r += "0";
                }
            }
            boolean f = false;
            while (i > 0) {
                r = r + (i % base);
                int q = i % base;
                i = (i - q) / base;
                if (q == 1) {
                    f = true;
                }
            }
            if (i == 0 & f == true) {
                for (int counter = 0; counter < n - 1; counter++) {
                    r += "0";
                }
            }
            String res = "";
            for (int k = 0; k < r.length(); k++) {
                res += r.charAt(r.length() - 1 - k);
            }
            return res;
        }
    }

    Должен генерировать всевозможные пароли заданной длины из заданного алфавита. Не работает перевод в другую систему счисления

    Rawsone, 04 Августа 2016

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

    +167

    1. 1
    2. 2
    if ($result = mailer($data)) echo "<p>Коммерческое предложение отправлено к вам на электронную почту.</p>";
    else echo "<p>Коммерческое предложение отправлено к вам на электронную почту.</p>";//да простит меня Бог

    Ковыряю сайта заказчика. Нашел гениальный код в скрипте обработки формы.

    jankefir, 30 Июня 2015

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