1. bash / Говнокод #24231

    +1

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    ...
    # uncomment for a colored prompt, if the terminal has the capability; turned
    # off by default to not distract the user: the focus in a terminal window
    # should be on the output of commands, not on the prompt
    #force_color_prompt=yes
    ...

    .bashrc по умолчанию в Xubuntu.
    Мне казалось, что приглашение должно быть другого цвета, чтобы можно было быстро найти начало вывода программы:
    user@computer:~$ cat blah.txt
    <много текста>
    <много текста>
    <много текста>
    <много текста>
    <много текста>

    Но тут, понимаешь, решили, что нечего цвета разводить.

    Steve_Brown, 06 Мая 2018

    Комментарии (22)
  2. Куча / Говнокод #24228

    −2

    1. 1
    2. 2
    Золотце
    https://lj.rossia.org/users/sadkov/103320.html?nc=55

    OpenGL - говно опенсурсное
    Попытался реализовать getPixel и putPixel на OpenGL, в результате получение одного пикселя занимает болшьшую часть времени выполнения программы. Другие люди тоже жалуются на тормознутость функций OpenGL, вроде glDrawPixels и glReadPixels

    https://stackoverflow.com/questions/39821850/why-is-glreadpixels-so-slow-and-are-there-any-alternative
    https://stackoverflow.com/questions/36534933/gldrawpixels-vs-textures-to-draw-a-2d-buffer-in-opengl

    >glDrawPixels is known to be very slow

    Зачем вообще нужно все это 3d ускорение? В DOS все было идеально:
    ((uint8_t*)(0xB8000))[y*320+x] = pixel

    почему нельзя современным программам предоставить такой 0xB8000 адрес и пару регистров вывода? Зачем все эти ритуалы? И да, MMU и protected mode значительно замедляют доступ к памяти, посему современный DOS работал бы на порядок быстрей Windows/Linux. Протекция памяти оправдана только на этапе разработки программы, а для release билда ее лучше отключить, чтобы иметь прямой доступ к реальной памяти.

    И я не одинок в негодовании:
    https://stackoverflow.com/questions/39430404/drawing-pixels-in-opengl

    >I'm using integrated GPU (Intel HD graphics 4000), as far as I know CPU and GPU share the same memory so why is it that I need to download? Why is it impossible to get a pointer?

    Начинаю думать, что Unabomber был прав во всем - надо к чертям взорвать офисы мразотных бюрократов из Khronos Group.

    j123123, 05 Мая 2018

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

    −4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    http://developer.android.com/
    Заблокировано в РФ
    
    http://isitblockedinrussia.ru/?host=http%3A%2F%2Fdeveloper.android.com%2F
    
    http://addons.mozilla.org 
    Заблокировано в РФ
    http://isitblockedinrussia.ru/?host=http%3A%2F%2Faddons.mozilla.org%20

    ж)

    roskomgovno, 04 Мая 2018

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

    +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
    //Модуль 1
    Функция хуй() экспорт
    возврат хуйбазовый();
    конецфункции
    
    //Модуль 2
    Функция хуйбазовый() экспорт
    возврат хуйразширеный();
    конецфункции
    
    //Модуль 3
    Функция хуйстандартный() экспорт
    возврат хуйособый();
    конецфункции
    
    //Модуль 4
    Функция хуйособый() экспорт
    возврат хуйуправляемый();
    конецфункции
    
    //Модуль 5
    Функция хуйуправляемый() экспорт
    возврат получитьхуй();
    конецфункции
    
    //Модуль 6
    Функция получитьхуй() экспорт
    возврат хуйстандарт();
    конецфункции
    
    и т.д.

    Нахуя?

    3oJIoTou_xyu, 04 Мая 2018

    Комментарии (19)
  5. JavaScript / Говнокод #24223

    +4

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    7. 7
    8. 8
    function isPalindrom1(str) {
        if (str.toLowerCase().replace(/[^а-яА-ЯёЁ]/g, '') === str.toLowerCase().replace(/[^а-яА-ЯёЁ]/g, 
        '').split('').reverse().join('')) {
            return true;
         } else {
            return false;
         }
    }

    "Красиво, просто, изящно."
    h: post/351874/

    gost, 04 Мая 2018

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

    −6

    1. 1
    Бомбёж по поводу Telegram

    Вот что бы там не говорили про право на тайну переписку, а у него есть важное ограничение, о котором все забыли: если человек подозревается в преступлении, то государство имеет полное моральное и юридическое право читать его переписку. А вот Пашка Дуров об этом не знает, либо знает, но намеренно это игнорирует, а потом тысячи глупых хомячков бросают из окон самолётики и обвиняют РКН. Я вот полностью поддерживаю международное уголовное преследование Пашки за пособничество терроризму.

    dm_fomenok, 04 Мая 2018

    Комментарии (45)
  7. Java / Говнокод #24217

    +3

    1. 1
    http://www.ssw.uni-linz.ac.at/Research/Papers/Wuerthinger07/Wuerthinger07.pdf

    Как известно, в языках C и C++ есть проблема с buffer overflow, в то время как в языке Java такой проблемы нет (баги в реализации самой JVM не рассматриваем). В языке Java, как и в многих других подобных языках для анскиллябр заедушных, не могущих в сырые указатели, сделали проверки границ массива. В говноязыке C++ впрочем тоже есть какая-то такая питушня, например std::vector::at выполняет роверку выхода индекса за границы диапазона вектора. Только вот в язык JVM давно уже внедряют такую хреноту, как array bounds check elimination, т.е. убирание проверок, когда на этапе компиляции можно доказать, что такие проверки не нужны.

    В какой версии C++ сделают чтоб std::vector::at тоже вот так могло автозаменяться на небезопасный аналог если компилятор доказал что там эти проверки не нужны?

    j123123, 03 Мая 2018

    Комментарии (24)
  8. Си / Говнокод #24216

    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
    if (cond1)
    {
      do_shit1();
    }
    else if (cond2)
    {
      do_shit2();
    }
    else if (cond3)
    {
      do_shit3();
    }
    else if (cond4)
    {
      do_shit4();
    }

    Вот например есть такая вот типичная хуита, предположим что я знаю, что среди этих cond1 cond2 ... только один может быть true, остальные условия всегда будет ложными.
    И в этой сраной цепочке из if - else if можно перемещать if блоки без изменения логики. НО в языке Си (да и в C++ я уверен тоже) нет способа сказать компилятору что-то вроде "только одно из условий true, так что ты, сраный компилятор, можешь переделывать эту хуиту, и даже убрать else, если процессор в таком случае (при if(cond1) {do_shit1();}; if(cond2) {do_shit2();}; ... ) будет эту ссанину быстрее обрабатывать".
    Какие-нибудь языки программирования такую оптимизацию вообще умеют?

    j123123, 03 Мая 2018

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

    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
    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
    $(document).ready(function() {
    	console.log("Ready");
    
    	var
    		block_1 = document.getElementsByClassName('block_1')[0],
    		block_2 = document.getElementsByClassName('block_2')[0],
    		block_3 = document.getElementsByClassName('block_3')[0],
    		block_4 = document.getElementsByClassName('block_4')[0],
    		open_1 = document.getElementsByClassName('open-1')[0],
    		open_2 = document.getElementsByClassName('open-2')[0],
    		open_3 = document.getElementsByClassName('open-3')[0],
    		open_4 = document.getElementsByClassName('open-4')[0];
    	
    
    	open_1.onclick = function(){
    		block_1.style.display = "block";
    		block_2.style.display = "none";
    		block_3.style.display = "none";
    		block_4.style.display = "none";
    	};
    
    	open_2.onclick = function() {
        	block_2.style.display = "block";
        	block_1.style.display = "none";
        	block_3.style.display = "none";
    		block_4.style.display = "none";
    	};
    
    	open_3.onclick = function() {
        	block_2.style.display = "none";
        	block_1.style.display = "none";
        	block_3.style.display = "block";
    		block_4.style.display = "none";
    	};
    	
    	open_4.onclick = function() {
        	block_2.style.display = "none";
        	block_1.style.display = "none";
        	block_3.style.display = "none";
    		block_4.style.display = "block";
    	};
    });

    DNRAWW, 02 Мая 2018

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

    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
    private static bool IsOnlyServiceWindowsFile(string directory)
    {
    	string[] ignoredFiles = { "Thumbs.db", "Desktop.ini" };
    	var files = Directory.GetFiles(directory);
    	foreach (var file in files)
    	{
    		var filename = Path.GetFileName(file);
    		foreach (var ignored in ignoredFiles)
    		{
    			if (string.Equals(filename, ignored, StringComparison.OrdinalIgnoreCase))
    			{
    				goto NEXT;
    			}
    		}
    		return false;
    		NEXT: ;
    	}
    	return true;
    }

    Пришёл в C# из Java, где есть замечательная фича под названием Label.
    В C# для вложенных циклов оказался лишь GOTO.
    Метод проверяет наличие в каталоге только сервисных файлов винды.

    brnovk, 01 Мая 2018

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